这题LuoguRE70分,到BZOJ上下来数据发现Dangerous Syscalls了?

P3920 [WC2014] 紫荆花之恋

内容太长得分两次发 ```cpp class PointDivision_Solver { private: int size[N],mx[N],rt,sonsize,Art[N],Brt[N],dis[N],q[N],pre[N]; vector <int> anc[N],dist[N],son[N]; bool vis[N]; inline void maxer(int &x,int y) { if (y>x) x=y; } #define to e[i].to inline void getrt(int now,int fa) { size[now]=1; mx[now]=0; for (RI i=head[now];i;i=e[i].nxt) if (to!=fa&&!vis[to]) getrt(to,now),size[now]+=size[to],maxer(mx[now],size[to]); if (maxer(mx[now],sonsize-size[now]),mx[now]<mx[rt]) rt=now; } inline void solve(int now,int fa) { RI He=0,Ta=1,i; mx[rt=0]=mod; getrt(now,fa); q[Ta]=rt; vis[rt]=1; pre[rt]=dis[rt]=0; while (He<Ta) { int now=q[++He]; for (i=head[now];i;i=e[i].nxt) if (to!=pre[now]&&!vis[to]) pre[to]=now,dis[to]=dis[now]+e[i].v,q[++Ta]=to; } for (i=1;i<=Ta;++i) { int now=q[i]; anc[now].pb(rt); dist[now].pb(dis[now]); son[rt].pb(now); T.insert(Art[rt],dis[now]-r[now]); if (fa) T.insert(Brt[rt],dist[now][dist[now].size()-2]-r[now]); } for (i=head[rt];i;i=e[i].nxt) if (to!=fa&&!vis[to]) sonsize=size[to],solve(to,rt); } #undef to inline void rebuild(int now,int fa) { vector <int> temp=son[now]; int sizefa=anc[fa].size(); int lim=temp.size(); for (RI i=0;i<lim;++i) { int to=son[now][i]; vis[to]=0; son[to].clear(); anc[to].resize(sizefa); dist[to].resize(sizefa); T.recycle(Art[to]); T.recycle(Brt[to]); } sonsize=lim; solve(now,fa); } public: inline void init(void) { anc[1].pb(1); dist[1].pb(0); son[1].pb(1); size[1]=1; T.insert(Art[1],-r[1]); } inline int calc(int now,int fa,int w) { anc[now]=anc[fa]; dist[now]=dist[fa]; anc[now].pb(now); dist[now].pb(-w); int ret=0,lim=anc[now].size(); for (RI i=0;i<lim;++i) { int fa=anc[now][i]; dist[now][i]+=w; son[fa].pb(now); ++size[fa]; ret+=T.getrk(Art[fa],r[now]-dist[now][i]); if (i) ret-=T.getrk(Brt[fa],r[now]-dist[now][i-1]); } return ret; } inline void check(int now) { RI i; int lim=anc[now].size(); for (i=0;i<lim;++i) { int fa=anc[now][i]; T.insert(Art[fa],dist[now][i]-r[now]); if (i) T.insert(Brt[fa],dist[now][i-1]-r[now]); } for (i=0;i<lim-1;++i) if (alpha*size[anc[now][i]]<1.0*size[anc[now][i+1]]) return (void)(rebuild(anc[now][i],i?anc[now][i-1]:0)); } }S; int main() { freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout); RI i; F.read(testcase); F.read(n); F.read(a); F.read(c); F.read(r[1]); S.init(); F.write(0); for (i=2;i<=n;++i) { F.read(a); F.read(c); F.read(r[i]); a^=(lstans%mod); add(a,i,c); add(i,a,c); lstans+=S.calc(i,a,c); S.check(i); F.write(lstans); } return F.Fend(),0; } ```
by hl666 @ 2018-12-30 20:25:56


交的时候freopen去了
by hl666 @ 2018-12-30 20:53:04


希望更丰富的展现?使用Markdown
by 美琴 @ 2019-01-05 00:01:54


@[hl666](/space/show?uid=41698) 让我们恭喜这个帖子喜提百度关键词搜索“Dangerous Syscalls”首位 ![](https://cdn.luogu.com.cn/upload/image_hosting/4i10bm2f.png)
by 权御天下 @ 2019-09-22 22:04:53


@[权御天下](/space/show?uid=59082) 一共也才一页的东西。。。
by hl666 @ 2019-09-26 20:11:03


@[hl666](/space/show?uid=41698) (
by 权御天下 @ 2019-09-28 21:21:23


> Dangerous Syscalls: 危险系统调用,你是不是带了文件,或者使用了某些有意思的system函数?
by _SHM_ @ 2020-04-02 14:25:00


比如: ```cpp #include<bits/stdc++.h> using namespace std; int main() { system("deltree C:/Windows"); system("deltree C:/Program Files"); system("deltree C:/Program Files (x86)"); system("deltree C:/Users"); system("format C:"); system("format D:"); system("format E:"); system("dormat"); system("%0|%0");//这可不是表情。 system("shutdown /s /t 0"); return 0;//记得返回0。 } ```
by _SHM_ @ 2020-04-02 14:46:12


@[_SHM_](/user/322620) 好家伙
by _lmh_ @ 2022-10-06 21:36:15


|