[NOIP2025游记]万籁停吹奏/支颐听秋水问蜉蝣
出分了,来补游记。别骂,求放过。
“会等到那一场日出吗?”
“会吧,或许吧……迎着阳光,奔向高堂。”
前情提要:https://chuna2.787528.xyz/wangsiqi2010916/p/19198577
有的时候梦真的是一个神奇的东西呢!
考前梦到在 all in T2,战胜了但没时间打暴力,垫底了,不要跳预言家啊。
结果真跳了。
出分前就频繁的想到 228 这个数字,可能是因为去年乌珂被编辑字符串创飞的分数,结果真拿了 228,呃……
我说呢,梦里的故事,总归是会和现实有些关系。
CSP 考的还可以,可以考 NOIP 了,拜谢 CCF 神机。
去年考完 vp 了 236,但是时间没打满,然后又碰上了百年难遇的全校死机,然后盲目自信觉得能省一。
打过 23 年的 NOIP,给人的印象是题目很规范,部分分合理,去年也是,此时还不知道会发生什么。
考前打正入,然后连着两天被同一个出题人坑,还因为不会用预提交爆零下蓝,好不容易才上橙的 T^T。
然后有一场 T2 没做出来约黄难度的全场切的区间 dp,T4 是数数,拿了 73 也没救回来。
人抱着一个能打就是胜利的心态,反正自己都是 fw 了,就别无所求了。
训练了这么久,结果发现只会那些一点高深算法都没有的东西,我是记板子 fvv。
2025/11/28 搞笑椅子
尝试刷板子,刷了 4 道后直接放弃,对吧,背过了也打不出来,于是开始写去年 T3,这种 Ad-hoc 能不能别出了啊啊啊!
字符串学过的全忘了,只会 hash 和 trie,NOIP 别考串串,真的不会。
Ps:虽然没考,但是不比考了好多少,对吧,出题人?
早上考,所以很早就睡了。
2025/11/29 GDFZ
做梦了,睡得不算好,好在睡得久,不算困。
训练的时候开了 trick 小记,想了一下内容,重新平复心态,关闭稳扎稳打。
比平常上学晚,天亮了,至少不算冷。
乌云疏忽的地方,会有光,洒下来。
灰白色的世界,留下一点高光。
“天会晴的,对吧?”
给自己立了个 flag,冲一下 NGOI 一等,别因为没有压力在考场上直接睡了(doge。
此时的我,无比天真,还不知道将要发生什么。
考场门口发牌子(???,比本人好看,收藏!
遇到了 te_bie_zhi_chu,xzz_cat6,UKE_Automation 等。
为了防止同校相邻,SN 大手子开始重新排座,但是考场排座……???为什么我的旁边是 te_bie_zhi_chu?
开场惯例敲线段树,键盘超级难用,于是写了 15 min,失败。旁边人调侃说开场喜欢整 1.5k 的线段树也是这辈子有了。
对吧 @te_bie_zhi_chu?
不是,为什么上个厕所要跑 5 楼,啊?????
发卷子,没有密码(教练说没有密码吃屎,猜猜会不会兑现承诺),读题,30min。
一眼会了 T1,T2 998244353,一看就很适合 all in,不会 mex,不会数据结构,可以放心 all in。
然后 T1 就没判 m<sum。
T2 从 m=2 入手,很快想到 \(n^3\),然后弄成了 \(\sum C_{i}^xC_{z-i}^y\) 状物,然后就不会了。
我会找规律!
于是输了 10000 个数,结果发现这东西是 \(\prod \frac{k-i}{i}\),直接递推!
11:30,通过大样例。
没见过这么弄组合数的
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
const int N=5005,mod=998244353;
int c,T,a[N],n,m;
ll fac[N*2],inv[N*2],p2[N*2],p[N*2],s[N*2];
struct node{
int id,x;
}b[N];
bool cmp(node x,node y)
{
if(x.x!=y.x) return x.x>y.x;
return x.id<y.id;
}
ll qpow(ll x,int y)
{
ll res=1;
while(y)
{
if(y&1) res=res*x%mod;
x=x*x%mod;
y>>=1;
}
return res;
}
ll C(int n,int m)
{
if(m>n||m<0||n<0) return 0;
return fac[n]*inv[m]%mod*inv[n-m]%mod;
}
int main()
{
freopen("sale.in","r",stdin);
freopen("sale.out","w",stdout);
scanf("%d%d",&c,&T);
fac[0]=inv[0]=p2[0]=1;
for(int i=1;i<=10000;i++)
{
fac[i]=fac[i-1]*i%mod;
inv[i]=qpow(fac[i],mod-2);
p2[i]=p2[i-1]*2%mod;
p[i]=qpow(i,mod-2);
}
while(T--)
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
b[i]=(node){i,a[i]};
}
sort(b+1,b+n+1,cmp);
if(m==1)
{
printf("%lld\n",p2[n]);
continue;
}
ll sum=0;
for(int i=1;i<=n;i++)
{
int t=n;
if(i>=m)
{
for(int j=1;j<=n;j++) s[j]=0;
}
else
{
for(int j=1;j<=m-i;j++) s[j]=0;
s[m-i+1]=1;
for(int j=m-i+2,k=1;j<=n;j++,k++) s[j]=s[j-1]*(j-2)%mod*p[k]%mod;
}
for(int j=i+1;j<=n;j++)
{
if(b[j].x*2<=b[i].x) break;
if(b[i].x==b[j].x) continue;
t=max(t,j);
ll val=s[j];
while(t>j&&b[j].x+b[t].x<b[i].x) t--;
sum=(sum+val*p2[n-t])%mod;
}
}
printf("%lld\n",(p2[n]-sum+mod)%mod);
}
return 0;
}
11:30,真没时间了。
写 T4 暴力,只测了一个大样例就跑了。
写 T3 暴力,状压没调完。
感觉不挂能上 200,结果各种挂。
下考,被关在教室不让出去,开始和 te_bie_zhi_chu 聊,被提醒 inf 次,但是不改。他说没过 T2,上不了 200,信不了一点,45min 后离场,顺了一袋零食。
下午水谷,发现没判 m<sum,直接破防,没有切掉赛季的所有黄题。
不敢拉上窗帘,雨季里,渴望着阳光。
可阳光真正到来时,我却难以抓住这绳索,卑微的藏进黑暗,只敢在四处无人时,病态的,贪恋着。
是的,结果上,我辜负了。
2025/11/30
破防。
2025/12/2 搞笑椅子
whk。
教练在重新定义密码和重新定义屎中选择请学生吃饭。
2025/12/3
95+100+8+25=228
te_bie_zhi_chu 292,OIer_Automation 261,UKE_Automation 256
诗人?
被机房大佬薄纱,看看 T4,原来我把两个正确的部分分拼成了一个错误的东西,痛失 20(常数小,有 45。
T1 只挂了 5 分,拜谢 CCF。
题目是 黄诗扶《吹梦到西洲》。
为什么用这个,可能最近比较喜欢蜉蝣这个意象,渺小生命,终末问天。
它学着画本里少年郎的样子,摸索,攀登,可鲜衣怒马,只是世家子弟与名门正派的专属啊。
可是,渺小的躯体,一吹便散入风中,终是江湖之外,难登大雅之堂。
站在高塔之下,追随一点流萤,飞向漫天星海。
“看,那是流星吗?”
感谢每个看完这篇流水账的人。

浙公网安备 33010602011771号