
容斥
新笑雨
这个作者很懒,什么都没留下…
展开
-
codeforces 585E
luogu链接解法考虑枚举gcd==g,计算每个gcd的贡献:记c[g]表示数列中为g的倍数的数有多少个,然后考虑一个g的贡献就是(n−c[g])∗(2c[g]−1)(n-c[g])*(2^{c[g]}-1)(n−c[g])∗(2c[g]−1),前一个计算的是x,后一个计算的是{S}。但是这样是有计算多余的:举个例子:当g=6g=6g=6的时候,a数列中有2,6,那么会把S={6},x=2S...原创 2020-03-26 20:47:00 · 295 阅读 · 0 评论 -
一道容斥练习题
首先这个题可以记忆化搜索,不过直接记忆化复杂度是不能满分的,需要加可行性剪枝:就是当前的状态肯定无解时,就要直接返回。#include<bits/stdc++.h>using namespace std;const int maxn=55,lim=(1<<21)-1;inline int read(){ char c=getchar();int t=0...原创 2019-12-20 21:12:59 · 147 阅读 · 0 评论