博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Global Round 1
阅读量:6074 次
发布时间:2019-06-20

本文共 1183 字,大约阅读时间需要 3 分钟。

题解:

A:其实mod 2计算一下就行了

B:删掉最长的k-1段,sort

C:

x是a的二进制最高位,

考虑对于a!=2^(x+1)-1,一定可以找到一个c<a,使得c&a=0,并且c xor a=2^(x+1)-1,那么gcd就是2^(x+1)-1了。已经最大

对于a=2^(x+1)-1,gcd(a&b,a^b)=gcd(b,a-b)=gcd(a,b),所以,gcd最大是a的最大因数(除了自己),并且由于b<a,把b取到这个因数即可。

D:

发现,对于三个[x,x+1,x+2],其实贡献等价于:[x,x,x],[x+1,x+1,x+1],[x+2,x+2,x+2]

所以,不妨对于形如[x,x+1,x+2]的只保留小于等于2个即可

设f[i][t1][t2]表示,前i个,有t1个[i-1,i,i+1],t2个[i,i+1,i+2]的最大值

那么枚举一个合法的t3,就是[i+1,i+2,i+3]的个数,对于剩下的i+1,直接[i+1,i+1,i+1]尽量拼凑即可。(因为后面不会再用到i+1了)

转移到f[i+1][t2][t3]

(这样设的好处是,可以明确得到需要决策的剩下个数,并且对于i以后不会再考虑,所以[i,i,i]直接放就可以了)

E:

这种:c(i)'=c(i-1)+c(i+1)-c(i)的相邻两项关系,我们联想到,差分数组也是相邻两项的关系

尝试一下,可以得到:

就是发现其实就是差分数组的临项交换

那么,可以转化过去,等价于,s1=t1并且差分数组排序后相等。

F:

(比赛时根本就没看到这里。。。其实题目并不难)

就是给出dfs序,在dfs序在[l,r]的叶子中找到距离v最小的距离

两种思路:

1.发现,如果固定1为根,那么每个点距离1的dis放进线段树,就是一个区间求min操作

根不定?离线+换根!

2.根不定?在线+分类讨论子树关系,相应的加上到根的距离或者减去到根的距离(大概区间会分成三段)

G:

分类讨论的博弈论(具体细节看题解)

首先发现初始白点可以等价变成4个空点的事实。然后图上就都是空点了。

发现这是树上的“三子棋”,规模比较小,手玩之后从度数考虑下。

1.如果有一个点有大于等于4的度数,那么先手必胜

2.如果一个点度数为3,并且两个儿子度数都不小于2,那么必胜

  把这种情况也考虑到。

  进一步,如果有大于等于3个有3个度数的点,那么也是先手必胜。

3.所以剩下的只用考虑小于等于2个3度数的点了

  ①一个3度数:就是2的考虑方法。

  ②两个3度数:如果存在一个子图呈“骨头”形,并且这个“骨头”总点数是奇数,那么先手必胜

4.剩下的都是平局(什么**游戏,后手必不胜啊。。)

H:

咕咕咕

转载于:https://www.cnblogs.com/Miracevin/p/10355962.html

你可能感兴趣的文章
使用c:forEach 控制5个换行
查看>>
java web轻量级开发面试教程摘录,java web面试技巧汇总,如何准备Spring MVC方面的面试...
查看>>
根据调试工具看Vue源码之组件通信(一)
查看>>
Thrift RPC 系列教程(5)—— 接口设计篇:struct & enum设计
查看>>
斯坦福-随机图模型-week1.5
查看>>
灵活的运用Model类
查看>>
hadoop 之分布式安装
查看>>
使用ansible工具部署ceph
查看>>
linux系列博文---->深入理解linux启动运行原理(一)
查看>>
Android反编译(一) 之反编译JAVA源码
查看>>
结合当前公司发展情况,技术团队情况,设计一个适合的技术团队绩效考核机制...
查看>>
python-45: opener 的使用
查看>>
cad图纸转换完成的pdf格式模糊应该如何操作?
查看>>
Struts2与Struts1区别
查看>>
网站内容禁止复制解决办法
查看>>
Qt多线程
查看>>
我的友情链接
查看>>
Ubuntu12.04 编译android源代码及生成模拟器经历分享
查看>>
KVM网络桥接设置方法
查看>>
Puppet学习手册:Puppet Yum安装
查看>>