1、先进行其他操作,将break放在最后
2、素数判断中是小于等于根号n
3、写条件判断时注意下符号范围什么的
4、可能性不多就一个一个写出来,合在一起可能反而被自己坑
5、如果出现中断的那个窗口,不要怀疑了一定是输入的锅,看清给出的条件,像行列顺序可能颠倒╭(╯^╰)╮
6、定义数组的时候范围放大一点啊啊啊,就一次忘了结果就是wa/(ㄒoㄒ)/~~
7、啊啊啊啊,这次又是出现了那个窗口,然后死活找不出问题,明明是平时写的一样的套路,怎么这次就出错了啊,后来经过一系列输出中间数据,终于发现自己这个。。。无言以对,我为了图方便,把判断语句写在了输入语句之前,然后有的情况就会跳出循环,本来一次没什么问题,但一般写的都会加上while(~scanf" ", ),这样的话跳出的循环那组数据就会干扰以后的输入。。。总之就是,下次一定要先把数据都输入再判断!!!不要跳步!!!
8、floyd三个循环不要错!先是k,然后i, j
9、今天做杭电2066,超水的一题我wa了有10次,最后终于发现在读入mp[][]的时候,要加入判断条件!!!如果mp[i][j]>c才进行修改,大概有数据是两点之间有不止一条路,这个真的是神坑啊!今天一下午为了找出这个原因我快要怀疑人生了= =--------分割线----------!!!!!啊啊啊啊又一次被坑了,下次写dijkstra的时候一定要加上这个判断条件!!!!!!千万不能再次被坑了
10、注意一下范围,比如如果小于100的话就可以放心用Floyd了
11、当给出的范围特别大的时候,inf的范围也要变啊!要保持比范围大,不然就是一个wa。。。还有范围大的时候可以用科学计数法,不要再写一堆零数了- -
12、en。。。判断是不是联通的,只要看最后的值是不是inf就好了
13、不要对最开始的内容掉以轻心啊,本来以为一开始的while(~scanf)是套路,结果今天就被坑了,很简单的一个dijkstra的变形,结果一直都是runtime error,看到崩溃感觉跟别人写的完全一样为什么就是过不了,最后终于发现题目这次给出的T是一次性的,不用一直读入。。。神坑啊,下次re的时候一定要考虑这个情况!!!
14、在做初始化的时候,一定要注意用到的条件是不是已经读入的
15、如果结果比较大,要开longlong,那么inf范围要增很大。。。同11,可以用0x3f3f3f3f3f3f3f3f
16、在要输入一行字符串or数字什么的时候,记得要考虑上面的输入有没有留下\n!不然下次的读入只有换行符。
17、读入一行不知道个数的整数:
getchar();
int cnt1=0;
char c;
while((c=getchar())!='\n')
{
if(c!=' ')
{
ungetc(c,stdin);
cin>>num1[cnt1++];
}
}