首页 > 代码库 > BestCoder Round #93
BestCoder Round #93
这么快两天就过去了啊……昨天是April Fool’s Day,但绝对是我过的所有April Fool’s Day里最没意思的一个……
估计再不写就要忘了……还是写写吧= =
说好7:00到机房,然而我迟到了3min,等我进机房的时候别人都已经开始码T1了……
总之T1就是个大水题= =每次尽可能往后取直到不能再取为止,配合奇技淫巧STL/pbds黑科技就随便水了……
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<set> 5 using namespace std; 6 const int maxn=100010; 7 set<int>s; 8 int T,n,a[maxn],ans; 9 int main(){ 10 scanf("%d",&T); 11 while(T--){ 12 s.clear(); 13 scanf("%d",&n); 14 ans=0; 15 for(int i=0;i<n;i++){ 16 scanf("%d",&a[i]); 17 if(s.count(a[i])){ 18 ans++; 19 s.clear(); 20 } 21 s.insert(a[i]); 22 } 23 printf("%d\n",ans+1); 24 } 25 return 0; 26 }
然后看T2,看上去好麻烦的样子,看了一会儿就决定先去看后面的题了= =
看T3,咦出题人你算期望怎么还要乘上$26^n$啊,咦这明明是一个计数问题啊,看上去不难的样子,算了先读完最后一题再说……
看T4,咦数据范围$n\le 15$是什么鬼啊,这一看就是折半暴搜的节奏啊,在纸上画一画发现不会合并两部分, 算了先弃坑。
中途又想了一会儿T2,但听他们说这题各种麻烦,也就没敢去写。
去写T3,一开始想错了,写了个矩阵算背包,后来lrd讲给我之后我才发现直接用矩阵维护各个$lcm$的转移就行了(令$f[i][j]$表示前i个数的$lcm$为j的方案),然后重新码码码,然而并没有调出来,比赛就结束了。
然后又是喜闻乐见的hack时间……
做题的时候就看见了我们room的一帮神犇,我和lrz和zlj被分到一个room里了,在hack时间到之前我就说咱们可以愉悦地互相伤害了233……
我们room很弱……只有两个人做出来了T2,其余人都只A了T1或者一个都没做出来……lrz先大力叉掉了一个人的T2,然后又尝试叉掉zlj的T2,然而hack了6次都失败了,然后就弃了去hack别人了……我也试了试hack zlj,先交了一波随机极限数据,结果当然是Unsuccessful,然后又交了一个3后面99999个0的数据,结果感人肺腑——Successful……(其实事后想起来这组数据很弱的,但不知为什么就hack成功了……)
达成成就:第一次在(有hack)ACM比赛中hack成功……
然后就开始翻T1的代码,翻了一会儿没啥收获,又过了一会突然翻到了一个小哥的代码:
if(find(V.begin(),V.end(),……))…… //V是一个vector,find()是<algorithm>里面的函数
这个人用了vector并且没有排序(显然是没法排序的= =),瞬间意识到find()应该是暴力,造了一个所有数都不相同的数据,Successful。
然后就没有太多时间了,又翻遍了T1,但是似乎再也没有犯傻把T1写错的了……
然后就没有然后了……只做了T1居然还排名这么高,感谢hack给我加了150分……
System Test的时候lyc的T2 FST了,惨啊……lrd还一直担心FST,不过最后还是都过了……(给A了前三题的dalao跪了= =)
Rating变化是这样的……
(所以还是想吐槽为什么A了一道题排名就这么高……)
下次的BC时间好像还没定……也许APIO和CTSC的时候可以打一打防止颓废?可是主题明明就是颓啊
BestCoder Round #93