CF AIM Tech Round 4上紫记
来源:互联网 发布:云游seo 编辑:程序博客网 时间:2024/05/17 23:42
本来CF Round427就已经有1865rating了,当时扬言要一战上紫,结果后面两场CF一场-5,一场+2,直到现在才达成目标,可惜暑假结束前或许不再有div1的round了。
这场cf时常2.5小时(然而前108分钟拿到了所有分数)。
开场看A题,以为hack点很多(flag*1,后来发现是真的),过了5分钟才AC,然后15分钟时切了B题,30分钟时切了C题,一看standing,还在200名开外,这样子怎么上紫啊?
点开D题,似乎是道交互题,接着我在UOJ群里看到“随机”二字,所以这题可以随机查询1000个位置,然后暴力?
从洛谷那道卡常RMQ拉来随机数板子,自信不会被卡(flag*2,后来很多人在奇怪的testWA了,突然很庆幸),开场66分钟交了一发, 居然Idleness limit exceeded on pretest 1?这是什么奇技淫巧?折腾了16分钟才知道每次I/O后都要fflush(stdout)
,然后WA了,把种子改成time(0)+5
,随机次数改成900次,还是WA,眼调发现好像是没有判等于,改完就过了pre tests。
一看榜,刚好rank50,这下应该能上紫了吧(flag*3)
好像E题还无人AC,估计没可做。
好像AB题hack点很多,去刷hack算了。
我们房间里好像已经有人在A题刷了7个hack,看了几个估计没有还能hack的了(flag*4,7个hack刷过后A题还有两人FST)
然后就锁了B题,突然发现有个小哥是用组合数实现的,而且封装在一个返回值为int的函数里,造了50*50个1就hack掉了(然而vfk的博客里不是说没开long long要在pt里就显示出来吗?)。
过来会儿B题又多了几个hack,去试试C题吧。
发现C题什么奇怪的写法都有,还有用并查集的,然而叉不掉。
去UOJ群里问”div2C有什么hack点”,有个大佬私信我
2017/8/25 2:50:12
你认为哪里有?
2:51:35
2017/8/25 2:51:35
我也不知道,还没找到
2017/8/25 2:52:14
你没想好就看代码……
2017/8/25 2:52:18
搞什么飞机
2017/8/25 2:52:24
这不是裸的置换群吗
2017/8/25 2:52:28
有什么可以cha的
就这么裱了我一通。
最后3分钟有个人绝杀E题,真是exciting。
仔细回想了这场CF,似乎解锁了两个成就:1.AC一道交互题;2.在CF赛场上成功hack
顺便解说一下div2E的标算:
把原树的重心(可能在边上)找出来,然后努力把被重心(或重心所在边的两端点)分开的子树变成菊花,具体操作见代码。
#include<cstdio>const int N=200005;struct edge{ int to,next;}e[N<<1];int h[N],n,xb,a,b,i,j,rt,rt2,sz[N],f[N],dfn[N],x[N<<1],y[N<<1],z[N<<1],k,dad[N],lst;inline void addedge(int a,int b){ e[++xb]=(edge){b,h[a]}; h[a]=xb; e[++xb]=(edge){a,h[b]}; h[b]=xb;}inline void up(int&a,int b){ if(a<b)a=b;}void dfs(int x,int fa){ sz[x]=f[x]=1; for(int i=h[x];i;i=e[i].next)if(e[i].to!=fa)dfs(e[i].to,x),sz[x]+=sz[e[i].to],up(f[x],sz[e[i].to]); up(f[x],n-sz[x]); if(f[x]<b)rt=x,rt2=0,b=f[x]; else if(f[x]==b)rt2=x;}void getv(int x,int fa){ if(fa!=e[i].to && x!=e[i].to)dfn[++xb]=x,dad[xb]=fa; for(int j=h[x];j;j=e[j].next)if(e[j].to!=fa)getv(e[j].to,x);}int main(){ scanf("%d",&n); for(i=1;i<n;++i){ scanf("%d%d",&a,&b); addedge(a,b); } b=1<<30; dfs(1,0); for(i=h[rt];i;i=e[i].next) if(e[i].to!=rt2){ xb=0; getv(lst=e[i].to,rt); for(j=1;j<=xb;++j){ x[++k]=rt,y[k]=lst,z[k]=dfn[j]; x[++k]=dfn[j],y[k]=dad[j],z[k]=e[i].to; lst=dfn[j]; } x[++k]=rt,y[k]=lst,z[k]=e[i].to; } if(rt2)for(i=h[rt2];i;i=e[i].next) if(e[i].to!=rt){ xb=0; getv(lst=e[i].to,rt2); for(j=1;j<=xb;++j){ x[++k]=rt2,y[k]=lst,z[k]=dfn[j]; x[++k]=dfn[j],y[k]=dad[j],z[k]=e[i].to; lst=dfn[j]; } x[++k]=rt2,y[k]=lst,z[k]=e[i].to; } printf("%d\n",k); for(i=1;i<=k;++i)printf("%d %d %d\n",x[i],y[i],z[i]); return 0;}
- CF AIM Tech Round 4上紫记
- CF C. Sorting by Subsequences AIM Tech Round 4 (Div. 2)(简单模拟)
- cf#AIM Tech Round -B. Making a String-贪心/set
- AIM Tech Round 4 (Div. 2) B
- AIM Tech Round 4 (Div. 2) C
- AIM Tech Round 4 (Div. 2)
- codeforces AIM Tech Round
- AIM Tech Round Div 1
- Codeforces AIM Tech Round 4 (Div. 2) A Diversity
- AIM Tech Round 4 (Div. 2) A. Diversity
- AIM Tech Round 4 (Div. 2) B. Rectangles
- AIM Tech Round 4 (Div. 2) C. Sorting by Subsequences
- AIM Tech Round 4 (Div. 2) D. Interactive LowerBound
- Codeforces AIM Tech Round 4 (Div. 2) 总结
- AIM Tech Round 4 (Div. 2) D. Interactive LowerBound
- Codeforces AIM TECH Round 4 (Div 2) 题解 (ABCD)
- Codeforces AIM Tech Round 4 (Div. 2) A. Diversity
- (组合)Codeforces AIM Tech Round 4 (Div. 2) B. Rectangles
- Zend Studio 无法追踪函数的解决方案
- Hadoop 2.x环境搭建之单机运行模式配置
- 继承
- Spring的简介与配置
- Spring(2.3.22 IOC )
- CF AIM Tech Round 4上紫记
- 关于for循环的优化问题
- 简单的opencv GUI库
- ViewStub Gone的区别
- spark学习笔记:flatMap()(API操作报错)
- 第2章 空间配接器(allocator)
- 【PAT】【Advanced Level】1076. Forwards on Weibo (30)
- (CodeForces
- 阿里云CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL)