摘要: 容易看出是用质因数凑n 首先01个因数的情况可以特判,2个的情况就是ap1+bp2=n,b=n/p2(mod p1),这里的b是最小的特解,求出来看bp2 include include include using namespace std; const int N=200005,M=316000 阅读全文
posted @ 2019-06-11 19:35 lokiii 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 考虑当前合法的一个点集s,如果他合法,那么一定有一个完备匹配的点集包含这个点集,也就是两边都满足hall定理的话这两边拼起来的点集也满足要求 所以分别状压两边点集用hall定理转移判断当前点集是否合法,然后分别对两边点集的权值和排个序2point扫一下计算答案即可 阅读全文
posted @ 2019-06-11 15:03 lokiii 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 方案二选一,显然是最小割,朴素的想法就是一排人点一排边点,分别向st连流量1的边,然后人点向路径上的边点连流量inf的边跑最大流 但是路径可能很长,这样边数就爆了,所以考虑倍增,然后倍增后大区间向小区间连,这样路径只要连向log个区间就行了,然后跑最大流 输出方案是在残量网络上从s点沿着没满流的边b 阅读全文
posted @ 2019-06-11 09:37 lokiii 阅读(245) 评论(0) 推荐(0) 编辑