这道题我不会……看题解才会。
刚开始一看,这不是水题吗?后来发现根本不是……空间只有1MB啊啊啊!
于是看了题解,记录一下当前出现最多的数和比剩余的数多多少个就行了,具体看代码吧。
//BZOJ2456 #include<cstdio> using namespace std; int n,now,tms=1,p; int main() { scanf("%d",&n); scanf("%d",&now); for(int i=1;i<n;i++) { scanf("%d",&p); if(p==now) tms++; else if(tms>1) tms--; else now=p; } printf("%d\n",now); return 0; }