海亮の模拟赛日寄
Day 0
熟悉的头晕?
不是 不能是我虚到爬6楼楼梯都不行了吧
Day 1
因为没加 freopen 全部 RE 。赛后重新交了一下,两个暴力没挂分,但分数也没可观到哪里去
写了 T3 的骗分(据说总司令有 20 的高分……),但忘交了。应该是清页面时失手删了
作业链接不知道去哪了,比赛链接看了无用
赛后把 T1 补了。码力仍是有待提高
补完题后做了几道 DP 优化。大概都能想出来,仍是码力有待提高
Day 2
简述:
T1 T2 T3成功开团。T1 T2每道题十分钟一遍过 ,和之前调 20 分钟的签到题比 有提高
T4 一种 CSP-S T2 的既视感。稍微推了一下又卡了卡常后过了,耗时……40分钟?下次写完程序先卡常,这样就可以省次提交时间
T5 思考无果后直接开始倒序暴力,成功拿到 70 的暴力高分。
之后开始想 T5 。看到中位数大概就是要二分,然后把小于它的数的贡献记为 -1 ,反之为 1 ,然后通过判断和是否大于等于零然后check 。之前好像也遇到过中位数这样的做法,但赛场上还是没想出来
(其实赛场上也往这方向去想了,但不知道是哪个环节断开了,所以最后只有10分暴力&10分骗分)
关键就是 check 函数。若给出的是链,那么应存在
其实 T5 连链的做法都没想出来挺不应该的。主要是二分的转化不确定……哎
虽然但是,凭借暴力拿下 rank 5
闲话:
合出了 4096 。本来想截图纪念一下,结果截不了
今早模拟赛开始前推了下特别行动队的斜率优化式子,结果现在找不到了,不嘻嘻。没看一点题解自己写过了,嘻嘻
感觉有点虚,写点绿题蓝题水一水
Day 2.99
疑似闹鬼,无果,浪费一小时
Day 3
关于题单
有种 CF 既视感:
哎这不随便做做完了吗……WA 掉……WA 掉……到底是哪个地方不对!!!
or 这又是什么难绷组合数(尝试强硬塞进嘴里)呕(尝试失败)
or 怎么又是输出方案,正难则反试试逆着推一下……等等,这是什么逆天结论外加 mini 码量!?
总结:还是我太菜了
后话:
晚上做了些树形 DP ,突然发现不会证复杂度……那真的不会炸吗?
再次明确,树上背包是将一个节点的每个子树当做一个物品,一个 dfs 套三重循环,一个枚举子树,一个枚举该节点总代价,一个枚举该子树总代价。因为相当于滚动数组,所以第二重循环需倒序枚举
和路径统计有关的可以用树形 DP 统计每条边的贡献。除了数组下标中的变量边界条件,还有一些没在下标中体现的约束:比如有一些点要在该节点的其他子树中取,那么取的个数应小于等于这些子树的节点数
做括号序列,转移多到红温。最后一个转移只会
打算继续找点水题做,发现早就挑完了 ,兜来转去又开始写 DP 优化了
PS:在 OJ 上交时有一道题粘错代码了,一个单调队列优化粘了个斜率优化居然还过了一个点…… amazing
去做划分,式子推出来但被高精度制裁了。思考转移点是否具有单调性,事实是有(upd:纯唐,都单调队列了转移点怎么不单调)。写完后又玩了玩样例,算是小完善,高精回酒店再写(upd:这里的高精似乎就是将一个超级多位数分成4个以内的多位数运算 调半天是因为生成数据时的加减写错了 唐)
Day 4
模拟赛总结:
非常非常地糟糕。
看到 T1 有一种可做但我做不出来的直觉——事实证明确实如此,那么多人切掉了,而我尽管前面的都想到了,却死活没有迈向 DP 的方向。还是我的 DP 太菜了,考场上有时根本看不出是 DP。打了 24 分特殊样例,挂了一个,实际 17
T2 的倍增其实也想到了,但那时候忙着去写 T1 两个点的特殊样例,就没继续往下推。10分走人
T3 打了个纯暴力,于是它非常成功地一分不剩了
总结总结:方向都有,但都不够透,最重要的是大脑一片空白——曾经的我会认为那是太久没用脑导致的,现在我算是知道了,就是睡得太少。今天一定要早点睡啊
今日后话:
终于把题单最后的两道题做了,每一题都让我调调调调调调。
划分式子推的、程序写的完全没错,主要是高精度出了问题;lightning 顺着题解的方向也自己完全推出来了(虽然还不会证决策单调性),但是……
37' : 调试时给分界点赋了个奇奇怪怪的值,忘删掉了
57' : 题解中说的是 式子
94' : 没有考虑
Day 5
模拟赛简述:
T1 博弈论,想来想去想不出来(感觉思考层数一多就容易宕机。。。),写了个送的 20 分,结果还因为没特判挂了 10 分额呃呃呃呃
正解
要处理的树由它的两个子树组成,其中它的子树们可以取根节点,而他自己的根不可以。那么,除了原本的树把他看作最开始的样子,计算它的所有子树时都带上它的根的那条连向父节点的边。
然后,这些东西的
现在要删掉一些点,使得
史史的代码
#include <bits/stdc++.h>
using namespace std;
const int N=1e4+3;
const int MOD=998244353;
int n,sg[N];
int f[N][N];
int calc(int id,int i)
{
if (id==0&&i==0) return 1;
if (id<=0||i<=0) return 0;
if (f[id][i]!=-1) return f[id][i];
int cnt=0;
if (sg[id]+1==i) cnt++;
int c=(i^(sg[id]+1))-1;
if (c>=0) { c^=sg[id]; cnt=(cnt+calc(id-1,c)+calc(id-2,c))%MOD; }
return f[id][i]=cnt;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
memset(f,-1,sizeof f);
cin>>n;
if (n==1) { cout<<0; return 0; }
if (n==2) { cout<<1; return 0; }
sg[1]=0,sg[2]=1;
for (int i=3;i<=n;i++) sg[i]=(sg[i-1]+1)^(sg[i-2]+1);
cout<<(calc(n-1,sg[n])+calc(n-2,sg[n]))%MOD;
return 0;
}
T2 神奇染色问题。刚开始推的方向错了,浪费 (?) min 。打了 50 分:毫无思维含量的暴力枚举、一个快速幂解决的链、唯一感觉有些思维含量需递归解决的环,以及没打出来的需要些思维含量的暴力。正解似乎是缩图
调:挂了的 7 分思路没出问题,败在了程序实现上。完全不需要“枚举边”,仍是枚举点,这样可以保证点颜色的“递增”,不会重复统计
T3 是比较对我胃口但不对我水平的序列操作问题。第一次见时限八秒。正解 果然 是分块,但我 不会分块 分块太菜了,推来推去还是只打了个 12 分的暴力
今日后话:
怎么这几天感觉越来越虚了
第一次感到电脑屏幕是如——此刺眼,以至于我完全无法对着洛谷和 DEV 下手
再加上大脑运行不畅,有一种想卷题但完全卷不动题的感觉
肯定是因为中午没睡觉
晚上回去听会儿歌,写点文字,最多再整理一下我史一般的 DP 就睡吧
Day 6
长这么大没见过这么多黑题。这都是些啥。
and then
下午润来隔壁机房了
某题
看到之后想到了二分,但一开始没想到怎么通过二分某个值改变白边的排名。看题解,知道要统一给白边加上某值,然后非常顺利地做完了,但是 WA 40分。
通过题解启发,发现是因为通过这种给边排序的方式尽管构造出了答案,但因为优先白边,所以跑 MST 时不会恰好统计
MST 的性质:
最小生成树的边权组成的集合一定是唯一的,不存在
处理完一些权值相同的边后,不管目前构造的 MST 是什么样,图的连通情况相同。可以分讨一下
感觉眼睛要被屏幕晃瞎了 难绷
调了深色模式,感觉眼睛更要瞎了。
某某题
刚开始在想会不会存在一种唯一的 MST 构造方式使得它不是以 1 为根的菊花图,但这是可以证明出来不存在的。那么现在问题就变成了使得一个完全无向图的一种 MST 构造方案是以 1 为根的菊花图的方案。
玩一下会发现满足上述条件的图应满足每个点与节点 1 所连的边权小于等于它与其他点的边权的最小值,那么让它在状态中体现就是状态
即从原先
利用 MST 性质2
在生成 MST 的过程中考虑是否可以加入某条边。设加入的边的边权为
21:10 嘎困的吕沐澐并没有听到 gg 的召唤,于是再次坐到了电脑前
Day 7
为什么又全是黑题。为什么!!!
放题单里了。我还会回来的!!!
今日后话:
敲了个短短的点分树,过样例的时候还在沾沾自喜,结果发现我这种维护最大值、次大值的方式根本没法使得它们不在同一子树上;如果要改的话,那么就超超超超超级麻烦。翻了下题解,才发现是用堆
思路乱七八糟地写完了堆 跑完样例感觉不如线段树。
提问:把 DEV 调成深色的作用是什么
点击查看答案
把眼睛射瞎而不是被晃瞎
Day 8
今天没有寄,暴力上大分
拿到题后开始乱推 T1 ,推着推着因为脑子太乱了去看 T2。没想出来题目中给出
转过头继续推 T2 ,仍是想链的部分分。实在是推不出式子,写了个记搜,原本有点担心复杂度,看到
然后继续 T1 乱搞。搞不出来,只能拼一把没严格证明的判断。随便乱搞了一下方案,发现有问题,但没时间调了就没管。途中又去看了眼 T3 ,跑了下第二个大样例,发现也跑得飞快。又去跑了第三个大样例,RE 后更改
结果就是这么松弛的过程最后还拿了不少分。?但感觉我的排名全靠暴力。想要场切
Day 9
一日天堂,一日地狱。事实证明没有资本的豪赌只会把分挂光——致 T2
开 T1,不会。大概想了下
回去看 T2 ,看着数据量极小的“大样例”沉默了一会儿。又精简了下程序,加上了几个其他的约束条件,自己造了个特殊的数据,跑过了,感觉应该至少能骗到特殊样例的分,剩下的听天由命(结果:0)
事实证明,捆绑测试完全不能赌,昨天 T1 是还有送的20分,可以随便乱搞赌赌,这乱搞差了就是零蛋
回去看 T1 ,好像并没有那么简单。刚开始在想删除插入怎么搞,手摸了一下发现可以并查集做,就写了个并查集,结果编译过不去(诊断:给的生成数据的程序里面没有using namespace std
),就新开了个 cpp,把感觉和生成数据有关系的复制到了这里,然后跑过了,感觉生成数据应该没问题(后续:RE 零分。赛后又把我的程序塞到它给的那个玩意儿里了,是不 CE 了,输不进去数)
总结:挂了至少 38
做题的时候感觉脑子有点过分活跃了,睡觉的时候也总是动不动醒一次动不动醒一次。会不会是最近上火了?明天好好休息一下吧
Day 10
玩一天,吃饭好评,桌上足球&乒乓球好评(事实证明我啥都很菜),博客美化好评,活体木鱼差评
Day 11
模拟赛简述
寄寄寄寄寄寄寄寄寄寄寄寄寄寄
T1不会做,T2不会做,T3不会做,暴力复杂度算错了所以没打(学姐:暴力复杂度 9e7 能过啊 我:复杂度不是得在 2e7 以内吗 学姐:你在说啥,明明是 5e8),最后只有 20 的纯暴力分。
赛后补了下 T3 暴力(so 为什么本机上跑 10s 的大样例在评测机上只需不到 2s)
关于 T1 :
对于一次修改/询问,那些被操作的下标在二进制表示下会有着相同的前后缀(前缀是因为
(其实并没有看懂题解)
闲话
经过一番波折也是把图论题单的最后一题 A 了。调半天是因为没有 push_down
再次去做括号序列,历经磨难找到了上次写一半的草稿纸,结果草稿纸上没地方继续写了。(此时 BGM : Lovely)。
Day 12
自闭了。开局黑题,这就是你谷说的大吉吗。
T1 第一次接触“轮换”这个词,外加不知道怎么处理 gcd 和模数,然后就没有然后了。
T2 刚开始想了想暴力怎么打,感觉复杂度过不去。。。然后就没做了。。。为什么还是想不到打表,就算像 sxht 那样暴力手模都行啊。。。
T3 暴力跑了个样例,没跑过去,以为寄了,结果发现那个样例串长是 6 不是 5。?
自闭了。
Day 13
第一眼:是树上问题,太好了
第二眼:是树形 DP,我完了
仍是选择不交路径使得权值和最大的问题。非常成功地没推出来
其实过程中差点推出来式子,然后再次遇到了一个眼熟的问题……现在看来,那和我一个月前写树上差分时遇到的问题一毛一样
总结:一个多月没啥长进
Day 14
大小姐回京(
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效