首页 > 其他分享 >PKUWC 2024 Day 1

PKUWC 2024 Day 1

时间:2024-01-26 19:12:20浏览次数:33  
标签:le sum Alice Day 2024 PKUWC 2i sim 50

大致的题面如下:

T1

Alice 和 Bob 玩游戏。有一个长度为 \(N\) 的字符串 \(S\),由 LR 组成。Alice 先手,Bob 后手。他们可以:

  • 选择一个 \(i\)。
  • 如果 \(S_i\)=L,那么只保留 \(S_{1\sim i-1}\)。
  • 如果 \(S_i\)=R,那么只保留 \(S_{i+1,|S|}\)。

第一个遇到 \(S\) 空了的输掉。问谁会赢。\(T\) 组数据。

对于 \(\sim 50\%\),\(1\le \sum N\le 500\)。

对于 \(\sim 73\%\),\(1\le \sum N\le 5000\)。

对于 \(100\%\),\(1\le \sum N\le 10^6\)。

样例:

1
6
RLRLRL
Bob

T2

有一个长度为 \(N-1\) 的数组 \(f_{1\sim N-1}\)。定义 \(g_{i,j}=\min_{k=i}^{j}f_k\)。

定义 \(1\le i\le N,f'_i=\sum_{j=1}^{i-1}g_{j,i-1}+\sum_{j=i}^{n-1}g_{i,j}\)。给定 \(f'_{1\sim N}\),还原 \(f_{1\sim N-1}\)。(如果有输出 Yes 和构造,没有输出 No)。

对于 \(11\%\),\(N\le 5\),A 性质。

对于另外 \(15\%\),\(N\le 8\)。

对于另外 \(13\%\),\(N\le 14\)。

对于另外 \(\sim 20\%\),\(N\le 50\),B 性质。

对于另外 \(\sim 20\%\),\(N\le 50\)。

对于 \(100\%\),\(N\le 80\),\(f'_i\le 10^8\)。

A 性质:如果 Yes,存在一种满足 \(f_i\le 20\)。

B 性质:如果 Yes,存在一种满足 \(f_i\le 50\)。

样例:

3
2 3 3
Yes
1 2

T3

给定一个有 \(2^h-1\) 个节点的大根堆。用 \(a_1\dots a_{2^h-1}\neq 0\) 表示。

定义一个操作为:

  • 选择一个 \(i\),\(a_i\neq 0\)。把 \(a_i\) 替换成 \(0\)。
  • 重复以下操作直到 \(2i\ge 2^h\):
    • 如果 \(a_{2i+1}>a_{2i}\),交换 \(a_i\) 和 \(a_{2i+1}\),\(i\leftarrow 2i+1\)。
    • 否则,交换 \(a_i\) 和 \(a_{2i}\),\(i\leftarrow 2i\)。

相当于 shiftup 操作,维护大根堆性质。


初始集合 \(S_1=S_2=\emptyset\)。有 \(q\) 个操作:

  • 1 x y,\(S_y=S_y\cup x\),这时 \(x\notin S_y\)。
  • 2 x y,\(S_y=S_y-\{x\}\),这时 \(x\in S_y\)。
  • 3 x z,求有多少 \(S_1\subset S\subset S_1\cap S_2\),满足存在操作序列
    • 操作完 \(a_{x\in S}\neq 0\)。(1)
    • (1) 的前提下,\(\sum_{i=1}^{2^{h}-1}a_i\) 最小。(2) 保证仅有一个操作序列满足。
    • (2) 的前提下,\(a_x=z\)。

对于 3 x z 输出答案。

对于 \(10\%\),\(h\le 2,q\le 50\)。

对于 \(10\%\),\(h\le 4,q\le 500\)。

……(有点忘了)

对于 \(100\%\),\(h\le 18,q\le 5000(?)\)。

\(1\le a_i\le ?\)。

T1 Sol

\(N\le 5000\) 的暴力:

很容易发现如果 \(S_0\)=L 或 \(S_{N-1}\)=R 会 Alice 直接赢。如果不是这样的话,Alice 只能选连续的 LR 中的(否则 Bob 就赢了)。所以不连续的就忽略。因此得到一个算法,每次删掉单个的,然后判断。

大概这样:

string chg(string x){
	string res;
	for (int i=1; i<x.size(); i++){
		if (x[i]==x[i-1]){
			res.push_back(x[i]);
		}
	}
	return res;
}

while (s.size()){
	if (s[0]=='L' || s[s.size()-1]=='R'){
		cout<<"Alice"<<endl;
		return;
	}
	string t=chg(s);
	if (t==s){
		break;
	}
	s=t;
} 
cout<<"Bob"<<endl;

考虑连续的啥意思。

不就是每一次 chg,都是把连续快长度 \(-1\)。那不就是,如果有前缀 L 个数大于 R 个数最后就会缩成 L,如果有后缀 R 个数大于 L 个数最后就会缩成 R!这样 Alice 就赢了。

然后就做完了。代码很短。

大概这样:

int cur=0;
for (int i=0; i<n; i++){
	cur+=s[i]=='L'?1:-1;
	if (cur>0){
		cout<<"Alice"<<endl;
		return 0;
	}
}
cur=0;
for (int i=n-1; i>=0; i--){
	cur+=s[i]=='R'?1:-1;
	if (cur>0){
		cout<<"Alice"<<endl;
		return 0;
	}
}
cout<<"Bob"<<endl;

标签:le,sum,Alice,Day,2024,PKUWC,2i,sim,50
From: https://www.cnblogs.com/SFlyer/p/17990506

相关文章

  • 2024年1月Java项目开发指南14:关于post中的body和param以及java中的@RequestBody和@Req
    在HTTP请求中,POST方法通常用于向服务器发送数据,这些数据可以在请求的body中,也可以在URL的param中。不过,这两者的使用方式和适用场景是不同的。Body:在POST请求中,body主要用于包含要发送到服务器的数据。这些数据通常是表单数据、JSON数据或其他类型的数据。当你需要在请求体中发送......
  • SMU 2024 winter round1
    7-1最好的文档#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;i32main(){ios::sync_with_stdio(false),cin.tie(nullptr);cout<<"Goodcodeisitsownbestdocumentation.";return0;}7-2自动编程#includ......
  • 2024年可以提高工作效率的待办事项提醒软件
    对于上班族来说,追求升职加薪始终是一个不断努力的目标,而提升工作效率则成为必备的一环。在繁忙的工作生活中,一个可靠的待办事项提醒软件就成了事业成功的得力助手。那么2024年口碑很好的待办事项提醒软件是哪个呢?在2024年,备受好评的待办事项提醒软件中,敬业签成为许多上班族的选择......
  • MetaGPT day05 MetaGPT 爬虫工程师智能体
    Metagpt爬虫智能体需求1.用ActionNode重写订阅智能体,实现自然语言爬取解析网站内容2.根据尝试实现思路1,即使用llm提取出需要的信息而不是写爬虫代码。3.目前,订阅智能体是通过RunSubscription运行的,即RunSubscription这个action,不仅创建了订阅智能体代码,并启动了Subscriptio......
  • MetaGPT day04 MetaGPT ActionNode
    ActionNode说明文档导读#什么是ActionNode?1.ActionNode是Action的通用化抽象2.ActionNode是SOP的最小单元#ActionNode是Action的通用化抽象:反推可得知Action不够通用化?也就是说ActionNode的粒度比action更细? Action-粒度更细->ActionNode#Actio......
  • 20240126打卡——《构建之法》第5~8章
    第五章团队和流程5.2软件团队的模式主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队、特工团队、交响乐团模式、爵士乐模式、功能团队模式、官僚模式5.3开发流程①写了再改模式②瀑布模型(WaterfallModel)是一个项目开发架构,开发过程是通过设计一系列阶段顺序......
  • P10083 [GDKOI2024 提高组] 不休陀螺
    前置题目:石头剪刀布大赛很经典的问题,可以参考一个比这个简单容易想的*2500的做法。先想判定条件再考虑怎么计数。因为少写了一个case导致Au\(\to\)Ag,有点难评。不难想到记录\(c_i=b_i-a_i\)。我们考虑怎样才能无限下去:卡牌打完之后的费用变化是正的,不然会一直......
  • C语言---Day7
    16、指针---windows电脑在数据存储是采用小端对齐---指针就是内存地址,指针变量是用来存放内存地址的变量;每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址---在32位操作系统下,所有指针类型都是4个字节大小;  在64位......
  • THUWC2024 游记
    已经是老年选手了。Day0从成都坐车到重庆。到酒店就四点多了,打了个车去巴蜀,车上学弟问师傅有什么火锅店推荐,然后司机直接给我们送过去了(?)火速签到,火速试机,然后监考下班了(?)后来又说加班半个小时,登了下OJ写了个A+B就run了。见到了清华学长cxy哥哥!!!晚上把路上口胡的题写......
  • 2024-01-26 yarn证书源过期 ==》 yarn切换的镜像源为https,实际上该链接的证书已过期,应
    如,我给一个项目用yarn装依赖,这时候报错:yarninstallv1.22.21infoNolockfilefound.[1/4]Resolvingpackages...errorError:certificatehasexpiredatTLSSocket.onConnectSecure(node:_tls_wrap:1539:34)atTLSSocket.emit(node:events:513:28)atTLSSocket._fin......