摘要: 题意:一个ID对应一个周期,不同的ID对应不同的周期,总共可能有3000个ID,输出先返回的K个ID。(当时刻相同时先返回ID小的)题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1212——>>这道题目够味,简单得够味!!!开始的时候总想着找最小公倍数,觉得不大用得上优先队列,敲着敲着,有灵感啦!先将每个Register放入优先队列,返回最早的最小ID的那个,输出后,让它的时间加上自己的周期再放入队列,于是……AC!#include #include #include using namespace 阅读全文
posted @ 2012-12-08 18:22 xiaodanding 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题意:火车车厢按1,2,3...的顺序进站,问车厢号是否能排成目标序列出站(栈结构)。题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=259——>>暑假曾在汝佳神牛的白书上见过这题,原来在zoj上也有……顺序序列与目标序列匹配,匹配上就转到一节车厢;不能的话再用栈顶与目标序列匹配;也不能的话看顺序序列能否放入栈中,能就继续,不能就“No”。只可惜……“Yes”被我写成了“YES”, ”No"被我写成了“NO”,WA了3次!!!每块后都加空行被我弄成了块间加空行,又"PE"了 阅读全文
posted @ 2012-12-08 16:25 xiaodanding 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题意:输入不超过26个矩阵的行数和列数,接着来一些表达式询问,求各条表达式需要多少次基本运算。题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=94——>>用STL开2个栈,一个用来存“(”,一个用来存储矩阵,扫描表达式,当碰到矩阵时,放入矩阵栈;当碰到“(”时,放入符号栈;当碰到“)”的时候,从矩阵栈中取(退)2个矩阵相乘并记录乘法次数和,并将相乘后的矩阵放入矩阵栈,从符号栈中删除1个“(”,最后输出结果即可。#include #include using namespace std; struct M 阅读全文
posted @ 2012-12-08 14:55 xiaodanding 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2078题意:用21种球币:1^3, 2^3, ..., 21^3(数量不限)来组成数n来几种方法。——>>汝佳神牛白书动态规划中通过率最高的一题,却让我搞了大半夜也没弄出来,今早一试却AC!dp(i, j)表示用前i种球币组成j元钱的方法数;状态转移方程:dp(i, j) =dp(i-1, j) + dp(i, j-v[i]);(对于第i种球币,要么不用(dp 阅读全文
posted @ 2012-11-24 08:19 xiaodanding 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1048题意:N个城镇之间已有M条高速公路,问还需建哪几条高速公路使所有的城镇都相通,并且路程最短。——>>这道题与zoj1203很是相像,不同的是这题已有互通的边。计算任意两个town之间的距离并存起来,排序,并查并记录要连的边。处理输出顺序,在这里,可能前面的处理方法与标程不一样,搞得现在处理输出顺序挺麻烦,如果要输出1 2, 3 7, 3 8, 3 9, 4 5, 4 9 的话,应该按这样的顺序输出:1 2, 3 7, 4 5, 8 3, 9 3, 阅读全文
posted @ 2012-11-22 22:24 xiaodanding 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1203题意:求连通n个城市的最短路径。——>>先把“任意”两点间的距离存到dist数组里,然后对其进行一次排序,接着开始对dist进行扫描,如果扫描的两个点的树根相同,说明这两个城市已经相连,就不用加距离了,如果扫描到的两个点的树根不相同,说明这两个城市还没有相连,sum要加上这个距离,最后输出sum即可。带路径压缩:#include #include #include #include using namespace std; const int 阅读全文
posted @ 2012-11-21 18:32 xiaodanding 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 遇到高精度的题目,曾经是多么的不快,可是一次又一次硬着头皮写了过后,觉得,高精度的题目也想像中的那么烦……这道大斐波数,更是乌龙,原来打算从右边找到不为0的位置来确定长度,不慎将 “!=” 写成了 “==” ,奇迹的是竟然AC了!后来发现,把数为0的位也相加,不影响结果,还省去了求长度的麻烦,当然,占的内存多了点,哈哈!#include #include using namespace std; int f[5010][1010]; //第1个5010用来存5010个斐波那契数(测试可知第5000项已超过了1000位),第2个1010表示给每个斐波那契数开1010位 in... 阅读全文
posted @ 2012-11-20 16:54 xiaodanding 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 这是一道简单的并查集题目,对于每个人,都先建一棵以他为根的根树,用数组实现树的思想,只要一个fa[]数组就够了,然后写一个寻找树根的函数,因为我们每次操作都是对树根进行的,再写一个判断函数,判断在同一棵树中的时候,返回1,不在同一棵树的时候,把层数小的并到层数大的树中,返回0,另外一个数组,保存以每个人为根的朋友数。就这样了,TLE!(不听老人言,用cin没用scanf) CE!(点了C提交) AC!(换回C++提交)#include #include const int maxn = 100000 + 10; //最多可能有100000个人 int fa[maxn], ... 阅读全文
posted @ 2012-11-19 18:51 xiaodanding 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 今天兴致再起,突发想法,用第三种方法,广度优遍历棋盘,每走一步,就在那个位记录下到达那个位置所需的步数,AC此题。#include #include #include using namespace std; typedef struct Tdata //定义结点数据类型 { int x; int y; }data; data end; //目标结点 int dx[] = {-2, -2, -1, 1, 2, 2, 1, -1}; //行偏移量 int dy[] = {-1, 1, 2, 2, 1, -1, -2, -2... 阅读全文
posted @ 2012-11-14 10:43 xiaodanding 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 这是一个在三维空间中找出口的最短路径问题,从出发点开始,广度优先遍历地图,记录到达各地所需的步数,然后,AC!但要小心,别漏了外加一层墙,不然就WA了(不加的话最外一层判断能否外的时候怎么办,哈哈)。#include #include #include using namespace std; const int maxn = 30 + 10; typedef struct Tnode //定义结点数据类型 { int x; int y; int z; }node; int L, R, C; char maze[maxn][maxn][max... 阅读全文
posted @ 2012-11-13 20:47 xiaodanding 阅读(201) 评论(0) 推荐(0) 编辑