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 ...
随机推荐
- NodeJS代码组织与部署
使用NodeJS编写程序前,为了有个良好的开端,首先需要准备好代码的目录结构和部署方式,就如同修房子要先搭脚手架.本章将介绍与之相关的各种知识. 一.模块路径解析规则 我们已经知道,require函数 ...
- uni-app 实现分享生成图片
<template> <view> <view class="personal_li" @click="shareClick"&g ...
- MSSQL随机修改时间
GO DECLARE @BDate datetime, @EDate datetime SET @BDate = '20190801' --上限 SET @EDate = '20190819 23:5 ...
- 使用 Python 和 Flask 设计 RESTful API
近些年来 REST (REpresentational State Transfer) 已经变成了 web services 和 web APIs 的标配. 在本文中我将向你展示如何简单地使用 Pyt ...
- Java8中HashMap扩容算法小计
Java8的HashMap扩容过程主要就是集中在resize()方法中 final Node<K,V>[] resize() { // ...省略不重要的 } 其中,当HashMap扩容完 ...
- layui之table.render使用(含后台详细代码实现)
效果图如下: 前端实现代码如图(完整代码): <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...
- 分布式系统之CAP原理
参考链接:http://blog.csdn.net/wireless_com/article/details/79153643 CAP是什么? CAP理论,被戏称为[帽子理论].CAP理论由Eric ...
- SNPsnap | 筛选最佳匹配的SNP | 富集分析 | CP loci
一个矛盾: GWAS得到的SNP做富集分析的话,通常都会有强的偏向性. co-localization of GWAS signals to gene-dense and high linkage d ...
- Policy Gradient Algorithms
Policy Gradient Algorithms 2019-10-02 17:37:47 This blog is from: https://lilianweng.github.io/lil-l ...
- 【Node.js】Node.js的调试
目录结构: contents structure [-] 使用console.log() 使用Chrome DevTools 使用Visual Studio Code 与JavaScript运行在浏览 ...