首页 > 其他分享 >【比赛记录】 Codeforces Round #706 Div.2

【比赛记录】 Codeforces Round #706 Div.2

时间:2023-03-01 13:56:24浏览次数:59  
标签:dist text 706 Codeforces sqrt 2d 2b Div.2 bmod

Problems

# Name Submit
A Split it! Submit
B Max and Mex Submit
C Diamond Miner Submit
D Let's Go Hiking Submit
E Garden of the Sun Submit
F BFS Trees Submit

题解:

A:Split it!

判断一下 \([1,k]+[n-k+1,n]\) 是否是回文串即可,注意特判 \(k=0\) 的情况。

B:Max and Mex

设去重后的不同的数的个数为 \(n\) 。

  • 若 \(\text{mex}(S)=\max(S)+1\) ,则每次操作都会新增加一种数,\(\text{ans}=n+k\) 。
  • 若 \(\text{mex}(S)<\max(S)\) ,仍有两种情况:
    • 若 \({\text{mex}(S)+\max(S)\over 2}\) 已经在集合中,\(\text{ans}=n\) 。
    • 若 \({\text{mex}(S)+\max(S)\over 2}\) 不在集合中,\(\text{ans}=n+1\) 。

C:Diamond Miner

简单数学推导可得 \(|x|\) 小的与 \(|y|\) 小的放在一起最优。
假设 \(a<c\) ,\(b<d\) 。
要证 \(\sqrt{a^2+d^2}+\sqrt{c^2+b^2} >\sqrt{a^2+b^2}+\sqrt{c^2+d^2}\) ,
只需证 \({\left(\sqrt{a^2+d^2}+\sqrt{c^2+b^2}\right)}^2- {\left(\sqrt{a^2+b^2}+\sqrt{c^2+d^2}\right)}^2>0\) 。
即:\(2\left(\sqrt{a^2c^2+a^2b^2+d^2c^2+d^2b^2}- \sqrt{a^2c^2+a^2d^2+b^2c^2+b^2d^2}\right)>0\)
只需证 \((a^2b^2+c^2d^2)-(a^2d^2+c^2b^2)>0\) 。
整理得 \((a^2b^2+c^2d^2)-(a^2d^2+c^2b^2)=(a^2-c^2)(b^2-d^2)>0\) ,得证。

D:Let's Go Hiking

容易发现一个人不能走回头路,于是答案与最长单调子序列有关。

  • 若有两个以上的最长单调子序列,则先手必败。
  • 若只有一个最长单调子序列,则先手必败。
  • 若恰有两个最长单调子序列:
    • 若没有公共点,则先手必败。
    • 若有公共点且为数值最小点 ( 山谷 ) ,则先手必败。
    • 若有公共点且为数值最大点 ( 山峰 ) ,且最长单调子序列长度为奇数,则先手没有必胜策略。
    • 若有公共点且为数值最大点 ( 山峰 ) ,且最长单调子序列长度为偶数,则先手必胜。

综上:当且仅当恰有两个最长单调子序列,它们有公共点且为数值最大点 ( 山峰 ) ,
​ 且最长单调子序列长度为偶数时,先手必胜,公共点为唯一的必胜点。

E:Garden of the Sun

点 \((x_1,y_1)\) 和点 \((x_2,y_2)\) 的切比雪夫距离为:\(\max\{|x_1-x_2|,|y_1-y_2|\}\) 。
关键性质:所有 X 两两之间的切比雪夫距离大于 \(1\)(即没有公共点)。
所以一定不会出现下面两种情况:

	.X			X.
	X.			.X

或者说以 X 为中心的九宫格四周都不会再出现另一个 X
容易想到一种略显不完美的构造方案:
设行数为 \(i\) ,则 \(i\bmod 3=1\) 的行全为 X ,其他按照原来的方案。
例如:

	XXXXXX
	...X..
	X....X
	XXXXXX
	..X..X

这样 \(i\bmod 3=2\) 的行与上一个 \(i\bmod 3=1\) 的行联通,
\(i\bmod 3=0\) 的行与下一个 \(i\bmod 3=1\) 的行联通。
只要在 \(i\bmod 3=2\) 的行和 \(i\bmod 3=0\) 的行之间找位置联通即可。
注意特判 \(n\bmod 3=0\) 的情况,因为最后一个 \(i\bmod 3=2\) 的行不存在下一个 \(i\bmod 3=1\) 的行。

F:BFS Trees

对于一个 \(\text{f}(x,y)\) ,考虑如何求解。
首先,若 \(x\) 到 \(y\) 的最短路不止一条,则 \(\text{f}(x,y)=0\) 。
因为若干条最短路的并集一定存在环,若删去环上任意的一条边 , 都会使环上一些点不满足 BFS 树的定义。
只有一条最短路时,\(x\) 到 \(y\) 的最短路径上的边一定在满足条件的生成树上。
考虑一条不在 \(x\) 到 \(y\) 最短路径上的边 \((i,j)\) 。
若它在某个满足条件的生成树上,且在生成树上 \(j\) 作为 \(i\) 的父亲
(此处父亲的定义是一条边两个端点中距 \(x\) 、\(y\) 较近的点 ),则有:

\[\text{dist}(x,i)=\text{dist}(x,j)+1\ \and \ \text{dist}(y,i)=\text{dist}(y,j)+1 \]

考虑按照到 \(x\) 点的距离进行分层,假设点 \(i\) 在第 \(k\) 层。
设 \(c_i\) 表示 \(i\) 连接到第 \(k-1\) 层有几种方案,则总方案数为:

\[\prod\limits_{i\neq x \and i\neq y} c_i \]

注:上文中关于 “父亲” 的定义能够保证父亲是两端点中的某一个,即不存在:

\[\begin{cases} \text{dist}(x,i)+1=\text{dist}(x,j) \\ \text{dist}(y,j)+1=\text{dist}(y,i) \end{cases} \]

假设上面的等式成立,则有:\(\text{dist}(x,i)+\text{dist}(y,i)=\text{dist}(x,j)+\text{dist}(y,j)\) ,
说明边 \((i,j)\) 在 \(x\) 到 \(y\) 的最短路径上,与 \((i,j)\) 是一条不在 \(x\) 到 \(y\) 最短路径上的边的前提矛盾。

标签:dist,text,706,Codeforces,sqrt,2d,2b,Div.2,bmod
From: https://www.cnblogs.com/loctopus/p/cf_706.html

相关文章

  • Educational Codeforces Round 143 (Rated for Div
    EducationalCodeforcesRound143(RatedforDiv.2)Problem-BIdealPoint给定n个线段区间\([l,r]\),我们定义\(f(x)\)为覆盖点\(x\)的线段数,我们每次操作可以删......
  • Codeforces Round #254 (Div. 1) C - DZY Loves Colors 线段树|lazytag维护区间加
    开一个变量维护同一个区间内颜色是否相同,而且显然要用lazytag了递归到颜色相同的区间时就可以直接打标记然后对于标记,维护的就是常规区间加的部分(最开始没写lazy,wa6,没明......
  • Codeforces Round #854 by cybercats (Div. 1 + Div. 2) A-B题解
    比赛链接A可以发现,每次出去的顺序一定是按照\(n->1\)的顺序。因为新加入的东西只会放在最前面。相应的,如果其已在序列中,则这个操作不会对\(1~n\)的信息产生影响。......
  • Educational Codeforces Round 143 (Rated for Div. 2)(A,C,D)
    EducationalCodeforcesRound143(RatedforDiv.2)(A,C,D)好久没有写题了,这次\(vp\)竟然连\(vs\)都不会用了,O(∩_∩)OAA这个也是差一点了,还有一个情况我的解法是没有......
  • Educational Codeforces Round 26
    EducationalCodeforcesRound26https://codeforces.com/contest/837E公式推导看明白了,但是因子求解部分的代码还不是很懂,所以还没有补A.TextVolume#include<bits/......
  • Codeforces Round #854 by cybercats (Div. 1+2) 1799 A~G 题解
    点我看题A.RecentActions注意到只有编号大于n的博客会被更新,所以每当有一个之前没被更新的过的博客被更新时,当前列表中最下面的就会被挤掉。如果这次更新的博客之前已......
  • Educational Codeforces Round 112 (Rated for Div
    EducationalCodeforcesRound112(RatedforDiv.2)CodeForces-1555DSayNotoPalindromes如果一个字符串中不包含长度2以上的回文子串,我们就说这个字符串是漂亮......
  • Codeforces Round #776 (Div
    CodeforcesRound#776(Div.3)CodeForces-1650DTwistthePermutation给定你数组a:123...n,一共有n次操作,每次操作可以把\(a_i\)移到最左边,然后对\(i+1\)位以......
  • CodeForces-483D Interesting Array 线段树拆位
    让你构造一个数列,满足m种限制条件,每种限制条件是l,r,x,要求构造的序列区间[l,r] 与运算的值结果为x。注意到如果某一位上&运算的结果为1的话,该区间内所有元素都要是1先......
  • Codeforces Beta Round #19 D. Points 线段树+set
    给你一个笛卡尔坐标系,现在要支持三种操作,第一种操作是添加一个点(x,y),第二种操作是删除一个点(x,y),第三种操作是查询严格在点(x,y)右上角的点中,横坐标最小的点,如果有多......