poj
zongyan0531
这个作者很懒,什么都没留下…
展开
-
poj1008
只需要将输入的原来的日期转换成多少天,r原创 2014-11-08 21:25:42 · 244 阅读 · 0 评论 -
poj1067
取石子博弈问题很有意思的题目, 这篇文章讲的很好大家可以参考 下http://hi.baidu.com/momoxiangni/item/2f519d0ae73d0ce1f55ba686 #include#includeint main(){ int a,k,b,temp;double r=(1+sqrt(5))/2.0;while(scanf("%d%d",&a原创 2014-12-07 12:41:05 · 286 阅读 · 0 评论 -
poj1061
中文题目 扩展gcd算法的应用 题目要求 青蛙的坐标为 x,y x每次跳m长度,y每次跳n长度,总长度为L是一个首尾相接的圆,求两只青蛙朝同一方向跳多少次可以相遇,那么可以得出方程 设跳了t次(x+mt)-(y+nt)=pL化简得到(n-m)t+(pL)=x-y;令n-m=a;L=b;x-y=c;可以得到 ax+by=c;这就得到了我们所要求的方程;#includ原创 2014-12-07 11:41:41 · 268 阅读 · 0 评论 -
poj1065
有n根木棒,已知他们的质量和长度,需对他们进行加工,开机1分钟,加工一根一分钟,且每次开机后,加工的第i+1根必须比第i根的长度和质量都要大才行,问最短加工时间。首先对木块进行长度排序如果长度相同则按照重量排序;求最少启动时间转化为求有多少不下降的序列;#include#includestruct gz{int l,w;}a[5010];int cmp(const原创 2014-12-07 22:45:28 · 306 阅读 · 0 评论 -
poj 1503
关于高精度的算法,就是输入一百个一百位以内的数字进行相加,只要注意好进位的计数问题这题很简单#include#includeint main(){ char sum[105]={0};//100个包含100位的数字相加结果最多有103位所以定义sum位103位 char s[110];//通常这里会定义大一点的数组来存放字符串主要是防止溢出 int i,j,len,c; sc原创 2014-12-14 20:58:16 · 226 阅读 · 0 评论 -
poj1611
有很多组学生,在同一个组的学生经常会接触,也会有新的同学的加入。但是SARS是很容易传染的,只要在改组有一位同学感染SARS,那么该组的所有同学都被认为得了SARS。现在的任务是计算出有多少位学生感染SARS了。假定编号为0的同学是得了SARS的。我们使用并查集来做这一题;注意set 和find_set函数这是并查集的核心代码以后再做此类问题就可以模仿这两个模板;#includein原创 2014-12-14 20:59:58 · 211 阅读 · 0 评论 -
并查集详细讲解
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程 首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个转载 2014-12-14 21:21:51 · 300 阅读 · 0 评论 -
hdu 1232
中文题目不解释,很经典的并查集题目只要注意会用 find 和 find_set这两个函数就ok了;#includeint f[1010];int find(int t){ if(f[t]==-1) return t; else return f[t]=find(f[t]);}void find_set(int a,原创 2014-12-14 21:13:40 · 250 阅读 · 0 评论 -
poj 2485
Flatopia岛要修路,这个岛上有n个城市,要求修完路后,各城市之间可以相互到达,且修的总路程最短.求所修路中的最长的路段.这是一个最小生成树的问题 使用prim 算法#include#include#define Max 503int str[Max][Max];bool visit[Max];int distan[Max];int n;int prim()原创 2015-01-03 13:14:42 · 253 阅读 · 0 评论 -
poj1083
一个过道,两边是要移动桌子的房间,过道很窄,每次只能移动一张桌子。问最快的移动时间是多少。思路:其实就是占用的问题,每次移动都占用固定的几个格子。只要统计一下占用次数最多的格子数量,再乘以10即可。#include#includeint r[410];int main(){ int a,b,t; while(scanf("%d",&t)!=EOF原创 2014-11-30 21:52:19 · 265 阅读 · 0 评论 -
poj1207
根据给定的算法,可以计算一个整数的循环数,现在给定一个区间,计算这个区间的所有数的循环数,把最大的循环数输出。#include #includeint main() { int n, p, i, j, count, max, low, high; while (scanf("%d%d", &i, &j) != EOF) { max =原创 2014-11-30 21:43:01 · 278 阅读 · 0 评论 -
poj 1014
题目da#include #include #include #define MAX 70010int dp[2*MAX];int a[10];int inline max(int a,int b){ if(a>b) return a; else return b;}int solve(int n,int v){原创 2014-11-23 21:44:26 · 376 阅读 · 0 评论 -
poj1011
经典的搜索题目首先将所有小段排序从大到小 然后计算木棍总长度 然后依次枚举 如果长度可以被总长度整除,求出一共需要还原的木棍数目; #include#include#includevoid search(int num,int now,int next);int n,stick[100],total,num,ok,length,used[100];int cmp(const vo原创 2014-11-09 14:38:42 · 221 阅读 · 0 评论 -
poj1003 poj 1006
此题有些水题感觉 大意是 给定一个数c求 1/2+1/3-----+1/n>=c时n的值是多少; 代码如下#includevoid main(){double c,sum;int n;scanf("%lf",&c);while(c!=0.00){sum=0.00;for(n=2;sum{sum+=1.0/n;}printf("%d\n原创 2014-10-26 19:26:54 · 297 阅读 · 0 评论 -
poj1088
简单的动态规划,首先了解动态规划的基本思想,懂得r原创 2014-11-16 10:24:25 · 308 阅读 · 0 评论 -
poj1050
该题就是在一个矩阵中找到一个子矩阵,该子矩阵和最大输出最大和即可;zhe#include#includeint a[101][101],n,temp[101];int dp(){ int i,sum=0,max=0; for(i=0;i { sum+=temp[i]; if(sum原创 2014-11-16 10:47:10 · 180 阅读 · 0 评论 -
poj 1163
题目大意从三角形顶部数字走,每次只能走到这个数字的左下角或者右下角的数字,直到底部,计算走过的线路的数字之和,求这个和的最大值;同意此题也是动态规划wenti原创 2014-11-16 10:35:51 · 271 阅读 · 0 评论 -
poj1007
这一题一直想用kuaia#include #includeint main(){ int n,m,max=0,min; int i,j,k; char c[100][100]; int d[100]={0}; int e[100]={0}; scanf("%d%d",&n,&m); for (i=原创 2014-11-02 14:37:21 · 180 阅读 · 0 评论 -
poj 1005
poj 1005 水题一道大致题意 输入n原创 2014-11-02 12:45:10 · 438 阅读 · 0 评论 -
poj1125
大致题意,这道题目的思路是求出某一点到所有点的最小值,然后在在这些最小路径中求出最大的值,再在这些最大值中找到一个最小值点;liyong原创 2014-11-23 13:14:43 · 240 阅读 · 0 评论 -
poj1961
给出一个字符串,对于它的每个(each)前缀(prefix)长度 i (2 i-next[j]获得反复字串的长度#includeconst int Max = 1000005;char str[Max];int len, next[Max];void get_next(){ int j=1, k=0; next[0] = -1;next[1]原创 2015-01-05 11:07:26 · 277 阅读 · 0 评论