摘要: 最后翻为0和1本质相同,只考虑一种。显然每个硬币最多翻一次。考虑设xi,j表示i,j位置的硬币是否翻,那么很容易就可以列出异或方程组。变量和方程都有n2个,那么解是唯一的,就不用考虑怎样最小化了。然而暴力高斯消元肯定是不行的。 考虑将所有关于xi,k和xk,j的方程叠加,由于n是偶数,可以得到xi, 阅读全文
posted @ 2018-09-24 22:54 Gloid 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 如果只有一个人的话很容易想到最大流,正常桥连限流inf双向边,危桥连限流2双向边即可。现在有两个人,容易想到给两起点建超源两汇点建超汇,但这样没法保证两个人各自到达自己要去的目的地。于是再超源连一个人的起点和另一个人的终点跑一遍,两次都满流说明有解。证明脑(bu)补(hui)。 阅读全文
posted @ 2018-09-24 20:05 Gloid 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 容易发现的一点是如果确定了每一层有哪些点,树的形态就确定了。问题变为划分bfs序。 考虑怎样划分是合法的。同一层的点在bfs序中出现顺序与dfs序中相同。对于dfs序中相邻两点依次设为x和y,y至多在x的下一层。特殊的,根单独作为一层。 这些条件显然是必要的,考虑一种构造方案:对于某个点,如果其在d 阅读全文
posted @ 2018-09-24 17:29 Gloid 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 给a做一个前缀和,那么现在每次所查询的就是(sn-sk)/(bn+nd-(k+1)d)的最大值。这个式子可以看成是(bn+nd,sn)和((k+1)d,sk)所成直线的斜率。 脑补一条直线不断减小斜率,容易发现可能成为最大值的点一定在下凸壳上。并且凸壳上的点和该点间的斜率变化情况是一个凸函数。于是维 阅读全文
posted @ 2018-09-24 14:30 Gloid 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 注意到n很小,考虑枚举i。现在要求的是f(n,m)=Σφ(in) (i=1~m)。显然当n没有平方因子时,φ(in)=φ(i)·φ(n/gcd(i,n))·gcd(i,n)。利用φ*1=id又可得φ(i,n)=φ(i)·Σφ(n/d) (d|gcd(i,n))。改为枚举d就可以得到f(n,m)=Σφ 阅读全文
posted @ 2018-09-24 10:41 Gloid 阅读(149) 评论(0) 推荐(0) 编辑