随笔分类 -  acm

摘要:http://poj.org/problem?id=1389Area of Simple PolygonsTime Limit:1000MSMemory Limit:65536KTotal Submissions:2772Accepted:1409DescriptionThere are N, 1 <= N <= 1,000 rectangles in the 2-D xy-plane. The four sides of a rectangle are horizontal or vertical line segments. Rectangles are defined by 阅读全文
posted @ 2013-05-29 11:38 南下的小程序员 阅读(273) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=1804和poj 2299一样的题。BrainmanTime Limit:1000MSMemory Limit:30000KTotal Submissions:7694Accepted:4197DescriptionBackgroundRaymond Babbitt drives his brother Charlie mad. Recently Raymond counted 246 toothpicks spilled all over the floor in an instant just by glancing at them. A 阅读全文
posted @ 2013-05-16 20:10 南下的小程序员 阅读(494) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1143题意:求用2*1的矩阵充满3*n的方格有多少种不同的排列方案。分析:看了网上的解析。其实递归就是找规律,测试数据如果多给几个谁都能a。刚开始的时候想画个3*3发现是x是奇数的话肯定不行,然后画3*4嗨,没画出来,脑子不够用。这就是数学不好的结果。http://blog.csdn.net/ma_nong/article/details/7339411 http://ningbohezhijun.blog.163.com/blog/static/587777622009962417638/这两种解法是一样的 阅读全文
posted @ 2013-04-06 15:45 南下的小程序员 阅读(169) 评论(0) 推荐(0)
摘要:做人最重要的是真诚,我觉得我和11171228和cry_mas就是这样的,其实我和很多人都这样,只是我不爱说罢了,至于结果怎么样,随意呵呵。论实力我和cry_mas差距不是一点点,看cry_mas腾讯比赛的排名,我觉得这辈子都别想在acm超过他了,但为什么我这么弱,这么笨,他依旧细心教导,我觉得最重要的真心。我很荣幸能在你烦的时候,听听你的诉说,一个实力在wordfinal的大神,居然对我这么好,哪辈子修来的福啊。等我暑假的时候我一定去找你,虽然我还没和你说,不过我在这里先说了哈,我一定去。反正你又不知道我说了,而且你还不知道我的博客。呵呵,省赛结束了我在和你说。我觉得在你身上学到的不仅仅.. 阅读全文
posted @ 2013-04-02 20:38 南下的小程序员 阅读(230) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=1780//题意:找到一个数子序列包含所有的n位数一次切仅一次。分析:首先要明白为什么选择一个好的数字序列,至多只需要按键10^n+n-1就可以打开保险箱了。n位数有10^种编码方案(即10^n组数),要使得一个数字序列包含这10^n组n位数,且序列的长度最短,唯一的可能是每组数出现一次切尽一次,且前一组数的后n-1位是后以数组的前n-1位,这样10^n组数各取1位,共10^n位,再加上最后一组数的后n-1位,总位数是10^n+n-1.求序列的方法是:对于当前长度为n-1的序列,其后添加一个数字,使得添加后的序列没有在前面出现过。需要注意的是 阅读全文
posted @ 2013-04-01 01:46 南下的小程序员 阅读(225) 评论(0) 推荐(0)
摘要:搞了这么久,acm有时会让人丧失理智。acm需要的是静,耐得住性子,这一过程会磨灭很多个性,也正是这一过程,让人得到成长。而我在这一过程中似乎并没有成长,一心想的是能不能多切几道题,能不能再切几道题,完全失去了耐心,甚至不择手段,失去了一个真正acm本因有的血性,像师傅虽然在一个学院,却仍然可以进现场赛,差点就去wordfinal。我一直觉得他是我见过的最强大的acmer,可我觉得他给我的不仅仅是强大,他教会我的是做人。一个真正acmer玩家是怎样做人的。您说话总是那么客气,我水平如此低下,您依旧耐心指导,要是我们两个倒过来,我肯定都不要理你,因为我们之间水平差距太大了。朽木也要可雕,而我显. 阅读全文
posted @ 2013-03-31 21:44 南下的小程序员 阅读(187) 评论(2) 推荐(0)
摘要:题意:能否找到一条路径经过所有开着门的房间,并使得:1:通过门后立即把门关上,2:关上的门不在打开,3:最后回到你自己的房间(房间0),并且所有的门都已经关闭。题目已知这是连通图。分析:以房间为顶点,连接房间之间的门为边构造图。根据题意,输入文件的每个测试数据所构造的图都是连通的。本题实际上是判断一个图中是否存在欧拉回路或者欧拉通路。无向图存在欧拉回路的充要条件一个无向图存在欧拉回路,当且仅当该图所有顶点度数都是偶数且该图是连通图。有向图存在欧拉回路的充要条件一个有向图存在欧拉回路,所有顶点的入度等于出度且该图是连通图这题是无向图。这题的关键其实是在读入输入。。。1:因为有空行,而且这些空行都 阅读全文
posted @ 2013-03-29 14:45 南下的小程序员 阅读(264) 评论(0) 推荐(0)
摘要:题意:求棋子从起点到终点的最小步数。分析:bfs。注意:用while(scanf("%s%s",str1,str2)!=EOF)会tle。这边2次tle后来改成while(cin>>str1>>str2)就过了。收获:bfs实在是弱,这题几乎是按照自己思路,一点一点敲出来的,不错。继续加油。(这题以前做过,当时是用数组模拟队列,是照别人做的。)View Code // I'm the Topcoder//C#include <stdio.h>#include <stdlib.h>#include <string. 阅读全文
posted @ 2013-03-29 09:30 南下的小程序员 阅读(151) 评论(0) 推荐(0)
摘要:题意:游戏采用N*N的棋盘,方格数为1~~N^2.其实玩家位置在1,每次投一次骰子,问最少需要几次可以到大N*N这个格子。其中格子中有蛇和梯子,在蛇头则降至蛇尾,在梯子底部则升至梯子首部。分析:蛇和梯子占据哪些方格并不重要,只需要知道蛇和梯子的起始位置即可。在走了若干步之后,对于一个特定的格子只有两种状态:(1):在走了这些步数后存在一种方案使得玩家的位置位于此格(2):不存在这样一种方案。所以,只需要记住每次投骰子后玩家可能到达的位置,直到可以到达第N*N个方格处时停止扩展。View Code // I'm the Topcoder//C#include <stdio.h> 阅读全文
posted @ 2013-03-28 17:38 南下的小程序员 阅读(205) 评论(0) 推荐(0)
摘要:题意:求连通分量的个数分析:直接用dfs,每次返回一次,sum++;View Code #include<cstdio>#include<cstring>#include<iostream>using namespace std;const int maxn = 110;char str[maxn][maxn];int xx,yy;int n,m;int sum;int dir[8][2]={{-1,1},{0,1},{1,1},{-1,0},{1,0},{-1,-1},{0,-1},{1,-1}};void dfs(int si,int sj){ str[ 阅读全文
posted @ 2013-03-27 21:48 南下的小程序员 阅读(244) 评论(0) 推荐(0)
摘要://题意:求从@出发的连续的'.'的个数。分析:直接用dfs。感悟:我很水啊,这题敲了半天。加油啊,亲。View Code #include<cstdio>#include<cstring>#include<iostream>using namespace std;#define maxn 110int n,m;char str[maxn][maxn];int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};int sum;void dfs(int s,int e){ for(int i=0;i<4;i++) 阅读全文
posted @ 2013-03-27 21:11 南下的小程序员 阅读(280) 评论(0) 推荐(0)
摘要://题意:一只小狗要从起点S到终点D且恰好在第t秒到达,问是否可能。分析:这题关键是剪枝。剪枝技巧来自http://blog.csdn.net/zxy_snow/article/details/6177892DFS。之前一直TLE了,死活不会优化 = =。。就搜了下。那个用距离判断的我也加了,还是TLE了 = =。。学到个这个,这一句很神奇。。。if( d % 2 != (Time-t) % 2 )return ;刚才自己手动模拟了下,理解了。d是当前点与目标点的坐标差。Time-t即从当前点到达目标点需要走多少步。这两个值的奇偶性是一致的。如果中间没有墙,那么两者应该是d + x == Ti 阅读全文
posted @ 2013-03-27 17:08 南下的小程序员 阅读(188) 评论(0) 推荐(0)
摘要:题意:来自神姐http://blog.csdn.net/lyy289065406/article/details/6645991在一个y行 x列的迷宫中,有可行走的通路空格’ ‘,不可行走的墙’#’,还有两种英文字母A和S,现在从S出发,要求用最短的路径L连接所有字母,输出这条路径L的总长度。一格的长度为1,而且移动的方法只有上、下、左、右,所以在无任何墙的情况下(但“墙#”是必须考虑的,这里只是为了说明)任意两个字母之间的距离就是直接把 横坐标之差 加上 纵坐标之差注意的是,可行的路为 字母 和 空格 不可行的路为 # 和 矩阵范围之外根据题意的“分离”规则,重复走过的路不再计算因此当使用p 阅读全文
posted @ 2013-03-26 20:41 南下的小程序员 阅读(158) 评论(0) 推荐(0)
摘要:题意:求连接所有村庄的最短路径。就是求最小生成树。分析:直接套用prim模版。 POJ 2421在这题上又该进了点。http://www.cnblogs.com/lanjiangzhou/archive/2013/03/25/2981491.html。其实都一样。View Code // I'm the Topcoder //C #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <math.h> #inc 阅读全文
posted @ 2013-03-26 13:22 南下的小程序员 阅读(200) 评论(0) 推荐(0)
摘要:以前写的报告,可以参考下http://blog.sina.com.cn/s/blog_99ca2df501019bkd.htmlView Code 1 // I'm the Topcoder 2 //C 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <string.h> 6 #include <ctype.h> 7 #include <math.h> 8 #include <time.h> 9 //C++ 10 #include <iostream 阅读全文
posted @ 2013-03-25 23:40 南下的小程序员 阅读(142) 评论(0) 推荐(0)
摘要:题意:建立QS网络的最小费用。分析:运用prim算法求解最小生成树关键:本题关键是建图。在构造有向网时,每条边的权值为两个QS的适配器的加个加上两个QS之间网线的加个。这样就可以解决问题了。简化:本题只需最小生成树的权值,不需要记录构造最小生成树时选择的边,因此可以将lowcost数组和nearvex数组合二为一。自己做法还是一起解决吧,省得记那么多。呵呵View Code 1 // I'm the Topcoder 2 //C 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <string.h& 阅读全文
posted @ 2013-03-25 21:35 南下的小程序员 阅读(225) 评论(0) 推荐(0)
摘要:题意:邻接村子里面所有的村庄,使得道路的总长度最小。分析:由于题意说会有已经通好道路的村庄。我们任然可以利用prim求解最小生成树,只要把已经通好道路的权值置为0,就行了。View Code 1 // I'm the Topcoder 2 //C 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <string.h> 6 #include <ctype.h> 7 #include <math.h> 8 #include <time.h> 9 //C++ 10 阅读全文
posted @ 2013-03-25 21:18 南下的小程序员 阅读(385) 评论(0) 推荐(0)
摘要:题意:求连接所有地点是网线长度最短分析:kruskal。一开始数组开小了 导致re了几次,然后开大后有wa 了几次,郁闷的去取了快递,吃了饭。回来在检查发现parent[]这边又出问题 了。应该是for(int i=1;i<=n;i++){ path[i]=-1;}而不是下标从0 到n-1.嗨。。。View Code 1 // I'm the Topcoder 2 //C 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <string.h> 6 #include <ctype.h 阅读全文
posted @ 2013-03-25 17:50 南下的小程序员 阅读(166) 评论(0) 推荐(0)
摘要:题意:求连接所有村庄道路的最小费用。分析:kruskal算法,直接求最小生成树。注意:这题输入的时候是字母,所以要注意了。POJ如果用getchar()的话会wa。坑爹啊。还好我后来在ZOJ 上提交过了,在POJ discuss里发现说tle||re的注意了要用数组输入字母(呵呵,我的是WA),以后碰到这种还是直接用数组,省那么点空间干嘛。还有这题关键是建图,具体细则参看代码。这次代码有点乱。呵呵。见谅。View Code 1 // I'm the Topcoder 2 //C 3 #include <stdio.h> 4 #include <stdlib.h> 阅读全文
posted @ 2013-03-25 16:22 南下的小程序员 阅读(209) 评论(0) 推荐(0)
摘要:题意:用所给的网线链接所有的路流器,使得最长的单根网线的长度在所有方案中是最小的。分析:本质还是求最小生成树。为了输出单根网线的长度在所有方案中是最小的以及输入p对顶点,需要在选择的时候记录下已选则 的网线的下标。zoj这题80ms,而uva 前面几次tle。后面人品好点干好1s。啊。秒杀啊。擦。View Code 1 // I'm the Topcoder 2 //C 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <string.h> 6 #include <ctype.h> 阅读全文
posted @ 2013-03-25 14:49 南下的小程序员 阅读(179) 评论(0) 推荐(0)