摘要: http://poj.org/problem?id=1149http://imlazy.ycool.com/post.2059102.html 大牛的见图详解。#include<iostream>#include<queue>using namespace std;#define INF 0x7fffffff#define maxn 1100#define maxe 100010typedef struct {int v,val,next;}Edge;Edge e[maxe];int idx,S,T;int bild[maxn],h[maxn],pre[maxn],pi 阅读全文
posted @ 2011-12-04 22:00 forgood 阅读(150) 评论(0) 推荐(0)
摘要: 初期:一.基本算法: (1)枚举. (poj1753{bfs+位二进制} ,poj2965{bfs 或者一种很巧妙的解法} ) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法: (1)图的深度优先遍历和广度优先遍历. (2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra)(poj1860,poj3259,poj1062,poj2253,poj1125,p. 阅读全文
posted @ 2011-12-02 11:03 forgood 阅读(173) 评论(0) 推荐(0)
摘要: initialization of 'XXX' is skipped by 'case' label 原因及解决办法今天遇到这个问题,在网上看了一会资料后找到原因,即:switch 的 case 中不能定义变量,不然就会报错.可能是变量的初始化会因为有时候case条件不被执行而跳过.后来想到三个解决的方法:1:用if else 代替 switch 语句;2:在case中用{}将代码括起来,这样在{}中就能定义变量了;3:如果变量在各个case中都要用的话,就把变量定义在switch外面吧;上面的是博友的。 阅读全文
posted @ 2011-11-09 14:03 forgood 阅读(275) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1051Wooden SticksTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4694Accepted Submission(s): 1933Problem DescriptionThere is a pile of n wooden sticks. The length and weight of each stick are known in advan 阅读全文
posted @ 2011-11-05 23:49 forgood 阅读(803) 评论(0) 推荐(1)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1596find the safest roadTime Limit: 10000/5000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1918Accepted Submission(s): 775Problem DescriptionXX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条从u 阅读全文
posted @ 2011-11-05 14:06 forgood 阅读(194) 评论(0) 推荐(0)
摘要: 最近做的题感觉 测试数据很bthttp://acm.hdu.edu.cn/showproblem.php?pid=3790最短路径问题Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1714Accepted Submission(s): 553Problem Description给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。Input输入n, 阅读全文
posted @ 2011-10-30 15:27 forgood 阅读(337) 评论(0) 推荐(0)
摘要: Bus SystemTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2894Accepted Submission(s): 723Problem DescriptionBecause of the huge population of China, public transportation is very important. Bus is an important transportation method in traditional p 阅读全文
posted @ 2011-10-30 12:55 forgood 阅读(162) 评论(0) 推荐(0)
摘要: #include<iostream>using namespace std;int s[11]={1,2,4,8,16,32,64,128,256,512,1024};int f[1010];int main(){int i,j;memset(f,-1,sizeof(f));for(i=1;i<=1000;i++){int flag=0;for(j=0;j<=10;j++){int tmp=i-s[j];if(tmp<0) break;if(tmp==0||f[tmp]==0)////若后继状态有0值,但当前态为1;{flag=1; f[i]=1;break;}} 阅读全文
posted @ 2011-10-13 21:06 forgood 阅读(88) 评论(0) 推荐(0)
摘要: #include<iostream>using namespace std;int main(){int m,n;while(cin>>n>>m){if(n==0&&m==0) break;if(n*m%2==0) cout<<"Wonderful!"<<endl;else cout<<"What a pity!"<<endl;}return 0;}水果了,找规律 阅读全文
posted @ 2011-10-12 20:57 forgood 阅读(136) 评论(0) 推荐(0)
摘要: (一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的取法,那么先取者肯定获胜。总之,要保持给对手留下(m+1)的倍数,就能最后获胜。 这个游戏还可以有一种变相的玩法:两个人轮流报数.. 阅读全文
posted @ 2011-10-10 23:19 forgood 阅读(188) 评论(0) 推荐(0)