弱智错误集锦
没有脸没有皮。
1. 变量开 long long ,运算过程中操作数是 int ,结果开 long long 爆 int 。
目前错误次数:2
。
eg:
long long ans;
WA:
ans+=(nowrk[i]-orirk[i])*(nowrk[i]-orirk[i]);
AC:
ans+=1ll*(nowrk[i]-orirk[i])*(nowrk[i]-orirk[i]);
2. 文件读写 输出写成 stdin 。
目前错误次数:1
。
eg:
WA:
freopen("lhp.out","w",stdin);
AC:
freopen("lhp.out","w",stdout);
3. 循环变量 i,j,k 写错。
目前错误次数:2
。
eg:
WA:
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;i++)//j写成i
{
cout<<c[i][j]<<endl;
}
}
AC:
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cout<<c[i][j]<<endl;
}
}
4. 字符串 ub 行为。
目前错误次数:1
。
eg:
WA:
string s,str;
str=""+s[i];
AC:
string s,str;
str="";
str+=s[i];
5. 树形 dp 里 dfs 时,整棵树的大小写成 sz[u]
而不是 sz[root]
。
目前错误次数:1
。
eg:
WA:
ans=(ans+((1ll*(sz[u]-sz[v])*(sz[u]-sz[v]-1)/2)%mod*sz[v]%mod))%mod;
AC:
ans=(ans+((1ll*(sz[1]-sz[v])*(sz[1]-sz[v]-1)/2)%mod*sz[v]%mod))%mod;
6. 位运算不注意优先级,不打括号。
目前错误次数:2
。
eg:
WA:
if(!(i>>j)&1)
AC:
if(((i>>j)&1)==0)
7. 左移操作不加ll
目前错误次数:1
。
eg:
WA:
1<<40
AC:
1ll<<40
8. 多测不清空!!!!!!!!!!
目前错误次数:3
。
模拟赛血与泪的教训!!!!!!!!!
T1怒挂100分!!!痛失AK!!!
eg:
WA: 什么都不加
AC:
void solve()
{
memset(dp,0,sizeof(dp));
......
}
9. 局部变量不赋初值
目前错误次数:2
。
eg:
WA:
int query(int p)
{
int ans;
while(p)
{
ans+=tr[p];
p-=lowbit(p);
}
return ans;
}
AC:
int query(int p)
{
int ans=0;
while(p)
{
ans+=tr[p];
p-=lowbit(p);
}
return ans;
}
10. 函数没有返回值 / void函数有返回值 。
目前错误次数:3
。
特征:出现莫名其妙的数字。
eg:
WA:
int query(int p)
{
int ans=0;
while(p)
{
ans+=tr[p];
p-=lowbit(p);
}
}
AC:
int query(int p)
{
int ans=0;
while(p)
{
ans+=tr[p];
p-=lowbit(p);
}
return ans;
}
11. 树状数组的 lowbit 没有特判 0
目前错误次数:2
。
特征:TLE。
eg:
WA:
void update(int p,int v)
{
while(p<=n)
{
tr[p]+=v;
p+=lowbit(p);
}
}
AC:
void update(int p,int v)
{
while(p<=n)
{
tr[p]+=v;
p+=lowbit(p);
if(p==0)p++;
}
}
12. 链式前向星不开双倍空间
目前错误次数:2
。
WA:
const int N=100005;
int h[N],e[N],ne[N];
......
AC:
const int N=200005;
int h[N],e[N],ne[N];
......