首页 > TAG信息列表 > 自训
第4期:自训 2022/1/12
1 P3367 【模板】并查集 参考资料 #include<bits/stdc++.h> using namespace std; const int M=2e5+10,N=1e4+10; int n,m,x,y,z; int pre[N]; int rk[N]; int find(int x){ if(pre[x]==x) return x; return pre[x]=find(pre[x]); } bool isSame(int x,int y){ return find(x寒假自训日志 01.16
寒假自训日志 01.16 牛客数学题单:数学 题号: 1010 1030 知识点: lcm lcm(a,b) = a * b / __gcd(a,b); 容斥原理与鸽巢原理 问:n以内有多少个数是a的倍数或是b的倍数 解:n / a + n / b - n / lcm(a , b); 问:n以内有多少个数是a的倍数或是b的倍数或是c的倍数或是d的倍数 解: in4.9cf自训9..
cf401D 状态压缩dp好题,每次把新加入集合的数字放在最后即可 /*它可以通过重新排列数字n,它没有任何前导零,x除以m后的余数等于0. 每次把新加的数放在最后 dp[i][j]表示状态i下模m=j的数量 dp[i|(1<<k)][j*10+a[k]]+=dp[i][j];*/#include<bits/stdc++.h>using namespace std;#defcf自训6
cf946D 背包+区间dp 好题 /*先预处理出每行消去i个1后可以的到的最小时间: 先求每行的前缀和,枚举左端点和右端点,消去的1 cost=tot-sum[r]+sum[l-1],区间长度=r-l+1 time[cost]=min(time[cost],len) 然后再进行行间处理: 就是n行删k个,转化为n组物品,然后总代价是k 分组Gym .102021 .German Collegiate Programming Contest (GCPC 18) (寒假gym自训第三场)
E .Expired License 题意:给定你两个最多带5位小数的double型a,b,让你用用一对素数x y表示他们的比值。 思路:我们把a和b都乘1e5,化简验证是否是素数即可。 但是要注意精度误差,我们可以给把数加一个1e-7之后再乘1e5. #include<bits/stdc++.h>#define ll long long#define rep(i,a,b)