[考试反思]0801NOIP模拟测试11

8月开门红。

放假回来果然像是神志不清一样。

但还是要接受这个事实。

嗯,说好听点,并列rank#7。

说难听点,垃圾rank#18。

都不用粘人名就知道我是哪一个吧。。。

因为图片不能太长,所以就不截图了。

你是全场最垃圾的,T1唯一一个hzoi里爆零的,明白没有?

全场最低分40。(会打sort即可)呃。。。除了我

T2已经打了一个20分的状压,结果测试点分治RE0覆盖掉了,我???

T3是好久没有用到的一个思路,想到什么就打一句注释记录思路,结果就。。。除了sdfz远程同网考的,全场唯一一个AC???

怎么总感觉我这个人这么奇怪啊???

个人感觉这套题非常烂,但是我考得太烂没资格这么说,所以诚当我是在狡辩即可。

这次考试题不值得写题解,就不单写了。大概讲讲思路。

T1大概是一个线段树吧?像曾经的一道原题。

理论AC复杂度是26 m log n。但是卡常极其严重。

虽说我打的线段树的理论复杂度也是这个样子,但是我的思路和别人都不一样!(改对后)愣是T成40!

也就是和纯暴力sort一个分。。。

卡常,卡常。最后T70。别人都什么循环展开卡常A了,我因为思路不一样无法继续卡常。

弃了,向tdcp学习暴力AC。

暴力的思路简单:优化桶排,只不过是把相同的字母合并成一段一段的来进行处理。

理论最劣复杂度O(nm),但是即使在最劣测试点下,开O2也能顺利的过掉(不开O2需要2.6s,完全退化为nm)。

更何况这道题的测试点是卡线段树去的,我这个暴力跑的飞快。

傻逼卡常题。除了桶排序/暴力以外什么都没学到,毫无意义。

exp+=0.1。浪费一晚上+一早上改,又暴力碾标算了,还碾了93+%的时间。

T2,神dp!!!想不出来,就是废题一道。

本来是一个很考验思维的好题,但是这道题致命缺陷。

关键是题面描述不清楚(其实不是不清楚,就是错误),因此花费了大约85分钟在错误的题意上。

后来去问教练/学长,都说没有问题。彻底心态爆炸。

我都把所有情况画出来了,怎么可能没问题?

后来强行扭曲题意(想象出题人忘打了哪句话),题意变简单了,还过样例了。。。

就是题目有问题啊啊啊!!!坑害了一大批人!!!

剩余时间不允许,码了个状压码了个搜索,状压裸上20分,测试点分治小状压大搜索超时输出0,RE,爆零,覆盖了那20分。

题目有误,rp--,exp+=0.1。(花了85分钟做了一道本身就不可做的题会有什么收获?认栽)

T3,考验对二进制的理解,结合01-trie。考场上一步一步想,一点一点写,还是有一定收获的。

 1 //发现:对手的操作就是把目前数字左移1位,溢出位补到末尾
 2 //转化:对手可以把前1~i个操作都左移1位,溢出同上
 3 //简化:对手一共有m个数,他会选其一来异或你使你尽量小
 4 //问题:选出数使它被m个数中任意一个异或后的得数的最小值尽量大,最大值?方案数?
 5 //求解:0/1-trie,尽量避开对手的m个数。复杂度O(mn)?
 6 #include<cstdio>
 7 int n,m,c[100005],ss,ans=-1,fa,cnt,t[3000005][2];
 8 int ll(int p){return p&1<<n-1?p<<1^1<<n^1:p<<1;}
 9 void insert(int p,int pos){
10     for(int i=n-1;~i;--i)
11         pos=t[pos][p&1<<i?1:0]?t[pos][p&1<<i?1:0]:(t[pos][p&1<<i?1:0]=++cnt);
12 }
13 void dfs(int pos,int aans,int dep){
14     if(dep==-1){
15         if(aans==ans)fa++;
16         if(aans>ans)ans=aans,fa=1;
17         return;
18     }
19     if(t[pos][0]&&t[pos][1])dfs(t[pos][0],aans,dep-1),dfs(t[pos][1],aans,dep-1);
20     else if(t[pos][0])dfs(t[pos][0],aans|1<<dep,dep-1);
21     else dfs(t[pos][1],aans|1<<dep,dep-1);
22 }
23 int main(){
24     scanf("%d%d",&n,&m);
25     for(int i=1;i<=m;++i)scanf("%d",&c[i]),ss^=c[i];
26     for(int i=0;i<=m;++i)ss^=c[i],ss^=ll(c[i]),insert(ss,0);
27     dfs(0,0,n-1);
28     printf("%d
%d
",ans,fa);
29 }
代码注释都是考场上记录下来的

记录下自己的思想,这是一个新方法。

然而考场上A掉了,会的还是会,不会的还是不会,没什么额外的收获,顶多算个复习。exp+=0.5。

然而我最后一题差点犯低错。第一次提交只剩下10分!(那么总分就将是两个机房加起来的倒数第一)

然而继承了前两次考试的exp,最后30分钟要回顾/检查,发现了这个低错,(10->100,rk56->rk7)

然而这是我之前就知道的。并不算新学到的经验。

好垃圾的一场考试啊。还是因为我太垃圾?

这次是第一次写考试反思连一个能红色加粗的能作为经验的句子都没有。。。

考得太烂了。别抱怨了。你要是AK了随便你怎么说啊

然而,skyh已经彻底的领先我110+分了。

还有最后2次考试,后面的追兵也并没有想象的那么远:总分第三yxs离我只有60分。

超越?被超越?

状态很差啊。

你是怎么了?

别在这越发关键的时候沉睡!

你快点醒过来啊!!!

这还是你吗?

这还是那个有目标有力量的你吗?!!!

原文地址:https://www.cnblogs.com/hzoi-DeepinC/p/11289277.html