上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 37 下一页
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1023解题报告:就是求第n个卡特兰数是多少,不过这个n的范围有点大1到100,所以还要用到高精度,其实这题也就是纯粹的高精度加法跟乘法结合起来。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int MAX = 1000+5; 7 typedef __int64 INT; 8 char dp[105][10000]; 9 10 void sum(char* s1,char* s2) {11 int le... 阅读全文
posted @ 2013-09-16 17:37 xiaxiaosheng 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4707解题报告:题目大意是在无向图G中有n个点,分别从0 到n-1编号,然后在这些点之间有n-1条边,可以保证这个图是连通图,并且每条边的长度都是1,然后让你求出从编号为0的点出发,到其它的点的距离大于d的点的个数。这题的点的个数有500000个,而内存限制为32M,很显然,开邻接矩阵不行,但这题实际上不需要记录边只需要开一位数组就可以了,但是我为了练习一下邻接矩阵的写法,特地用邻接矩阵另外写了一个代码。第一次写邻接矩阵,一开始忘了标记已经走过的点,造成dfs的时候陷入了死循环,一运行就挂了,很明显 阅读全文
posted @ 2013-09-10 22:10 xiaxiaosheng 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2339解题报告:题目太长了,比赛的时候根本看不懂,完了之后问了什么意思,发现好简单,就是输入n个数据,把这n个数据放入一个集合中,然后每次从集合中取出两个最小的数,求... 阅读全文
posted @ 2013-09-08 21:29 xiaxiaosheng 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2559解题报告:比赛的时候的想法是可以确定至少有两对相切的圆,所以我的做法是枚举其中的两对圆相切,还好,这样只要枚举3次就够 了,然后设其中一个圆的半径为x,然后其他... 阅读全文
posted @ 2013-09-05 22:11 xiaxiaosheng 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2343解题报告:首先我假设最后的正确的结果是a[1] , a[2] ,a[3] ....a[i];然后我们先把这M个金币完全按照x[i] / Y的比例先预分配一下,分... 阅读全文
posted @ 2013-09-05 21:40 xiaxiaosheng 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 解题报告:一开始不知道ATA的意思,后来才知道原来是转置矩阵乘以原来的矩阵。这题说起来比较麻烦就不说了,直接上代码: 1 #include 2 #include 3 #include 4 using namespace std; 5 int A[100005]; 6 7 int main() 8 ... 阅读全文
posted @ 2013-09-03 22:40 xiaxiaosheng 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 解题报告:n个人围坐成一圈,并且将这n个人从1到n编号,然后编号为1 的人手上有一个物品,将这个物品往向左传递给第k个人,1 2 #include 3 #include 4 using namespace std; 5 6 char* chu(char *s) 7 { 8 int len ... 阅读全文
posted @ 2013-09-03 22:32 xiaxiaosheng 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 题目链接: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) 编辑
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 37 下一页