PKUWC2024 游记

Day 0

“空洞的”。

Day 1

早上先来每日签到。

那个人问我领队来不来,我说来,他就让我别签了。

去礼堂找到座位后,发现他们全都已经把营员证拿了,我又从礼堂尴尬出来去签到。

那个人又问我领队来不来,我直接索性不来,结果yly就在我身后。。

签完就回来听开营仪式,跟去年一模一样,无趣。

然后试机,发现签到题和去年一模一样,只是环境变成了 NOI Linux。结果,我在那里找了半天找到了终端,写个指令,结果写了个 g++ 1.cpp -o 1; ./1.exe,然后什么也弄不出来,把我吓个半死,结果发现 exe 是来搞笑的吧。。

然后很快就出来了,然后吃完饭就休息去了。

“不是所有学校都可以从前门看到后门。”

开始力!

我们先通过惊人的记忆力把题面给留下来(原谅我记不到题目名称了):

T1

给你一个长度为 n 的,只包含 L,R 的字符串 a

我们定义对于字符串 a 一次操作为:你可以选择一个正整数 i,满足 1i|a|,如果 ai=R,则操作完之后,字符串 a 就变成了 ai+1,ai+2,a|a| ,否则,字符串 a 就变成了 a1,a2,ai1

AliceBob 决定来玩一个游戏,Alice 先手,初始字符串为 a。他们轮流进行一次操作,当轮到某方无法进行操作时(即字符串为空时),则该方失败。

那么,假设二者都足够聪明。如果 Alice 有必胜策略,则输出 Alice,否则输出 Bob

本题为多组。

样例:

输入:

3
5
LRLLR
6
RLRLRL
1
L

输出:

Alice
Bob
Alice

数据范围:

  • 子任务一 n20,t50

  • 子任务二 n500

  • 子任务三 n5000

  • 子任务四 n106

满分 100,前三个测试点总分 78。(只记得这些了。)

T2

现有一个长度为 n1 的非负整数数组 a

定义 di,j,1ij<n 表示 mink=ijak。(就是 a[i,j] 上的最小值。)

然后,对于任意 1in,有 fi=j=1i1dj,i1+j=in1di,j

现在,你知道 n 和每个 fi 的值,让你还原 a,任意一个即可。

如果无法还原则输出 No

样例:

输入:

3
2 3 3

输出:

Yes
1 2

数据范围:

对于所有数据,满足 1n80,0fi108

  • 子任务一(11分) n5,满足特殊性质 A

  • 子任务二(15分) n8

  • 子任务三(24分?)n15

  • 子任务四 n20

  • 子任务五 n50,满足特殊性质 B

  • 子任务六,无特殊限制。

特殊性质 A:保证存在合法的解的情况下,ai20

特殊性质 B:保证存在合法的解的情况下,ai50

T3

给你一个长度为 2h1 的大根堆 a,保证其中元素互不相同。

我们定义对堆的一次操作为:

你可以选择一个 i 满足 1in,ai0

然后会进行如下过程:

  • ai=0

接着,如果 2×i2h1 则一直进行如下操作:

  • 如果 a2×i<a2×i+1,则将 a2×i+1ai 交换,并令 i=2×i+1

  • 否则,则将 a2×iai 交换,并令 i=2×i

然后,我们定义两个集合 s1,s2,初始为空。

接下来进行 q 次操作:

  • 1,x,y(y{1,2},1x2h1),即将 x 加入 sy 集合,保证现在 xsy

  • 2,x,y(y{1,2},1x2h1),即将 xsy 集合中删除,保证现在 xsy

  • 3,x,z(1x2h1,1z106)。求有多少个 S 满足,s1S(s2s1),以及对最初给定的堆进行若干次操作之后,满足以下几个条件:

  • A:对于任意 iSai0

  • B:在满足 A 的前提下,使得 i=12h1ai×i 最小。可以证明存在唯一性。

  • C:在满足 B 的前提下,ax=z

由于满足条件的 S 可能过多,所以输出对 109+7 取模。

样例:

输入:

2
3 2 1
11
1 1 2
1 2 2
1 3 2
3 1 3
3 1 2
3 1 1
2 1 2
1 1 1
3 1 3
3 1 2
3 1 1

输出:

4
2
1
2
1
1

数据范围

  • 子任务一(10分),h2,q50

  • 子任务二(10分),h5,q500

  • 子任务三(20分),h9,q5000,且在1和2操作中,y=1

  • 子任务四(20分),h9,q5000

  • 子任务五?

  • 子任务六?

对于全部数据,满足 ai106,h18,q105

自己都被这惊人的记忆力震惊了。

然后吧,T1乱搞了一个应该可以被卡到 nn 的做法,最开始T了,以为是真挂了,所以就没管了。

然后,去看T2,觉得可以打一个全排列和高斯消元先骗前面的26,结果发现高斯消元遇到自由元根本造不出来特殊解,于是浪费2.5h,只过了子任务一。

T3我是真服了,原题题面长的跟个什么一样,读了半天终于读懂,打了暴力就跑了,结果忘记看特殊性质。。

T3搞完回来之后,觉得T1可能会人均过,所以赶快回去看了一眼,发现是数组开小了,而不是他真T了。哈哈哈,原来学科营也有数据水的一天,

出来,仔细想了想,好像T1那个做法可以严格证明是 nlogn 的,结果发现他们全打的 O(n) 做法,被吊打了。

王博神比最后一题我多骗一个特殊性质,这简直跟去年一模一样,连多的分都一模一样。

感觉 Day1 大家都这么多分,还是得看 day2 的发挥。

Day 2

早上是讲座,有关语言种类和优缺点方面,感觉挺有意思,激发了我学习其他语言的欲望(

中午很早就出校了,然后就是吃饭睡觉,没啥好说。

下午,开始力!

我们再次留下题面:

T1:圆

给你一个拥有 n 个元素的可重集 S。最初,每个元素 a 都是一个一位小数。

然后,你可以对 S 进行如下操作之一,直到 |S|=1

  • 删除其中的一个数 x,并将其四舍五入之后重新放入 S

  • 删除其中的两个数 x,y,并将 x+y 重新放入 S

操作完毕后,得到的结果是 S 中剩余元素四舍五入的值。

求如何进行操作,使得得到的结果最大。

本题为多组输入。

样例:

输入:

2
2
4.4 5.4
6
0.4 0.3 7.3 4.3 5.3 0.3

输出:

10
19

数据范围

1n106n1060a10

T2:排序

给你 m 个数,第 i 个数为 di

对于一个数组 a0,1,n1, 我们可以进行一次 shell sort,即进行如下代码:(与考场上有一定差异,但是保证意思相同):

int t, swap_count;
void insert_sort(vector<int> &v) {
	int n = v.size();
	for (int i = 0; i < n; ++i) {
		for (int j = i + 1; j < n; ++j) {
			if(v[j] < v[j - 1]) {
				swap(v[j], v[j - 1]);
				swap_count++;
			}
		}
	}
}
void init() {
	for (int i = 0; i < t; ++i) {
		vector<int> v;
		for (int j = i; j < n; j += i) v.push_back(a[j]);
		insert_sort(v);
		for (int j = i, k = 0; j < n; j += i, ++k) a[j] = v[k];
	}
}
void shell_sort() {
	swap_count = 0;
	for (int i = 1; i <= m; ++i) {
		t = d[i];
		init();
	}
}

然后,现在给你一个正整数 n,要求你对所有 n 的排列均进行上述操作,让你求操作结束后,swap\_count 的最大值,和有多少个排列能够达到这个最大值。后者对 109+7 取模。

样例:

输入:

5 2
2 1

输出:

7 2

数据范围

1n301m10,对于任意 i,1i<m,有 di>di+1,且 dm=1

T3:栈

初始时,你有 n 个空栈。

接下来进行 q 次操作:

  • 1,l,r,x,y,将 [l,r] 这一段的栈中,向栈顶加入 xy

  • 2,l,r,z,将 [l,r] 这一段的栈中,从栈顶开始,一直弹 z 个元素,如果这个栈中元素不超过 z 个,那就直接弹空。

  • 3,x,y,z,求 x 这个栈中的从栈底开始的第 y 个元素到第 z 个元素的元素和,如果没有第 i 个元素,那么就假定这个元素为 0

数据范围

1n,q105

对不起,过去一天了,记忆力实在不太好。

T1一眼贪心,讨论一下 0.10.2 的构造即可。

T2先打全排列暴力,然后骗 m=2

T3也就是一个一个特殊性质拿,可惜有一个没拿到,不然就310+。

出来之后,直接去问神王博多少分,MD比我少骗了一个特殊性质,但是Day1那个特殊性质的分比Day2的多 4 分。艹。

其他几个人感觉考的不太好,有个初二的就比我低 20,感觉这把废大。

昨天GM让我复习概率期望,而我没认真复习,原因是我赌今天不考。哈哈哈,我赌对了,但是没什么用。

怎么办啊,这届初三清华营也考的跟个什么一样,废啦哈哈哈,继续努力吧。

posted @   Saltyfish6  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
Document
点击右上角即可分享
微信分享提示