CF623
AIM Tech Round (Div. 1)
<br >
这真是一套极好的题目啊.....虽然我不会做
<br >
代码戳这里
<br >
A.Graph and String
显然的,存在边的两个点,当且仅当两个字母分别为a和c的时候不满足
那么,我们把这道题目转换到补图上去求解
对于原图中度数为n-1的点,在补图中这个点一定是独立的,对于这样的点,他一定是b
其余的点,我们直接验证其所在联通块是否为二分图即可
验证的方法很简单,对于一个联通块,任意的把一个点设为a,那么与他直接相连的为相反的c,以此类推,最后验证即可
B.Array GCD
当然,不可能整个数列都被删除,而因为只能删除一段连续的区间,也就是说,a[1]和a[n]一定有其中之一被保留
那么,我们可以直接枚举a[1]和a[n]以及\(a[1] \pm 1\)和\(a[n] \pm 1\)的因子
不能注意的枚举,会TLE,我们要统一枚举好,去个重
最后剩下的问题,就是通过调整,使得整个数列包含一个共同的因子\(x\)了
我们考虑dp
f[i][0]表示到第i位,没有任何删除操作的花费;f[i][1]表示当前第i位处于删除序列中的花费;f[i][2]表示到第i位,删除操作已经结束的的花费
非常基础的dp,转移就很显然了
C.Electric Charges
这道题目的思路也不是很难想啊
直接考虑二分答案,假设,当前我们二分的值为\(x\)
很简单的,我们可以根据\(x\)轴的左右界和\(y\)轴的上下界来得到答案
暴枚\(x\)轴的左端点\(x_l\),显然,最优情况下,\(x\)轴的右界是横坐标\(x_t\)满足\(0\leq |x_t-x_l|\leq x\)且\(|x_t|\leq |x_l|\)的最右端点(可以直接二分来找到)
确定了\(x\)轴的左右端点,接下来的问题就是怎么确定\(y\)轴的上下端点了
显然,为了快速的求解上述的\(x\)轴右端点,我们对所有的坐标按照\(x\)排了序
那么,我们所选取的一段映射在\(x\)轴上的坐标一定是连续的一段
这样的话,我们只需要\(O(n)\)预处理关于排序后坐标的前后缀的\(y\)轴上的最大值和最小值就可以得到答案了
............然后....不要忘了全部在\(y\)轴上的情况,不要忘了为这样的情况的距离平方!~
D.Birthday
似乎是......玄学题啊?
我们先来看看怎么计算吧,我们用\(f[i]\)表示第i回合及第i回合前结束的概率,\(k[i]\)表示第i个人被捉住的回数,\(p[i]\)表示第i个人每回合中被捉的概率
可以倒着来算
\[f[i]=(1-q[1]^{k[1]})*(1-q[2]^{k[2]})*\cdots *(1-q[n]^{k[n]})(q[i]=1-p[i])\]
用意就是用1减去所有猜不中的概率
那么,我们要求的答案就是
\[ans=(f[1]-f[0])*1+(f[2]-f[1])*2+\cdots +(f[T]-f[T-1])*T(T\rightarrow \infty )\]
那么,我们可以通过调整T的大小,来满足题目要求的绝对误差
现在的问题,就是怎么使得\(f[i]\)尽量的大,也就是满足最有情况
这个也比较显然,通过观察\(f[i]\)的式子即可发现,我们每一回合都会对一个\(q[i]\),进行\(*(1-p[i])\)的操作
现在就是要经过这个操作以后,f[i]尽量变到最大
我们只需要找到最大的
\[\frac{1-q[i]*(1-p[i])}{1-q[i]}\]
所对应的第i项进行\(*(1-p[i])\)操作即为最优
最后还需要一个证明,那就是\(T\)究竟应该取多少.....我也不会啊,给个证明,自己看吧QAQ

不过,我的代码T只去了1e6,就过去了
然后还有一个long double的使用技巧(frank_c1太强辣)

E.Transforming Sequence
好像是道多项式啊?弃坑....
CF623的更多相关文章
随机推荐
- Linux学习-X Server 配置文件解析与设定
X server 的配置 文件都是预设放置在 /etc/X11 目录下,而相关的显示模块或上面提到的总总模块,则主要放置在/usr/lib64/xorg/modules . 比较重要的是字型文件与芯片 ...
- Linux学习-可唤醒停机期间的工作任务
什么是 anacron anacron 并不是用来取代 crontab 的,anacron 存在的目的就在于我们上头提到的,在处理非 24 小 时一直启动的 Linux 系统的 crontab 的执行 ...
- (手写)mybatis 核心配置文件和接口不在同一包下的解决方案
smart-sh-mybatis项目 app.xml文件中此处配置为: <!-- 从整合包里找,org.mybatis:mybatis-spring:1.2.4 --> <!-- s ...
- 哪里是Maven的中央存储库?
当你建立了一个Maven工程,Maven会检查你的pom.xml文件,确定要下载的依赖.首先,Maven将从您的本地库Maven查找,如果没有找到,Maven会从中央存储库-http://repo1. ...
- jquery版列表切换功能
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- LiveScript 操作符
The LiveScript Book The LiveScript Book 操作符 数字 标准的数学操作符: 1.1 + 2 # => 32.3 - 4 # => -13.6 ...
- [git 学习篇]工作区和暂存区
1 工作区,就是目录/User/my./learngit 2 版本库 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. liuzhipeng@exdroid43:~/pad/pad- ...
- 【bzoj2333】[SCOI2011]棘手的操作 可并堆+STL-set
UPD:复杂度是fake的...大家还是去写启发式合并吧. 题目描述 有N个节点,标号从1到N,这N个节点一开始相互不连通.第i个节点的初始权值为a[i],接下来有如下一些操作: U x y: 加一条 ...
- 【Luogu】P2146软件包管理器(树链剖分)
题目链接 上午跟rqy学了一道超难的概率题,准备颓一会,于是水了这么一道水题. 话说这题真的是模板啊.数据范围正好,描述特别贴近(都不给你绕弯子的),连图都给你画出来,就差题目描述加一句“树链剖分模板 ...
- [AtCoderContest015D]A or...or B Problem
[AtCoderContest015D]A or...or B Problem 试题描述 Nukes has an integer that can be represented as the bit ...