Codeforces Round #580 (Div. 1) A-E
A
Tag:构造
将$a_i$看做一个无穷数列,$i > 2n$时$a_i = a_{i - 2n}$.设$sgn_i = \sum\limits_{j=i+1}^{i+n}a_i - \sum\limits_{j=i}^{i+n-1}a_i = a_{i+n} - a_i$,那么答案要满足:$\forall j \leq k , \sum\limits_{p=j}^k sgn_p \in [-1,1]$.且$\forall i , sgn_i \neq 0$.
上述条件等价于$i>1$时$sgn_i = -sgn_{i-1}$.因为$sgn_{n + 1} = sgn_1$,所以当$2 \mid n$的时候会出现$sgn_{n+1}=0$的矛盾,即无解;只有当$2 \not\mid n$的时候可以通过$sgn$构造一组合法解.
B
Tag:位运算、 最小环
当某种数位出现了至少$3$次时答案为$3$,否则考虑一个图,图上每一个点表示一个位置,将具有相同数位的位置之间连边,图上至多只有$60$条边.使用bfs/Floyd求最小环即可(一定注意不要用dfs树求最小环).
C
Tag:构造、交互
询问满足条件的曼哈顿距离为$2$的两个位置可以询问出这两个位置是否相同,那么我们可以通过类似并查集的方式,通过$n^2-2$次询问出所有横纵坐标之和为偶数的位置的值和所有横纵坐标之和为奇数的位置两两之间是否相同.
接下来考虑使用一次询问询问出某一个横纵坐标之和为奇数的位置的值.考虑最简单的:考虑找到两个曼哈顿距离为$4$的可询问位置$(x_1,y_1),(x_2,y_2)$,如果当$arr_{1,2}=0$和$arr_{1,2}=1$返回值不同(这个东西可以自己写一个模拟进行计算),就对$(x_1,y_1),(x_2,y_2)$进行询问,就可以得到$arr_{1,2}$的值,进一步得到所有的值.
所以仍然不知道为什么一定会存在这样的$(x_1,y_1),(x_2,y_2)$...
D
Tag:构造
首先,给定一棵$n$个点有根树和集合$A = \{a_1,a_2,...,a_{n-1}\}$,一定存在一个给边非负权值的方案使得其他$n-1$个点到达根的距离构成的集合$=A$.构造方式:设$solve(x , S)$表示在做$x$的子树,且子树内的点到子树根的距离为集合$S$.设它的所有儿子为$a_1,a_2,...,a_p$,它们的子树大小为$x_1,x_2,...,x_p$,则把集合$S$分成$S_1,S_2,...,S_p$满足$|S_i| = x_i$,对于每一个$i$令$w_{x,a_i} = \min\{S_i\}$,将所有$p \in S_i \rightarrow p - \min\{S_i\}$然后递归进入$solve(a_i , S_i)$即可.
那么考虑如果存在一个点$x$使得$x$的子树可以分为两个部分,满足这两个部分的$size+1$的乘积$\geq \lceil \frac{2n^2}{9} \rceil$,就可以直接构造出一组合法方案了.
那么考虑重心.因为重心满足任一儿子的子树大小$\leq \frac{n}{2}$,所以考虑每次将最小的两个子树合并,直到剩下两个子树,那么两个子树的大小定$\geq \lceil \frac{n - 1}{3} \rceil$.不难证明两棵子树的$size+1$的乘积$\geq \lceil \frac{2n^2}{9} \rceil$,这样就可以构造方案了.
E
Tag:期望、莫比乌斯反演
设$f_i(s) = [s_{1,i} = s_{n-i+1 , n}]$,则我们要求$E((\sum f_i(s))^2) = \sum\limits_i E(f_i^2(s)) + \sum\limits_{i \neq j} E(\sum f_i(s) f_j(s))$
第一部分:$E(f_i^2(s)) = E(f_i(s)) = k^{-i}$,原因是对于$\forall p \in [n-i+1,n]$需要满足$s_p = s_{p - (n-i)}$,每一个都有$\frac{1}{k}$的概率发生,而其余没有要求.
第二部分:$E(f_i(s)f_j(s)) = k^{\max\{n-i+n-j-n , \gcd(n-i,n-j) \}-n}$.证明如下:
先考虑当$f_i(s) = 1$,原串有一个长度为$n-i$的周期.那么原串有多个周期时,考虑将由于周期性必须相等的两个字符之间连边,如果形成了$t$个连通块,则这一部分的期望就是$k^{t-n}$.
当$n-i+n-j \leq n$的时候由众所周知的定理可以得到原串有一个$\gcd(n-i,n-j)$的周期,所以期望为$k^{\gcd(n-i,n-j)-n}$.
当$n-i+n-j > n$,设$i$$
对于$\equiv x \mod \gcd(n-i,n-j)$的所有数必须要满足这些点都连了一条边才能存在一条边连在一个连通块内.因为连了$j$条边,所以如果$(n-i) - j = (n-i) + (n-j) - n \geq \gcd(n-i,n-j)$,那么不可能存在这样的$x$,也就是有$(n-i)+(n-j)-n$个连通块;否则会有$\gcd(n-i,n-j) - ((n-i) + (n-j) - n)$条边连在同一个连通块内,也就是有$\gcd(n-i,n-j)$个连通块.
这样上述定理得证.注意到$E(f_i^2(s)) = k^{\max\{n-i+n-i-n , \gcd(n-i,n-i) \}-n}$,可变为计算$\sum\limits_{i,j \in [1,n-1],d = \gcd(i,j)}([i+j-n \geq d]k^{i+j-2n} + [i+j-n
$\sum\limits_{d \in [1,n-1]} \sum\limits_{p \in [1, \frac{n-1}{d}]} \mu(p) \sum\limits_{i,j \in [1,\frac{n-1}{dp}]}([i+j > \frac{n+d-1}{dp}]k^{dp(i+j)-2n}+[i+j \leq \frac{n+d-1}{dp}] k^{d-n})$
枚举$dp$,后缀和预处理$f_x = \sum\limits_{q=x}^{\frac{2n-2}{dp}} k^{dpq-2n} \sum\limits_{i,j \in [1,n-1] , i + j = q}1$,然后枚举$d$就可以$O(1)$算答案.复杂度$O(nlogn)$.
Codeforces Round #580 (Div. 1) A-E的更多相关文章
- Codeforces Round #580 (Div. 1)
Codeforces Round #580 (Div. 1) https://codeforces.com/contest/1205 A. Almost Equal 随便构造一下吧...太水了不说了, ...
- Codeforces Round #580 (Div. 2)
这次比上次多A了一道,但做得太慢,rating还是降了. Problem A Choose Two Numbers 题意:给出两个集合A,B,从A,B中分别选出元素a,b使得a+b既不属于集合A,又不 ...
- Codeforces Round #580 (Div. 2)D(思维,Floyd暴力最小环)
#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;const int maxn=300;cons ...
- Codeforces Round #580 (Div. 2)-D. Shortest Cycle(思维建图+dfs找最小环)
You are given nn integer numbers a1,a2,…,ana1,a2,…,an. Consider graph on nn nodes, in which nodes ii ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- Codeforces Round #368 (Div. 2)
直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- Codeforces Round #279 (Div. 2) ABCDE
Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems # Name A Team Olympiad standard input/outpu ...
随机推荐
- struct 声明类
#include <iostream> using namespace std; struct Student{ Student(char *name, int age, float sc ...
- javaweb利用filter拦截未授权请求
项目上有个小需求,要限制访问者的IP,屏蔽未授权的请求.该场景使用过滤器来做再合适不过了. SecurityFilter.java: public class SecurityFilter imple ...
- Lombok的使用详解与插件安装
JAVA面向对象编程中的封闭性和安全性.封闭性即对类中的域变量进行封闭操作,即用private来修饰他们,如此一来其他类则不能对该变量访问.这样我们就将这些变量封闭在了类内部,这样就提高了数据的安全性 ...
- 【Gamma】 Scrum Meeting 1
github 本此会议项目由PM召开,召开时间为5月26日晚上10点 召开时长20分钟 任务表格 姓名 当前任务 下阶段任务 袁勤 后端插入判断题 后端插入简答题 彭一夫 填空题答题前端 判断题答题前 ...
- 【转】Android原生PDF功能实现
1.背景 近期,公司希望实现安卓原生端的PDF功能,要求:高效.实用. 经过两天的调研.编码,实现了一个简单Demo,如上图所示.关于安卓原生端的PDF功能实现,技术点还是很多的,为了咱们安卓开发的同 ...
- 深度解析 ASP.NET MVC 5
ASP.NET MVC基础 IoC容器 ASP.NET MVC可扩展性 ASP.NET MVC Filters & Cache ASP.NET MVC AJAX ASP.NET MVC Cli ...
- JVM探究之 —— 垃圾回收(一)
垃圾收集(Garbage Collection,GC),大部分人都把这项技术当做Java语言的伴生产物.事实上,GC的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和 ...
- js---if判断的几种写法
在写JS中最常见的就是 if 判断,但是直接写 if(){}else{}; 太low ,下面是常见的几种js的if判断的写法: /** * js 判断的几种写法 */ var a = 10,b = 2 ...
- Linux远程连接ssh工具(FinalShell)xshell替代神器
对对对 FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本2.9.8,更新时间2019.6.19 wntr 2017-01-17 11:0 ...
- ByteUtil
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...