摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1422解题报告:DP题,要使旅行的城市最多,关键是要选出一个城市作为开始,以这个城市作为开始的城市时,能使拥有的钱能旅行的城市最多,我的做法是把前n-1个城市添加到n个城市的数组后面,这样就不用考虑环的问题了, 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int w[200005],l[2000005]; 7 8 int main() 9 {10 int n;11 while(scanf("%d",&am 阅读全文
posted @ 2013-09-01 23:04 xiaxiaosheng 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 解题报告:1-n这n个数,有n!中不同的排列,将这n!个数列按照字典序排序,输出第m个数列。第一次TLE了,没注意到题目上的n和m的范围,n的范围是小于1000的,然后m的范围是小于10000的,很明显,如果暴力枚举的话,时间复杂度就是O(n*m),为10^7,所以可以通过。这题其实就是一个排列生成... 阅读全文
posted @ 2013-09-01 00:36 xiaxiaosheng 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 解题报告:Alice和Bob在做一个取石子游戏,有一堆n个石子,然后规定每个人每次最少要去1个石子,最多可以取m个石子,最后一次取完石子的人为胜。巴什博奕,关键是找到必胜点和必败点,我们可以先列举出当n和m都比较小的情况,下面 以1代表第一个取的人为胜,0表示第一个取的人为负:n 2 #include 3 using namespace std; 4 5 int main() 6 { 7 int n,m,T; 8 scanf("%d",&T); 9 while(T--)10 {11 scanf("%d%d",&n,&m);12 . 阅读全文
posted @ 2013-09-01 00:06 xiaxiaosheng 阅读(275) 评论(0) 推荐(0) 编辑