1.二进制枚举超限 不能超过50。总结,可以采取其他枚举子集的方法,不过如果子集数过多的话,说明应该换一种思路了
2.if语句的前后对应
例题1:hdu 5175
//循环体 { m=(n^i); if(m<=0||m>n) continue; //错误在这里,本来希望判断(n^i)在不在1到n之间,却直接把接下来待判断的n^(n/i)判断漏掉了,直接跳过了这次循环 if(kgcd(n,m)==i) nt[k++]=m; if(i*i==n) continue; m=n^(n/i); if(m<=0||m>n) continue; if(kgcd(n,m)==n/i) nt[k++]=m; } 总结:由于自己还不过细心,应该在编程中尽量采用if else结抅,避免使用continue