本文共 825 字,大约阅读时间需要 2 分钟。
合并排序再枚举。
题意问五个数组中各抽一个加起来 和是否为 0。
開始想用 200*200*200 和 200*200 比。果然TLE了。
后来知道 得 200*200,200*200 ,200 。
先200*200 的枚举,排序,去重。然后三个元素加起来,微调 两个 200*200 的指针。
这题用 %lld 就WA。得用 %I64d 。贡献N多TLE。N多WA。怒刷存在感。
#include #include #include #include #include #include #include #include #include #include #include #define INF 0x7fffffff#define eps 1e-6#define LL long longusing namespace std;LL num[5][201];LL sum1[201*201];LL sum2[201*201];int main(){// freopen("in.txt","r",stdin);// freopen("2","w",stdout); int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); for(int i=0; i<5; i++) for(int j=0; j =0;) { if(sum1[j]+sum2[k]+num[4][i]==0) { flag=1; break; } else if(sum1[j]+sum2[k]+num[4][i]>0) k--; else j++; } } if(flag) puts("Yes"); else puts("No"); }}