我想HACK一份T3的AC代码

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=41630926
一条1到n按顺序链接的链即可卡成
而这个代码是可以过纯随机数据的。
数据生成器:

#include<bits/stdc++.h>
#define maxn 300005
using namespace std;

int Ran(){ return rand() << 15 | rand(); }
int Ran(int a,int b){ return Ran() % (b-a+1) + a; }
int F[maxn];
int Find(int u){ return !F[u] ? u : F[u] = Find(F[u]); }

int main(){
    srand(time(NULL));
    freopen("3.in","w",stdout);
    int n = 300000 , m = 300000;
    printf("%d %d\n",n,m);
    for(int i=1;i<n;i++){
        int u = i , v = i+1;
        for(;Find(u) == Find(v);u=Ran(1,n),v=Ran(1,n));
        printf("%d %d %d\n",u,v,Ran(1,10000000));
        F[Find(u)] = Find(v);
    }
    for(;m--;){
        printf("%d %d\n",1,Ran(1,n));
    }
}
全部评论
 确实这样能卡掉,我打这份代码的时候就是当 n^2logn 的。 我考场上从出题人造数据的角度分析:这种题本身就是按了葫芦起了瓢,没有捆绑就很难造出一份卡掉所有暴力的数据。如果权值或树形有一个是随机的,这份代码就能水过去(我猜出题人没想到)。 希望牛客出题人造数据时可以加强数据强度,至少要保证大部分暴力都能被卡几个点。反正我之前打的几场都有人暴力水过。
7 回复
分享
发布于 2019-11-08 08:10
点赞 回复
分享
发布于 2019-11-08 15:54
滴滴
校招火热招聘中
官网直投

相关推荐

投递腾讯等公司10个岗位
点赞 评论 收藏
转发
7 收藏 评论
分享
牛客网
牛客企业服务