Codeforces Round #557 (Div. 1) 简要题解
Codeforces Round #557 (Div. 1) 简要题解
A. Hide and Seek
枚举起始位置\(a\),如果\(a\)未在序列中出现,则对答案有\(2\)或\(3\)的贡献。
若\(a\)在序列中出现,找到\(a\)第一次出现的位置\(x\),则说明在\(x\)位置之前需要把\(a\)移动到\(a+1\)或\(a-1\)处,只需要判断\(x\)后面有没有\(a+1\),有没有\(a-1\)。对每种数字记录第一次和最后一次出现位置即可。
code
B. Chladni Figure
旋转的角度\(k\)一定是\(n\)的约数。暴力枚举约数判断即可,复杂度\(O(n\sigma_0(n))\)。
code
C. Thanos Nim
结论是后手必胜当且仅当局面中的最小值个数超过一半,因为当最小值个数超过一半时操作必改变最小值,且操作后最小值个数不超过一半,而在最小值个数不超过一半时显然存在一种操作策略可以不改变最小值,而使操作后最小值个数超过一半。
code
D. Palindrome XOR
令\(n\)为读入的字符串长。显然\(b\)的长度就是\(n\),且\(a\)的长度小于\(n\)。
枚举\(a\)的长度\(m\),这样就一共有\(n+m\)个\(01\)变量待确定,这\(n+m\)个\(01\)变量之间存在一些相等或不等的关系,同时还有一些变量被强制赋值,可以新建两个点表示数值\(0/1\)后,把限制关系视作边(相等边权为\(0\),不等边权为\(1\))建出图,若图中不存在奇环则答案为\(2\)的连通块个数减\(1\)次方,否则答案为\(0\)。
复杂度\(O(n^2)\)。
code
E. Rainbow Coins
对每个\(i\)求出是否和\(i-1\)与\(i+1\)相同(\(2\)次询问),可以将序列分割成若干段,保证相邻两端颜色不同。接下来需要求每一段的颜色,假设第一段的颜色为\(0\),第二段的颜色为\(1\),然后就只需要知道第\(i\)段和第\(i-2\)段的颜色是否相同就行了(\(2\)次询问)。共计\(4\)次询问。
code
F. Zigzag Game
首先按照剧本我们应该选\(\text{Bob}\),因为\(\text{Bob}\)才是实际意义上的先手。
这是一个二分图博弈的模型,这个模型中关键的一点在于:求出二分图某个满足一定条件的匹配,接着先手就只要按照剧本沿匹配边走就能\(\text{win}\)了。
考虑这个匹配需要满足什么样的性质。不失一般性地,假设\(\text{Alice}\)选择了\(\text{Increasing}\)并选择了一个左侧节点。不是这种情况的话可以通过将边权取反到达相同的结果。
假设博弈过程中存在连续的三次操作\(w \to x \to y \to z\),其中\(w \to x\)和\(y \to z\)是\(\text{Bob}\)走的,也即,\((w,x),(y,z)\)两条边在匹配中。此时我们的要求是在\(\text{Alice}\)走到\(y\)后,\(\text{Bob}\)能够走到\(z\),也即\(val(x,y)>val(y,z)\),当然这里对\(val(x,y)\)也是有限制的,即\(val(x,y)>val(w,x)\)。
可知上述限制是对匹配的唯一限制。也就是说,匹配不合法当且仅当存在\((w,x)\in P,(y,z)\in P\)使得\(val(w,x)<val(x,y)<val(y,z)\)。
这是一个稳定婚配的模型,左侧的每个点对右侧点的偏好值与边权负相关,右侧的每个点对左侧点的偏好值与边权正相关。求出一组稳定婚配后按照剧本走就好了。
Codeforces Round #557 (Div. 1) 简要题解的更多相关文章
- Codeforces Round #545 (Div. 1) 简要题解
这里没有翻译 Codeforces Round #545 (Div. 1) T1 对于每行每列分别离散化,求出大于这个位置的数字的个数即可. # include <bits/stdc++.h&g ...
- Codeforces Round #483 (Div. 1) 简要题解
来自FallDream的博客,未经允许,请勿转载,谢谢. 为了证明一下我又来更新了,写一篇简要的题解吧. 这场比赛好像有点神奇,E题莫名是道原题,导致有很多选手直接过掉了(Claris 表演24s过题 ...
- Codeforces Round #498 (Div. 3) 简要题解
[比赛链接] https://codeforces.com/contest/1006 [题解] Problem A. Adjacent Replacements [算法] 将序列中的所有 ...
- Codeforces Round #535(div 3) 简要题解
Problem A. Two distinct points [题解] 显然 , 当l1不等于r2时 , (l1 , r2)是一组解 否则 , (l1 , l2)是一组合法的解 时间复杂度 : O(1 ...
- [题解][Codeforces]Codeforces Round #602 (Div. 1) 简要题解
orz djq_cpp lgm A 题意 给定一个分别含有 \(\frac n2\) 个左括号和右括号的括号序列 每次可以将序列的一个区间翻转 求一个不超过 \(n\) 次的操作方案,使得操作完之后的 ...
- Codeforces Round #398 (div.2)简要题解
这场cf时间特别好,周六下午,于是就打了打(谁叫我永远1800上不去div1) 比以前div2的题目更均衡了,没有太简单和太难的...好像B题难度高了很多,然后卡了很多人. 然后我最后做了四题,E题感 ...
- Codeforces Round #588 (Div. 1) 简要题解
1. 1229A Marcin and Training Camp 大意: 给定$n$个对$(a_i,b_i)$, 要求选出一个集合, 使得不存在一个元素好于集合中其他所有元素. 若$a_i$的二进制 ...
- Codeforces Round #576 (Div. 1) 简要题解 (CDEF)
1198 C Matching vs Independent Set 大意: 给定$3n$个点的无向图, 求构造$n$条边的匹配, 或$n$个点的独立集. 假设已经构造出$x$条边的匹配, 那么剩余$ ...
- # Codeforces Round #529(Div.3)个人题解
Codeforces Round #529(Div.3)个人题解 前言: 闲来无事补了前天的cf,想着最近刷题有点点怠惰,就直接一场cf一场cf的刷算了,以后的题解也都会以每场的形式写出来 A. Re ...
随机推荐
- uni-app常用 HTML5+APP 设置
1.锁定屏幕方向 锁定屏幕方向后屏幕只能按锁定的屏幕方向显示,关闭当前页面后仍然有效. 可再次调用此方法修改屏幕锁定方向或调用 unlockOrientation() 方法恢复到应用的默认值. 锁定屏 ...
- js,获取字符串中存在中文的个数
var RespMemo='1231231617440C01 心存正义 10'; //定义字符串 re = /[\u4E00-\u9FA5]/g; //测试中文字符的正则 var ...
- Python 基础总结篇
变量及数据类型 Numbers数字分为:int整型,long长整型,float浮点型,complex复数 String字符串由数字.字母.下划线组成的一串字符,用于表示文本的数据类型 bool布尔型: ...
- 一文搞定PGA_LGA_BGA
概述 什么是LGA.PGA.BGA类型的封装?众所周知,CPU封装的类型主要为三种:LGA,PGA,BGA,其中LGA封装是最常见的,intel处理器都是采用这种类型的封装,而PGA封装则是AMD常用 ...
- 《linux就该这么学》课堂笔记15 vsftpd文件传输、Samba/NFS文件共享
1.为了能够在如此复杂多样的设备之间(Windows.Linux.UNIX.Mac等不同的操作系统)解决问题解决文件传输问题,文件传输协议(FTP)应运而生. FTP服务器是按照FTP协议在互联网上提 ...
- Django 学习笔记之模型高级用法
目录 1 复杂的字段类型 1.1 整数类型的区别 1.2 自增类型的区别 1.3 时间类型 1.4 FilePathField 1.5 FileField 1.6 ImageField 2 关系字段 ...
- 解决tomcat出现乱码问题---韦大仙
1. 改这两个文件 URIEncoding="UTF-8" 2.然后重启idea
- vector中erase()与insert()用法
erase()用法:https://blog.csdn.net/duan19920101/article/details/50717748 注:erase是删除指定位置的元素,不能删除给定元素值.若要 ...
- NOIP 2004 联合权值
洛谷 P1351 联合权值 洛谷传送门 JDOJ 2886: [NOIP2014]联合权值 D1 T2 JDOJ传送门 Description 无向连通图 G有 n个点,n-1条边.点从 1到 n依次 ...
- Echarts在同一网页按顺序展示多图
Echarts Page:同一网页按顺序展示多图 from pyecharts import Page page = Page("") page.add(pie).add(frie ...