随笔分类 - POJ
摘要:View Code 1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 5 struct XPoint 6 { 7 int x; 8 int step; 9 }s,e;10 11 XPoint route[110000];12 bool visited[110000];13 int rear,top;14 15 XPoint bfs(XPoint point);16 17 void init()18 {19 int m,n;20 while(cin>>m>>n)21
阅读全文
摘要://1321、我分分钟都可以A掉你你都不知道系咩事、A掉的那一刻,我盯着屏幕看了好久,这真是一道让我痛苦万分的题目,递归啊递归。。。是看了discuss里有个人贴的错误代码才获得灵感。。。思考了那么久,是那么的值得,差点放弃了。。。另外这道题要深刻总结,网上看了两种更简洁的方法,明天具体分析。真是一道关于深搜、递归的好题。View Code 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 6 char map[9][9]; 7 int s
阅读全文
摘要:其实编码时间用得较久,无明显异常。提交发现一直的RuntimeError,查到是关于数组越界等错误,猛然想起自己的队列开得不够大,最多30*30*30个点,硬是被我估算成9000,开个20000的队列还以为很大了,哎。。。三维的广搜而已,广搜要记得涂每个点的层数,我是用结构体增加一个数据项step来实现的,这个考虑了比较久,不应该啊,之前应该写过类似的,不总结很不好啊。View Code 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 6
阅读全文
摘要:从昨晚11点钟开始编码,2点半睡觉,8点半起床,编码不用1个小时,调试用了无数的时间。总之还是一句话,编码之前方方面面考虑清楚,到后面的调试就不会用很多时间了。继续加油,还是太浪费时间了。。。。这道题深度优先搜索,要考虑很多细节问题。View Code 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 6 int map[40][40]; 7 int weigth,height; 8 9 #define ONLINE 10 11 void
阅读全文
摘要:以后建坐标系一定要以列为X轴,以行为Y轴。由于开始编码时没清晰认识到其重要性,导致调试非常麻烦。感觉我的DFS和BFS都写的比较简洁,心里很满意。。。虽然一次就AC了,但是昨晚调到3点钟,今天中午又调试了起码一个小时。思路还是很清楚的,就是要注意细节,编码阶段越认真后面的阶段越省事。。。View Code 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 6 int map[41][41]; 7 int direction[5][2]={{
阅读全文
摘要:很明显的深搜问题。继续加深对递归过程的理解。先贴个WA的代码,原因是每次递归的时候只能确定当前值,而返回是从最后调用的依次向最先调用的返回,刚开始输出不知如何处理,因为只能逆序比较简单。当时头脑发热,想从最后(p,q)点迭代,错误的以为这是从(1,1)迭代的逆过程。虽然样例能过,但是显然没有理解深搜的概念,因为逆过去了就相当于从(p,q)点开始深度优先。View Code 1 /*解题思路:最难理解的是按字典序输出。一直在考虑应该怎样才算是按字典序输出,应该是所有可能的输出序列中按字典序的第一个。 2 这样可以知道每次DFS的时候选取8个方向的时候有个选取顺序问题。*/ 3 4 #incl..
阅读全文
摘要:提交一次就accept了,唯一的瑕疵是又调试了,因为自己的逻辑不清楚,导致sign数组的赋值与函数调用的关系没弄清楚。应该从第一次调用时就开始考虑所有数据,而不是从下一次着眼,想当然了。。。View Code 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 5 #define ONLINE 6 7 using namespace std; 8 9 int column,row,begin; 10 int sign[11][11]; 11 char map[11][11]; 12 in
阅读全文
摘要:终于可以说这是道比较简单的模拟题了。虽然做了3个多小时,但是自己比较满意。加油,以后会越来越快的。很享受思路清晰地编程实现。还有,C下面的调试我算是会用了。View Code 1 #include<iostream> 2 #include<cstring> 3 #include<cstdlib> 4 #include<cstdio> 5 using namespace std; 6 7 #define ONLINE 8 9 struct Robot 10 { 11 int x; 12 int y; 13 int d; //direction:N,
阅读全文
摘要:连续超时了N次。具体不知道是不是因为用了cin.ignore()这个函数导致读到文件尾不能结束。。。?(等待解决)可以考虑文件结束符是EOF,而player估计初始化的是NULL,到while的时候由于忽略了这个文件结束符,故会一直等待。getline()函数会丢弃最后的enter符。网上摘抄总结:第一:要注意不同的函数是否接受空格符、是否舍弃最后的回车符的问题!读取字符时:scanf()以Space、Enter、Tab结束一次输入,不会舍弃最后的回车符(即回车符会残留在缓冲区中);getchar()以Enter结束输入,也不会舍弃最后的回车符;读取字符串时:scanf()以Space、Ent
阅读全文
摘要:实现思路:用到的数据结构:struct Piece{int x,y,v};vector<vector<Piece> > pieces(12);Piece主要用于存点的信息,行号,列号,还有字符值(int(char))。根据输出的要求知道必须按字符顺序输出,从K开始,这样每个字符用于数组(即vector)的下标,根据每个pieces[i]可以给基于同样字符的点排序。输出时转换注意数字,大写字母,小写字母的ASCII码是逐渐变大的,比如字符为v(为小写),要输出对应的大写字母,则可以char(v-'a'+'A')就可以满足要求。注意比较函数是
阅读全文
摘要:虽然AC了,但是要做深刻的总结。View Code 1 /*首先需要考虑五个问题。 2 第一:怎样遍历p,q,r,s,t分别取0,1?用个数组value[5],根据value[i]分别取0,1,可以五重循环实现,也可以递归实现。注意递归实现的技巧。 3 第二:如何判断真值?有了p,q,r,s,t的值以后,则用计算前缀表达式的方法来处理。注意这种情况也能递归。根据每次value的值,如果返回值为1,则真,继续换下一种;返回为0,则不用计算了,打印not。*/ 4 5 #include<string.h> 6 #include<iostream> 7 using names
阅读全文
摘要:令我讨厌的一道题,耗费了我很多时间,还是编码不细心啊。View Code 1 #include<iostream> 2 using namespace std; 3 4 int main() 5 { 6 int s,d; 7 while(cin>>s>>d) 8 { 9 if(4*s-d<0)10 {11 if(10*s-2*d>0)12 cout<<10*s-2*d<<endl;13 else14 cout<<"Defic...
阅读全文
摘要:小小的一道贪心算法题,由于读数据的时候未读完数据居然卡了两个小时。不过这次代码写的自我感觉不错,结构也清楚,这种小题现在对我来讲毫无压力啊。。。。View Code 1 #include<iostream> 2 #include<stdlib.h> 3 #include<math.h> 4 5 using namespace std; 6 7 struct ln 8 { 9 double x1;10 double x2;11 }section[1010];12 13 int cmp(const void *a,const void *b)14 {15 str
阅读全文
摘要:动态规划的综合题。绝对经典的好题目。整整做了五个小时,但是由于自己思维不严谨,太急躁,静不下心来。导致写完程序后煎熬了2个小时。得不偿失,以后写程序的时候不要再听歌。AC后没有快感,因为头脑始终没清醒过。View Code 1 //陪审团的人选,选出的M个人必须满足辩方总分和控方总分差的绝对值最小。如果差的绝对值一样,那么选择双方总分之和最大的方案。 2 //需要用一个数据结构存储辩控差一定时最大的辩控和。用二维数组jury[i][j]表示i个人辩控差为j的时候的最大的辩控和。j先加个400. 3 //jury[0][0]=0,第一个人的时候,构造出jury[1][p[i]],此时,设置pa.
阅读全文
摘要:广度优先搜索+位运算+递归输出路径。这道题关键是输出路径是很难的,其中参考了网上的一种递归输出的方法,需留意。View Code 1 #include<iostream> 2 using namespace std; 3 4 unsigned short handles; 5 unsigned short queue[65535]; 6 int father[65535]; 7 int cx[65535],cy[65535]; 8 bool flag[65535]; 9 unsigned short door[16]={0x111f,0x222f,0x444f,0x888f,0x1
阅读全文
摘要:九点五十九分A了我的第二题,之前提交了好多次,各种改,最后还是很兴奋。我很开心,真的很开心,这是我自己独立做出来的两道ACM难度的试题,而且还不是水题,虽然自己参考了别人的算法。本来今天计划是要A三题的,但是下午海龙跑过来找我了,晚上去广外吃了饭、粥、粉、螺。感冒了,抽烟不爽。贴下代码,继续加油!View Code 1 #include<iostream> 2 //#include<memory.h> 3 using namespace std; 4 5 6 int cakesLine,cakesPieces; 7 const int MAXLONG = 40; 8 9
阅读全文
摘要:用的是广度优先搜索+位运算。这是我AC的第一题,做了两天,纪念一下。View Code 1 #include<iostream> 2 3 using namespace std; 4 5 unsigned short temp; 6 int top=0; 7 int rear=0; 8 unsigned short queue[65535]; 9 int step[65535];10 bool status[65535];11 12 13 void init()14 {15 for(int i=0; i<4; i++)16 for(int j=0; j<4; j+...
阅读全文

浙公网安备 33010602011771号