LNOI2022 退役记

省选复盘

相比于CSP和NOIP,紧张程度基本上可以忽略了,我的身体反应的效果比我预想的还要低得多,还是很好的。
这次上考场没有哼国际歌,哼着百鸟朝凤就上楼去了,可见一斑。

开题。
先看了T1T2,T2大概是状压之类,T1乍一看感觉自己高一的寒假就做过这题,简直把贪心写脸上了。冷静一点分析,“任取”的机制就很像一个需要排序的情况,果断考虑贪心。
大约推了半小时,对于 a i > a j ∧ b i > b j a_i>a_j\land b_i>b_j ai>ajbi>bj 的情况好像不太好办,推导了一顿也没找到 O ( 1 ) O(1) O(1) 的判法。考虑到时间因素,写了个没有判断此情况的贪心走人了,这个时候大概心态发生了一点波动(65min)。
然后看T2,发现一共就三种排列是有用的,而且这三个是一组圆排列,性质不错。开始试图设计状压,只能想到一个非常傻的 O ( n × ( 3 n ) 3 × 2 3 n ) O(n\times(3n)^3\times2^{3n}) O(n×(3n)3×23n) ,但是发现自己似乎只会傻 只会这个做法,放一放,往后看看。
看了T3T4,T4看起来非常诡异,T3这个计数由于均分纸牌的加成看起来很亲切。试着推了一下,经过一顿调试和纠错,写了第一版代码。只能过样例一的第一组数据,发现是分界点右边怎么选没有dp,于是又是一顿修改,发现还是过不去。感觉这个debug有些困难(到处都是各种大于小于之类的),于是先放了,改了改格式,建了文件夹,整理了一下东西,回头写T2,心态停止了波动(165min)。
T2这个暴力思路相当直白,好处在于确实好写,折腾了一会儿就写出来了。看了看性质A,也是白给,很快打个组合数预处理写了出来。又看了很久,只不过还是没有想到该怎么优化,看T4了(220min)。
T4认真看了看题,这个性质让人想起了Cool Slogan,试着套了套,差别有亿点点大。那就考虑写暴力吧,想到写一个搜索,写的过程倒是不太困难,但是甚至过不了s=100,只能过20(250min)。
在整理文件夹的时候我突然惊醒,我tmNOIP的T2不就是这么亏的分?于是赶紧开始把T4改成dp,顺利改成 O ( n 3 ) O(n^3) O(n3) (265min)。
终于松了一口气,检查了两遍,T1少写一个取模,补上了;T2改了改空间。
又一次哼着百鸟朝凤出了考场。

赛后

最终成绩90+0+0+25=115,rnk13
T1和T4没有什么可说的,T2因为这一手改空间,大概是时间紧张,又或者是我经过了T4和漫长的改T2的过程忽略了自己的预处理,忘了要改预处理,结果连暴力带性质A全无了,挂了50分。
165就是个rnk7的水平了,怎么说,也是各种非巧合的情况汇集在一起了。还是可以拿来说服自己的,rnk7是个省队的底端水平,很好;rnk13到了CSP到了NOIP也是稳稳的省一,挺好。
就像那个T4的猛然醒悟一样,看着事小,能在一种又是放松又是紧张的一种状态下想起来一些经验教训还是挺不容易的。单是这一点也算是值了。
说起这个T2,就不得不提到我NOI Online T3因为把数组两维开反了导致自己挂了10分(当时似乎没挂这分也是个rnk7左右吧),于是今天格外的注意数组空间,加上那个题面“注意空间复杂度”,属实有点让人哭笑不得,真是关心则乱。
挺好,都挺好的。虽然这期间不再搞竞赛了,大概会多少有一定的生疏,还是希望自己NOIP2022能记得这些经验教训,发挥的更好一些。

一点总结和感想

我总是想,一年前那个Day1下考场感叹自己忘了freopen怎么写的自己,和现在到底变了多少。

坦率的说,今年的各种消息实在是让人比较难过,也是无需多言,毕竟签约难度之类的话题大家都是心知肚明的。在一篇高赞的题解底下的一段话结尾写道:“绕远的路,总有风景”,倒不是说这篇题解是靠着这段感慨获得的高赞,但是这句话确实可以代表现在学这门竞赛一个最基本的状态。如果还得再加一句话,那大概就是“三分天注定,七分靠打拼”,能做的就是把这七分做到最高的水平。
我无意抱怨运气的成分,我觉得这就像所谓的智商差距一样,很多时候说智商差距并不是智商差距,而是智商开发程度的差距,没有开发到极限就放弃了才是常态,这和运气因素差不多,我觉得我的水平还不到能被运气左右的程度。
CSP的时候大概就是一种心有余悸的状态,考完的感觉非常不好,1/3磕磕绊绊,1/3左右为难,1/3潦草急就 (这词放这儿还真合适) ;NOIP更是这样,前面倒是没有太死磕,但是整个过程就是一个左右为难和剪不断理还乱的状态,崩的更是只能用悲惨来形容。
我之前一直耿耿于怀的,不是自己的分低,而是感觉根本就没发挥出自己的水平,“我半年前就能考到这个分”,这个大概是我对于CSP/NOIP评价的最多的话,现在看来,首先我觉得我半年前确实能做到,但是考试的状态确实是不可复制的,也没有什么很大的可比性。此外,我觉得今天算是有了一个解释:虽然我今天写这些题没有用上国赛级的算法,但是考试上积累的很多经验给了我做题的分析方法(最直观的就是今天的T4整个完成的过程),经验和手感是最主要的,人的经验和对这门竞赛的理解达到了一定的水平,能够再掌握这个水平的算法是水到渠成的,所以纠结于自己到底学会了啥也是没有意义的。
讨论以上的这些问题,能够总结出我学这门竞赛学到的最关键的两件事情:一是得充分认识一件事的本质和规律,二是很多事情的本质和规律并没有探求的意义,因为它是无法被理解的。这两点尤其以后者为主要,因为我自认为自己的整个方法论的核心在这门竞赛之前只有前者——我觉得这种收获是远高于这门竞赛能获得的任何成绩本身的。

大概概括完了竞赛,然后是一些文化课的东西。
上个学期回到文化课之后,基本就是按照数理化生一科一科补的,这个补的过程除了生物选修一是跟着hf老师听课补齐的,其他科目缺少的部分完全自学(抄笔记,然后做练习册)。我必须承认,100%自学绝对不是最优也不是效率最高的方法,我觉得那更多是一种执念,我想证明自己的能力。不过过了这个阶段其实就有了更多的经验,一是我进一步强化了自己对于规划能力的自信,自学本身就不是一件随大流的事情,更得有自己的判断力。作为全班唯一一个刷物理教材全解的,照样能补两周考进物理年级前二十,我觉得只此一点就说明我的判断力这方面没什么问题。二是关于练度,有些东西就是在于练,得分清楚事情的成因,比如数学考的特差主要在于练的少,毕竟我的特质就在于需要大量练习才能提高准确率。至于为什么有这个特质,这个本质没法得到答案,那就别考虑这个——这就呼应前面的感想了。最后是关于这个平衡自学和听课的问题,我觉得这方面如何平衡还是得慢慢探索。
好在时间还够,现在距离期末剩下的时间和上学期差不多,而且还有暑假在,只要我不觉得时间不够,追一追就会发现时间是够的,这个问题也不用深究。我对于我的文化课还是比较有底气,这大概是很重要的一点优势吧。还有,希望数学老师给我一个机会,忘了我上个学期拉低班级平均分1分的事情吧(

总之,输得起,不后悔。文化课继续冲,NOIP2022加油,ICPC还得继续发光发热。

补充一句,要是我文化课修仙修成正果了,博客里写一篇攻略总结一下送给24OI,就当作是做点有限的贡献了。

#include<cstdio>
#include<utility>
#include<ctime>
using namespace std;
const int mod = 998244353;
const double alpha = 0.75;
typedef pair<int,pair<int,pair<int,int> > > pr; 
#define mid (l + r >> 1)
int dx[4] = {0,1,0,-1},low[101],fa[101],dep[101],dfn[101],cur[101];
int dp[101],front,rear,top;
int Log[101],rt[101],rnk[101],dist[101],vir[101];
int sa[101],rk[101],link[101],trie[101][5],Hash[101];
int phi[101],mu[101],inv[101],C[101][101];
bool lipu,telipu,isprime[101];
int SG(int x);
int lowbit(int x){
	return x & ~x;
}
struct yjx1{
	int nxt,to,c;
}str;
struct yjx2{
	int sum,lc,rc;
}bt;
struct player{
	int st,ed;
	char date;
};
bool operator * (const Matrix& a, const Matrix& b);
inline double cross(vector a,vector b);
inline double intersect(line a,line b);
solve(int l,int r,int L,int R);
inline void access(int x,int y);
#define belong(x) ((x - 1) / B + 1)
signed main(){
	freopen("Hanoist.in","r",stdin);
	freopen("Hanoist.out","w",stdout);
	srand(time(0));
	int a = read();
	Dijkstra();
	Costflow();
	manacher();
	cdq(1,tot);
	int l = 1,r = 0,z = 0;
	while(l < p[i].l) add(a[++l]);
	printf("24 OI Fighting\n");
	return 0;
}
//Press Ctrl + Alt + T to open terminal...

What’s past is prologue.
Hail to every comrade.

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值