————数学
mengbi_er
一个蒟蒻JLoier
展开
-
bzoj2818: Gcd
求一遍欧拉函数前缀和,直接就可以O(n)解决。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;bool check[10000005];int prime[3000005],fai[10000005],tot;long long s[10000005];in原创 2017-07-12 19:08:58 · 233 阅读 · 0 评论 -
bzoj2257: [Jsoi2009]瓶子和燃料
由裴蜀定理,最后结果为所有数最大公因数,所以预处理公因数然后看最大的次数>=k的数。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch原创 2017-09-22 08:43:35 · 281 阅读 · 0 评论 -
AIM Tech Round 4 (Div. 2) B. Rectangles
题目大意求选出在同一行或同一列颜色相同的格子,共有多少种选法。题解泥萌为什么都2^n什么的啊,我只会用组合数QAQ。 杨辉三角预处理组合数,设b[i]为第i行1的个数,则: ans+=∑i=1n∑j=1b[i]Cjb[i] ans+=\sum_{i=1}^n\sum_{j=1}^{b[i]} C_{b[i]}^j 列同理,注意去掉块数为1的。#include<iostream>#inclu原创 2017-08-25 08:17:55 · 416 阅读 · 0 评论 -
bzoj3527: [Zjoi2014]力
只想贴个模板QAQ。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch>'9')ch=getchar(原创 2017-09-11 08:48:51 · 177 阅读 · 0 评论 -
【模板】FFT
不是我写的。作者见这里:传送门#include <cmath>#include <queue>#include <cstdio>#include <iomanip>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>#define N 400000#define ll long lon原创 2017-09-18 10:48:54 · 423 阅读 · 0 评论 -
bzoj3944: Sum
挖坑不填。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define ll long longusing namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch>'9')ch=getchar(原创 2017-09-08 15:02:44 · 220 阅读 · 0 评论 -
bzoj2186: [Sdoi2008]沙拉公主的困惑
显然答案等于ϕ(m!)∗(n!/m!) \phi(m!)*(n!/m!) n!很容易求。 ϕ(x)=x∗p1−1p1∗p2−1p2∗... \phi(x)=x*\frac{p_1-1}{p_1}*\frac{p_2-1}{p_2}*... 所以ϕ(m!)m!=p1−1p1∗p2−1p2∗...\frac{\phi(m!)}{m!}=\frac{p_1-1}{p_1}*\frac{p_2-1}原创 2017-09-14 15:33:30 · 208 阅读 · 0 评论 -
bzoj4517: [Sdoi2016]排列计数
f[n]=(f[n-1]*f[n-2])(i-1); ans=c(n,m)*f[n-m].#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'原创 2017-09-03 19:20:21 · 197 阅读 · 0 评论 -
bzoj2632: [neerc2011]Gcd guessing game
转学长博客。 传送门#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define N 10010 using namespace std; int n; int p[N],cnt; bool he[N]; void getp() { int i,转载 2017-07-26 09:50:08 · 308 阅读 · 0 评论 -
Codeforces Round #425 (Div. 2)A. Sasha and Sticks
判断n/k奇偶性。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch>'9') ch=getchar(); while(ch>原创 2017-07-25 00:54:00 · 350 阅读 · 0 评论 -
bzoj4706: B君的多边形
递推式: f[n]=(f[n−1]∗(6n−3)−f[n−2]∗(n−2))/(n+1) f[n]=(f[n-1]*(6n-3)-f[n-2]*(n-2))/(n+1) 预处理逆元即可。#include<iostream>using namespace std;int mod=1000000007;long long f[1000005],inv[1000005];int main()原创 2017-07-24 16:57:06 · 674 阅读 · 0 评论 -
Codeforces Round #426 (Div. 2) C. The Meaningless Game
题目大意两个人进行若干轮游戏,初始得分1,每轮一个人乘k,一个人乘k^2,问最终得分是否能为a和b.题解听说正解是二分,然而我o(n*素数个数(sqrt3(1e9) ))水过。 预处理sqrt3(1e9) 素数,算出每个素数对每个数的幂次,判断二元一次方程组是否有正整数解,最后看剩下值都大于sqrt(1e9)则no,否则两数有乘方关系就yes,否则no.#include<iostream>#in原创 2017-07-31 02:03:10 · 307 阅读 · 0 评论 -
bzoj2190: [SDOI2008]仪仗队
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int tot,prime[20005],fai[40005];bool check[40005];int main(){ int n; scanf("%d",&n); unsigne原创 2017-07-14 20:33:03 · 234 阅读 · 0 评论 -
Codeforces Round #420 (Div. 2) B. Okabe and Banana Trees
题目大意给出一次函数y=-x/m+b,它与x轴y轴围成平面中,每个点(x,y)贡献(x+y),在这个平面中画一个矩形,所围成点的最大价值和是多少。题解分别计算纵坐标减1后在范围外的点和新增加的点。(要用long long,比赛时被max函数坑wa了2发)。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>原创 2017-06-26 13:04:01 · 399 阅读 · 0 评论 -
bzoj1441: Min
a1*x1+a2*x2+…+an*xn=s,s的最小值为gcd(a1,a2,…,an).#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int main(){ int n; cin>>n; int an原创 2017-06-13 21:40:30 · 289 阅读 · 0 评论 -
Codeforces Round #422 (Div. 2) A. I'm bored with life
题目大意给出两个数,计算阶乘的gcd。题解阶乘gcd其实就是较小数的阶乘。 复杂度o(min(a,b)).#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; whil原创 2017-07-03 21:54:33 · 187 阅读 · 0 评论 -
bzoj1008: [HNOI2008]越狱
首先考虑由n-1转移到n,然后就会发现这是一道大水题,答案是m^n-(m-1)^(n-1)*m。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'原创 2017-10-14 09:20:48 · 224 阅读 · 0 评论