2017年icpc西安网络赛 Maximum Flow (找规律+数位dp)

Posted 人活着就是为了Chelly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017年icpc西安网络赛 Maximum Flow (找规律+数位dp)相关的知识,希望对你有一定的参考价值。

题目

  https://nanti.jisuanke.com/t/17118

题意

  有n个点0,1,2...n-1,对于一个点对(i,j)满足i<j,那么连一条边,边权为i xor j,求0到n-1的最大流,结果取模,n<=1e18

分析

  可以写个最大流对数据找规律,但没找出来……

  然后只能取分析了,首先最大流等价于最小割

  明确一定,0->n-1这个要先割掉

  然后我们贪心,希望有一些点割掉与0相连的边,一些点割掉与n-1相连的边

  我们去观察每个点与0相连和与n-1相连的两条边权值,容易发现前面若干个左边那条边边权小,后面若干个右边那条边边权小

  我们可以把前半部分的取左边,后半部分取右边,具体的,分界线就是n-1二进制最高位1对应的数字

  然后问题就变成求他们的和,第一部分好求,主要第二部分求和

  转换一下问题,变成了求1 xor x + 2 xor x + 3 xor x + ... + n xor x

  这里可以数位dp解决,值得注意的是这里数位dp求的是满足数位的和,要先一遍数位dp求出对应状态的数字个数,然后再一遍数位dp求出贡献

以上是关于2017年icpc西安网络赛 Maximum Flow (找规律+数位dp)的主要内容,如果未能解决你的问题,请参考以下文章

2017 ACM-ICPC 亚洲区(西安赛区)网络赛C. Sum脑洞题

2017 ACM-ICPC 亚洲区(西安赛区)网络赛

2017 ACM-ICPC 亚洲区(西安赛区)网络赛: B. Coin 概率题

2017 ACM-ICPC 亚洲区(西安赛区)网络赛 G. Xor

2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B.Coin(基本概率+二项式展开)

2017 ACM-ICPC 亚洲区(西安赛区)网络赛 F.Trig Function(论文+组合数)