欢迎使用CSDN-markdown编辑器

来源:互联网 发布:win10优化驱动器有用吗 编辑:程序博客网 时间:2024/05/17 09:07

被坑之路永无止境

一、RE

(1)

int z=s[a][b]-s[j-1][b]-s[a][k-1]+s[j-1][k-1]if(a>0&&b>0&&a<=R&&b<=C&&z==0){    sum++;}

因为有可能z的值是一个出界的数组,所以z可能是不存在的,则不能调用,会RE
这个也不行

if(a>0&&b>0&&a<=R&&b<=C&&s[a][b]-s[j-1][b]-s[a][k-1]+s[j-1][k-1]==0)  

改为下面的样子

 if(a>0&&b>0&&a<=R&&b<=C){    if(s[a][b]-s[j-1][b]-s[a][k-1]+s[j-1][k-1]==0)    sum++;}

(2)

尽管bool数组开【30000】【30000】在本机上是并没有问题的,然而交上去会RE的,谨慎开数组!

(3)

注意快读read()的getchar读到了换行符\n,然而cin的时候就不会读到。
这是读了一个换行符,还要再读一个的情况

p=read();k=read();t=getchar();

没读换行符,需要读两个。(换行符有俩)

cin>>p>>k;t=getchar();t=getchar();

详情见洛谷P1026 统计单词个数。

二、优化速度

(1)

背包:能用if判断,就用,降复杂度
从v[i]到max :每种物品个数不重复
从max到v[i] :每种物品只有一个

(2)

用scanf要加&
printf
在20万以上起作用,100万cincout报废

(3)

把“!”改成“==0”,“ ”改成“!=0”,多过25分,玄学

(4)

把a[x][y]改成i,(for循环),多15分

(5)

搜索时谨记要揣摩出题人想法,倒着搜比较好

三、玄学

(1)

勾股数
给定a
n=a/2
x=nn1
y=x+2

n=(a1)/2
x=2n+2nn
y=x+1

(2)

当你有一个题想不出一种正确的排序方法,不如按照题目从两个人推全局
就……AC啦! ——洛谷P2123 皇后游戏

四、细节

(1)

复制子函数时注意参数的意义

(2)

阮文哲:
if(n==1) cout<<lx<<" "<<ly<<endl;
由于我的循环从2起 所以n==1 就挂了

(3)

软了个猪头(李嘉林):
能开int数组别开long long数组,会MLE

(4)

复制子函数时注意参数的意义

(5)

左移右移(<<,>>)的优先级不如加减高,所以能加()就尽量加吧

五、TLE

(1)

getchar()读字符,可能是有换行符的关系,全T了,不如cin