上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 详细参考:http://www.cnblogs.com/jbelial/archive/2011/08/08/2131165.html讲的很详细,很有用刚开始在写重心x,y时,将除以3放在这里x+=(x0+x1+x2)*are/3;y+=(y0+y1+y2)*are/3;交了两遍都是WA,后来改成最后结果除以3 ,就A了,原来是中间除以三取精度时在最后结果可能有误差,以后要注意取精度的计算 1 #include 2 int main() 3 { 4 int t,n,i; 5 double x0,x1,x2,y0,y1,y2; 6 double are,sum; 7 ... 阅读全文
posted @ 2013-07-15 14:06 zlyblog 阅读(207) 评论(0) 推荐(0)
摘要: 1 #include 2 #define e 200907 3 int main() 4 { 5 __int64 a,b,c,n,ans; 6 int t; 7 scanf("%d",&t); 8 while(t--) 9 {10 scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&n);11 if(n==1)12 {13 printf("%I64d\n",a%e);14 continue;15 }16 ... 阅读全文
posted @ 2013-07-15 09:35 zlyblog 阅读(183) 评论(0) 推荐(0)
摘要: 这个题是下午老师出的比赛题,看了很久都不知道这个题到底是什么意思,晚上上网看了下,才知道是求每个字符串里的每一个字母后面有几个比它小的字母的总和,并对总和按照从小到大排列,题目数据量较小,直接循环就过《*——*》#include#include#includestruct node{ int x,y;}a[110];int cmp(const void *a,const void *b){ struct node *c,*d; c=(struct node *)a; d=(struct node *)b; if(c->y!=d->y) return c->x... 阅读全文
posted @ 2013-07-14 20:24 zlyblog 阅读(280) 评论(0) 推荐(0)
摘要: 题目需要对路径进行打表,记录路径很关键,从网上找的,基本都是通过记录当前点的来源方向来处理路径问题。自己写的不怎么滴,来自网上http://blog.csdn.net/ice_crazy/article/details/7763302博客这道题加深了对广搜优先队列的理解,很不错的一道题 1 #include 2 #include 3 #include 4 using namespace std; 5 6 struct node 7 { 8 int x,y; 9 int step; 10 friend bool operator=n||y=m) 25... 阅读全文
posted @ 2013-07-14 09:59 zlyblog 阅读(195) 评论(0) 推荐(0)
摘要: 最长上升子序列的时间复杂度为O(n2),此处为500000,上网看了看别人的解题报告,才知道它有两种算法复杂度为O(n*logn)和O(n^2)。前者使用二分查找,后者朴素查找。它的算法大致思路:设置两个a,b数组,a数组存储数据,b数组存储最长不降序序列。此算法关键在于设计二分查找。二分查找关键代码来自http://blog.csdn.net/ice_crazy/article/details/7536332 1 #include 2 int a[500011],dp[500011]; 3 int main() 4 { 5 int n,temp1,temp2,i,k; 6 k... 阅读全文
posted @ 2013-07-13 17:44 zlyblog 阅读(205) 评论(0) 推荐(0)
摘要: http://yxq0620.blog.163.com/blog/static/4449439220101132121273/http://hi.baidu.com/feithor/item/f0d16911ae7036473a176e91 1 #include 2 #include 3 #define M 999999999 4 int a[1000001],b[1000001],dp[1000001]; 5 int Max(int x,int y) 6 { 7 return x>y?x:y; 8 } 9 //b[j]为到当前元素最大和子序列的最大和10 //dp[j]为到当前元素的. 阅读全文
posted @ 2013-07-13 16:31 zlyblog 阅读(258) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1016#include#include#includeint n;int flag[20];int a[45],num[20];void dfs(int x,int y){ int i; num[x]=y; flag[y]=1; if(x==n) { if(a[num[x]+num[1]]==0) { printf("1"); for(i=2;i<=n;i++) printf(" %d",num[i]); printf("\n"); } ... 阅读全文
posted @ 2013-07-13 09:54 zlyblog 阅读(174) 评论(0) 推荐(0)
摘要: 方法:dfs思想:由于本题中规定只有在固定时刻到达目的点才能逃脱,不能提早,更不能延迟,故不能用bfs。可以用dfs找出所有情况,若有可行解,直接返回即可。本题比较郁闷的是,在tzc上将方向数组int dir[4][2]稍微变动两下,就会超时。这也是今后出现TLE时该考虑的重要的一点吧,可以作为经验教训。#include#includechar map[11][11];int dir[4][2]={{0,-1},{0,1},{1,0},{-1,0}};int t;int flag;int n,m;int dx,dy;void dfs(int i,int j,int step){ int x,y 阅读全文
posted @ 2013-07-13 09:16 zlyblog 阅读(207) 评论(0) 推荐(0)
摘要: dp[i][j]=max(max(max(dp[i-1][j]+map[s[i]]['-'], d[i][j-1]+map['-'][ss[j]]),dp[i-1][j-1]+map[s[i]][ss[j]]),dp[i][j]);View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 int map[6][6]={ 5 0,0,0,0,0,0, 6 0,5,-1,-2,-1,-3, 7 0,-1,5,-3,-2,-4, 8 0,-2,-3 阅读全文
posted @ 2013-05-06 11:07 zlyblog 阅读(182) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1081一维最大字段和:dp [ i ] = max ( dp[ i-1 ] , 0 ) + a [ i ] ;如果是二维的话,可以变成一维的用map [ i ] [ j ] 表示第 i 行前 j 个元素的和,dp [ k ] [ i ] (l 表示j) 表示到第 k 行 第 i 列的最大值则dp [ k ] [ i ] = max ( map [ k ] [ i ] - map [ k ] [ j -1 ] , 0 ) , ( j <= i ) .View Code 1 #include<stdi 阅读全文
posted @ 2013-05-06 09:42 zlyblog 阅读(166) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 10 下一页