这是我在写fhq-treap(即无旋treap)时产生的错误。
出错原因是我写了相近的一个变量名和一个void函数名。
对于这个错误,我并没有任何头绪。
我已在网络上进行过简单搜索,并没有找到有用材料。
环境:Dev-C++ 5.11
最近没有任何软件更新。
使用头文件:
#include<algorithm>
#include<cstdio>
(下文中“整型”均指32位整数)
其中关于del和delt的定义:
int delt;//全局
void del(int val){
split(root,val,x,z);
split(x,val-1,x,y);
y=merge(fhq[y].l,fhq[y].r);
root=merge(x,merge(y,z));
}
关于delt:其中的x,y,z,root均为整形变量,fhq为一个结构体数组。
struct treap{
int l;
int r;
int val;
int key;
int size;
}fhq[200005];//其中变量全为整型
在此前提下:
错误代码片段:
else if(ch[0]=='F'){
if(fhq[root].size<in)puts("-1");
else printf("%d\n",fhq[getnum(root,fhq[root].size-in+1)].val+del);
}
正确代码片段:
else if(ch[0]=='F'){
if(fhq[root].size<in)puts("-1");
else printf("%d\n",fhq[getnum(root,fhq[root].size-in+1)].val+delt);
}
其中in为整型变量。
对于样例的输出:
错误代码:
4200836
4200856
-1
2
正确代码(与样例一致):
10
20
-1
2
应用错误代码片段,我得到的结果是全WA
应用正确代码片段,我得到的结果是AC
我的问题是:为什么可以输出一个void函数名与一个整型变量之和,而本地和洛谷评测机上都不会CE?
这就是我的问题,如果有任何疑问,我可以在我能力范围内提供任何帮助。