HAJX[2024] 游记


· 谨以此记,记录我们共同热爱的OI!


洛谷食用

博客食用

简介:这是一个正在学习C++的OIer(很蒻很蒻)的日常记录。
(注:2024.7.5-7.20集训日更)

放在前面:

本贴只是记录一下本蒟蒻的生活,(太菜了),佬们轻喷谢谢~


浏览次数:(由于网站原因可能无法显示,属于正常现象)

1

Day 0

期待集训ing 。


0-上午

在来的路上听歌(摆摆摆

中午到了 JZYZ 。

午饭:黑椒肉拌面+冰镇石榴水,好吃,好喝,好评。


0-下午

班里好多去年 HAJX[2023] 的同学,zzy大佬居然也在,膜拜

0-开幕仪式

好多厉害的人物和教练还有学生代表讲话。

膜拜D组(省队)的五位dalao。

晚上

晚饭:螺蛳粉+有椰奶茶 好吃 !

(另:又迷路了…食堂还是lcx带我去的

晚上都是自习,只说了说注意事项,做了做模拟和动态规划的题
动规:A掉一道线性dp绿题,区间dp写挂了
模拟:写到最后也是 \(20pts\) ,炸了……

(班里好多高中生,膜拜dalao)

Day 1

上午

早餐:肉夹馍+烤肠+大米汤

早自习写了点背包dp。

今天讲“贪心和堆”

啊啊啊,好难QAQ

讲的也好快,仨小时过了十几道题 还都挺难的
本蒟蒻表示非常崩溃
不过中午又推了一中午过了两道题好多了)
中午饭:忘了名字的面+柠檬水
ps:虽然忘了名字,但是好吃!
(中招可以查分了,但人太多网站被挤出来了qaq)

下午

下午起来,查分网站还是查不到)
下午讲的二分和倍增,同上午,好快!好难!好崩溃!两个多小时又过了十几道题,剩下时间就慢慢写了。

记录:
T1:上课听懂了,过得很顺

T2:卡了半天49pts,最后发现题目的数据范围给小了,题目写2e5,实际上2e6,浪费将近1h(怒

T3:栈不能为空!!!要第一特判!!!气死了,又卡我0.5h

T4:挺有意思的一道题P4801 [CCO2015] 饥饿的狐狸 · 链接,洛谷评的难度在
[提高+/省选-]也就是蓝题,这也是我在洛谷上A掉的第一道蓝题嘿嘿。大概梳理一下思路,本题若不考虑水温,就是一道经典的贪心问题(其实加上也是贪心,不过复杂好多),因为没有顺序,我们先对温度进行sort排序。对于最小值,只需按顺序逐个计算即可,形式化地:

\[ans_{min} = | T_1-T_2 | + | T_2-T_3 | + ......+| T_{n-1}-T_n | \]

因为数列有序,所以可以化简为

\[ans_{min} = T_2-T_1 + T_3-T_2 + ......+T_n-T_{n-1} \]

化简得 \(ans_{min} = T_n -T_1\)
然后考虑加上水温,有三种情况:(水温为 \(w\) )
1.\(t[1]<=w and w<=t[n]\) 时,我们会发现喝不喝水不会影响最小值,加上的 w 最终都会被抵消,故答案为 \(ans_{min} = T_n -T_1\) .
2.\(w<t[1]\) 时,第一次喝水会影响结果,对结果多加上一个 \(T_1-w\) ,故答案为
\(ans_{min} = T_n -T_1+T_1-w = T_n - w\)
3.\(w>t[n]\) 时, 同上
答案加上 \(w-T_n\),即:
$ans_{min} = T_n -T_1+w-T_n = w-T_1 $
至此,对于 最小值 讨论结束
再来看 最大值
我们要得到最大美味值,第一反应是对应经典模型,应该先交错吃温度最大的和最小的饼干,其中如果能喝水可以让答案变大,就尽量喝水。
因为要先喝一口水注意左右端点谁先开始,可能得到两个答案,分两步计算,再取个 max即可。
例如这个,是从左开始的部分代码(模板),主要是注意细节问题

//	从左开始 (左右交替) 
	int lst,ansl = 0,ansr = 0,t1 = 1,t2 = n;
	/*lst储存上一个食物的温度,第一次要喝水,中间二者分别对应左右两端的答案,最后取max后二者是两个指针,方便左右交替 */
	ansl+=abs(w-t[t1]);
	lst = t[t1++]; // 从a[1]开始
	for(int i = 2;i<=n;i++)
	{
		if(i%2 == 0)//比较喝不水和喝水的价值,取max ↓
			ansl+=max(abs(lst-t[t2]),abs(w-t[t2])),lst = t[t2--]; 
		else
			ansl+=max(abs(lst-t[t1]),abs(w-t[t1])),lst = t[t1++];
	}

最后输出 $max(ansl,ansr) $即为最大值。
到这里,本题两问都已解决, 华丽结束 !!!
a
感觉挺有意思的

晚上

晚饭:兰州牛肉面+有椰奶茶
打了Atcoder(外国优质OJ)的 abc(高质量比赛)
但由于语言只有英文和日文 没有中文题面
只看懂了第一题,(也就是A题)A了,
记录,一百昏!!!

Day 2

 今天讲hash(哈希)和KMP  

上午

早饭:(由于高中部的放假了,食堂好多地方都关门了QAQ)
鸡肉卷+烧麦+米酒蛋花汤(没汤圆版)

早自习做了做昨天的题,加油

ps:今天换老师了
今天的老师虽然比昨天讲的慢,但讲的好模糊,表示没听懂……
(没太理解讲的到底是什么,概念好像理解了,但一看题还是不知道怎么用……

午饭:墨西哥什么饭(米做的)+啥来着(好像是喝的)

下午

下午讲了一会 \(KMP\) 自动机,彻底放弃(烦

学不会一点……

做其他题去了,做了点 \(hash 和 KMP\) 的模板就去做dp和模拟了

晚饭:麻辣烫+忘了不知名的西瓜汁

晚上做了点杂事,补了补之前没过的模拟题,各种水题,可恶啊被一个鸡兔同笼卡成 \(80pts\),死活调不对(大悲),最后无奈放弃,明天讲 \(dfs\) ,后天 \(bfs\) ,终于来点可以做的题了(希望是这样),期待ing。
关于字符串:

hash 和 KMP 先放一放,结训或者有时间再看,因为有前置知识哈希表没学过,所以现在很难学后面的。

打了个洛谷上的比赛,难度在提高组+左右(好像),做了30min,只打了 T1:20pts (暴力打的),(暴力超时记录)满分 400,希望能加 rated(做梦
(ps·2024.7.11:居然真的加分了)
好累
今天就先这样了,明天加油!

Day 3

今天讲DFS(深度优先搜索算法/回溯算法)

上午

早饭:饼+椰果奶茶(热热的,好喝!)

上午ZZWGY的杨老师,讲题目DFS的图论遍历方法,讲了如何剪枝,从爆搜一步步改为正解(挺难的,但貌似听懂了几道
总结 一下:(搜索的优化方法)

  1. 优化搜索顺序(如提前排序/倒置等,如小木棍P1120,预处理从大到小排序,省好多时间)
  2. 排除等效冗杂(如小木棍P1120,虽然我是卡这时限 \(260ms\) 过的…同等长度木棍只需判断一次即可)
  3. 可行性剪枝(如贪心优化)
  4. 最优性剪枝(如若搜索答案已经劣于现已知最优答案,果断回溯)
  5. 记忆化搜索(把答案记录下来,避免重复减少时间)

午饭:牛肉面+茉莉绿茶(纯茶,但好喝)

下午

又讲了一点搜索和拓展,没太听懂,是和位运算结合的,基本不怎么考,不管了。

晚饭:肉夹馍+关东煮+茉莉绿茶(纯茶,好喝)

下午打了点搜索的题,写了篇 题解 P10490

晚上写了几道模拟,顺手把上次没过的模拟调过了

Day4

今天讲BFS(广度优先搜索算法/宽度优先算法)

上午

早饭:饼+石榴汁

讲了双向搜索,\(deque队列\)
还讲了道搜索用 康托展开 优化,没一个人做出来,所以老师说那道题用 map<string,string> 也可以,我俩都不会%%%

午饭:蛋包饭(米)+可乐鸡肉+土豆咖喱+鸡米花(三掺)+茉莉绿茶

下午

先把上午的deque双向搜索调过了

几乎没讲课,只点了几句话,都在自己做题,这会在自学 map

晚饭:麻辣烫+茉莉绿茶(纯茶好喝)

战果map 概念懂了,看题还是不会,明天应该是讲图论,有空的话看看 (如果有时间的话)
做了三道搜索,写了点模拟

加油加油加油

Day 5

今天是学习图论的第一天……

上午

早餐:鸡肉卷+小米粥
一上来就讲稍微进阶一点的图论了 (对于我这个0图论基础的蒟蒻很不友好)

不会

没听懂

又看了看 洛谷kkksc03的《深入浅出》 和 oi-wiki 上写的非常好的解释,基础稍微懂一点了

午餐:红烧肉米饭+茉莉绿茶(纯茶好喝)

下午

接着讲图论,差分约束好像有点懂的意思,思路大概理解了

晚饭:鸡蛋卷烤肠(就是煎鸡蛋裹着的烤肠啦) + 黑米粥 + 酱香饼(不是太饿)

刷题ing,没了

Day 6

今天是学习图论的第二天……

上午

早餐:鸡肉卷+小米南瓜粥
一如既往地听不懂,就没听,自己去看图论基础了
午餐:红烧肉拌饭 + 茉莉绿茶

下午

学了 链式前向星 见最后笔记

学了SPFA(求图最短路的算法)

容我吐槽一下这个算法:

引用自 fstqwq 大佬

2018 年 7 月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路。//PS:即SPFA算法
然后呢?
100→60(pts)
Ag→Cu (ps:银→铜)
最终,他因此没能与理想的大学达成契约。
小 F 衷心祝愿大家不再重蹈覆辙。

出题人在NOI上卡了SPFA算法,会让SPFA超时,那一年好多选手因此挂分
(以为SPFA实质是贪心,针对这一方法出一些极端的大数据会被卡掉)
例如洛谷 P4779,就卡了 SPFA 算法
100→32pts

-SPFA已死-

模板见最后笔记

对于求图最短路的算法,还有一个算法——
叫做 dijkstra

【模板】见最后笔记

下午是杂题选讲,听懂了一点
晚饭:关东煮+米汤

晚安啦,明天IOI赛制提高组模拟赛加油!

Day 7

上午:

早餐:同昨天早


IOI欢乐赛

今天上午有IOI赛制的模拟赛
(时间:8:00-11:30,分值:6x100 = 600pts)
T1:开始太急导致没看懂题,还以为是字符串hash,直接跳到T2了

T2:还是不会,一眼字符串,转T3

T3:开始以为贪心,不会策略,转T1

T1:仔细看了一下,看懂了。交了一发,喜提0pts,(吐槽一下样例给的好水 输入1,输出1,赛后听老师说故意的。。。)又想了一下,列了几个,交,90pts,再调,交,100pts,看了眼表: 8:19 转T2

T2:看了半天才理解,暴力调到 10:06,80pts,有两个点T了(即超时TLE),时间给太多了,就这样了 ,转T3

T3:打了个爆搜,喜提0pts,突然想到组合数学,加上乘法原理,感觉很适合,演草纸上列了一些式子,挂惨了,没找出来规律,放弃,转T4 (T3思路是对的,详情见后 ‘补’ )

T4:感觉像搜索(实测类似BFS),没思路,然后想了个非正解贪心,交,60pts!!!(数据好水)

T5,6:一个动规(不会的),一个图论,T6图论差一点就做出来了(做出来能拿40左右)

总体来说,提高组难度能这样还行(吧) (毕竟我这么菜)

\[100 + 80 + 0 + 60 + 0 + 0 = 240 \]

(省集训队排名%%%) :蒟蒻大佬勿喷

# 姓名 总分数 A B C D E F
通过率(%) / / 31.62 21.05 0.80 7.03 0 0
18 Adorable_(化) 240 100 80 0 60 0 0

补:关于T3,考完之后发现乘法原理我写成加法了(改成加法能90左右),啊啊啊 (太菜了) (大悲)

午饭:牛肉面 (没牛肉) +椰奶(热)

下午:

讲了一下比赛题,发了奖(前十五才有QAQ),还有参与奖用随机数生成了6个(没随到QAQ)

晚饭:关东煮+烤冷面+黑米粥

下午补了补题,背了背板子,摆摆摆

Day8

今天学DP

上午:

早餐:照烧鸡腿饼+南瓜小米粥
写了道图论模板题
讲了DP,陈老师讲课好评! dp从最基础的原理讲起的,虽然不算慢,但至少听懂了,今天做了好多DP,

午餐:热干面+柠檬水

下午:

讲了dp的优化
懂了一部分
还好

好累,
晚饭:照烧鸡腿饼+绿豆汤+柠檬水
晚饭前had nosebleed了,(大悲

Day9

计数dp

上午

早饭:照烧鸡腿饼+南瓜小米粥

上午讲了数学的基础数论和计数原理:组合数,费马小定理,同余定理,欧几里得,加法原理,乘法原理等等

好难,在证明一个玩意的时候,我 脑子一抽 非常自信去黑板上 当着各个dalao面前 写了一堆证明过程,结果被老师推翻了(寄了好尴尬hhhh)终于理解了什么叫一次的主动换来一辈子的自卑(bushi)

然后讲了计数dp,感觉就三个字——
听不懂 (没太弄清dp和计数的关系)
下课又看了看,A了几道练习,感觉好多了

午饭:黑椒鸡肉拌饭

下午

接着讲题,没太听懂

晚饭:肉夹馍+绿豆汤

晚上写了一点区间dp和背包dp

Day10

树状dp

上午

非常炸裂一个事,

早上在宿舍刚醒来,迷迷糊糊看了眼表,瞬间清醒了。
已经起床1h了,我居然刚醒,吃饭时间已经过了,而且还有20min就上课了!!!
以最快速度穿衣服拿东西,刚准备跑出去想起来没时间吃饭了,就随手在柜子里抓了两包零食装进包里就冲到了教室。
觉至少有 800m 吧,上下楼共7层,到教室刚刚点完名,看眼表从醒来到教室居然才5min!!!
体测都没冲这么快)

早饭:无

上午讲了一点点树,然后讲了树形dp,听懂了一点

午饭:炸酱面+百香果凤梨果茶

下午

写了点树形dp,补了补前两天的背包和计数

面基大佬%%%

开心

下午大课间去见了 \(\color{9D3DCF}zhiyangfan\) 大佬

好激动好激动,大佬今年高考701,膜拜orz%%,(还有lcx也来了)
仨社恐 (bushi社交恐怖分子)见面,沉默的至少有3min,好紧张好紧张,后来 虽然还是好紧张 聊了很多,收获很大,还加了大佬微信(开心.jpg)

晚饭:照烧鸡腿饼+凤梨百香果茶

晚:写题

Day11

数位dp+状压dp(状态压缩dp)

上午

早餐:肉夹馍+黑米粥

数位dp好难,听不懂一点,难度全是{提高+——省选——NOI-}

下午加油,尽量理解
午餐:米饭+肉+葡萄汁

下午

讲了状压dp (我状压都不会)

基本班里都没听懂,全是蓝题紫题。。。

晚饭:饼夹菜(其实是肉)+ 黑米粥(去食堂晚了,5分钟速通晚饭)

Day12

树状树组

上午

早饭:饼+小米粥

上午开了树状数组,没听懂,课下自己整了点笔记,在网上找的解释看懂了(笔记见文章最后)

午饭:炸酱面+烤肠+葡萄汁


下午

生地中招出等级了,双A,开心

又整了笔记,上课还是没听懂

晚饭:饼夹菜(或者肉)+ 小米粥

晚上水了几道题

Day13

今天是NOI 的 Day1祝各位参赛的哥哥姐姐们取得好成绩!RP++!

今日内容:基础数论
话说集训过得好快,就剩两天了……

(暑假也好快,whk一点没动,烦)

上午

早餐:肉夹馍+黑米粥

讲了数论,素数定理,费马小定理,欧几里得(辗转相除)等等
难度还好,前面的基础听懂了,后面的拓展关于 \( phi\) 之类的没理解。

午餐:西红柿鸡蛋面+香肠+芭乐柠檬茶

下午

接着数论,等结训了有时间一定把笔记整整

晚餐:照烧鸡腿饼+芝士热狗肠+小米粥+葡萄汁 (买多了吃撑了鹅鹅)

晚上做题,写板子,模拟,明天IOI赛制欢乐赛加油!

done:更新了图论笔记

Day14

IOI赛制欢乐赛

上午

早饭:照烧鸡腿+黑米粥

比赛:8:00——11:30
(共3.5h,七道题,7x100 = 700pts)

IOI赛制欢乐赛

开始比赛:

先开T1,发现像贪心,打了一下,假了(大悲),60pts

考虑爆搜,33pts和68pts

优化,分数不变,仔细又看了一遍题,想到一个很扯的做法,直接一个ifelse判断奇偶输出答案(很容易证明这个是错的),10行交上去,82!!(因为这道题是输出YES or NO,考完发现有同学打随机数90pts)被这道题恶心到了,拿着82直接看T2。

T2一眼过去没太看懂性质,随便打了个贪心30pts,其他WA了,又看了看题,调了调,几个小样例都过了,交上去,WA了,65pts,改了又改,还是65,崩了,看T3,随便糊了个暴力,0了。由于不服气(感觉65pts会是大众分),又回来看T2,造了个大数据,错了,一个一个分析,hhh发现自己if,else连用没加大括号,类似这样

if(...)
	if(...)
else if(...)//从这里有歧义,程序直接接上了内层的if
	...
else if(...)
	...

(终究还是太菜了)
调回来之后直接A了,
再看T3,读完题有点晕,去洗了把脸清醒多了,想到了char转int储存再打上前缀和预处理好像可做,实现,A了,看眼时间才119min,还剩90min,已经82+100+100 = 282了,有点激动,看T4,打了暴力,0,优化,0,优化,0,再优化,0,换思路,0,爆搜,0,优化,0,再优化,0……
崩了,花了1h,T4:从0→0(悲

(赛后讲题T4正解是分组背包dp)

扫了扫 T5,6,7,
发现T5有个输出0的分,打了,喜提5分,感觉分数250还是太大众,又接着看题。

最后15min,T4依旧爆0,T5想到了组合数学+枚举好像可做,打了,(因为我不会线性的 \(C_n^m\) 组合数,导致超时)喜提5→20pts,完美结束。
最终得分:

\[82+100+100+0+20+0+0 = 302pts \]

整体还行,T4居然不给暴力分!!!(怒)

排名竟然还挺靠前。

午饭:同昨天(少了根肠)

下午:

赛后讲评,老师30min速通了5道题,后面俩没讲,好像 (我也没听,在看其他题) 太难了,下午写了写dp笔记,摆摆摆。。。

晚上下了好大好大的雨,有伞去吃饭也被淋湿了(悲)

晚饭:三个肉包+南瓜小米粥(不贵,好吃,好评)

晚上打了打洛谷月赛,感觉分数好大众%%%,膜拜AK大佬。

明天CSP-S全真模拟加油,集训好快, whk好烦,明天晚上还有考试

Day 15

NOIP提高级(CSP-S难度)模拟赛(OI赛制)

祝参加NOI的哥哥姐姐们加油!

上午

早餐:饼+粥

看了看板子(实测没什么用)

开始比赛,8:00-11:30(3.5h,共四题,总分=4×100=400pts)

看T1,一想到难度是提高组的(毕竟我还是个蒟蒻),就没想过要拿满,比赛前想的把四题的暴力打了够100pts就直接摆烂的。。。

不过看了T1后发现打个差分好像可以拿前40pts,但数组开不了太大会被后面的数据卡(后来测试只有20pts)

当时感觉40很高了 ,于是转向T2,一看题, 好诶,图论 不会图论,开摆,看T3

T3一眼数学题!关于 \(Σ\) 的,直接上超级大暴力,预计30pts,但我看不到分(确实是30pts)

开T4,此时才过了47min,T4是类似字符串的(至少我这么觉得),瞎糊了一个20pts的特殊情况,此时55min,看了看估的分:40+30+20 = 90pts,才开始一小时,好像很高。

想了想感觉就T1还有希望拿分,就当场立了个flag,拿下T1,就有150pts了,然后摆烂

自己造了一些数据,一直没过,最后发现抛开每一天,根据输入数据枚举好像可以直接上大模拟,时间复杂度为 \(O(3×10^5)\),可以直接过掉,理论可行,上实践,加上调试最后T1过大样例的时候是109min,时间还剩101min,非常充裕,于是决定 zuosi 去看T2。
重看T2,发现虽然不会图论,但我打了个非常离谱的假做法,本来就不会,想着随便糊一个万一拿分了呢 (竟然真的有分)

很炸裂的,我当时,发现,T3,可以,打表,于是,就写了个程序写打表,结果,答案对了,但是,测评机崩了,于是,0分了,但是我当时不知道啊啊啊啊!!!!OI赛制不出分啊啊啊,最后检查了检查格式就结束了。

预计:

\[100+0+30+20 = 150pts \]

实际:

\[100+10+0+20 = 130pts \]

NOIP模拟

啊啊啊啊T3挂了30pts,不过提高组难度这样还行吧,就当一个教训,让今年正式比赛上别失误吧。

午餐:忘了

下午

速通了题解。。

结训啦,加油!

回家,路上听歌睡觉(摆摆摆

怎么说呢,这次集训收获很多,15天也如一瞬,又要回归whk了,希望接下来8月份的学校集训能更进一步,有空了再回来写一篇总结。


utd:2024.7.23:把笔记压缩了,去除了长篇大论
utd:2024.8.5:重读,修改了格式问题和错别字

ps:膜拜大佬今年这个小破省出了两个金牌!!!%%%



笔记完整版链接(洛谷)

笔记完整版链接(博客)

最后更新时间(2024.8.5)

posted @ 2024-07-17 21:42  Adorable_hly  阅读(53)  评论(3编辑  收藏  举报