Codeforce#181 div2 C,E--problem 300E,300C
2013-04-26 04:06
267 查看
E:很值得学习的方法,阶乘很大时结果不能存下,
用此方法统计质因数的个数来表示
又偷了别人的代码
C:暴力枚举,符合条件的用排列组合统计
用到取逆
用此方法统计质因数的个数来表示
又偷了别人的代码
#include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> #include <vector> using namespace std; #define ll long long #define MAX 10000005 int a[MAX],isp[MAX]; ll cnt[MAX]; int main () { int k; scanf("%d",&k); int tt,low=MAX,high=0; ll rr=0; for(int i=0;i<k;++i) { scanf("%d",&tt); a[tt]++; rr+=tt; low=min(low,tt); high=max(high,tt); } for(int i=1;i<MAX;++i) a[i]+=a[i-1]; ll ans=1; for(int i=2;i<MAX;++i) if(!isp[i]) { for(int j=i;j<MAX;j+=i) // 含有质数i的数都筛除 isp[j]=1; ll cnt=0; for(ll j=i ; j<MAX ; j*=i) for(ll x=j; x<MAX; x+=j) cnt+= k-a[x-1]; // 统计k个数的阶乘含质因数i多少个 ll left=0,right=rr; while(left<right) { ll mid=(left+right)/2; ll cnt2=0; for(ll j=i; j<=mid; j*=i) // j<MAX 错,这时很可能mid>MAX cnt2+= mid/j; // mid! 含i多少个 if(cnt2>=cnt) right=mid; else left=mid+1; } ans=max(ans,left); } cout<<ans<<endl; return 0; }
C:暴力枚举,符合条件的用排列组合统计
用到取逆
#include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> #include <vector> using namespace std; #define ll long long #define mod 1000000007 #define N 1000500 ll pow_mod(ll a,ll b) { ll ret=1; while(b) { if(b&1) ret*=a; b>>=1; a*=a; ret%=mod; a%=mod; } return ret; } ll a,b,n; ll m ,rev ; inline bool judge(ll x) { while(x) { if(x%10!=a && x%10!=b) return false; x/=10; } return true; } int main () { while(cin>>a>>b>>n) { m[0]=1;rev[0]=1; for(int i=1;i<=n;++i) { m[i]=m[i-1]*((ll)i)%mod; rev[i]=pow_mod(m[i],mod-2); } ll ans=0; for(int x=0;x<=n;++x) { int y=n-x; ll num=a*x+b*y; if(judge(num)) { ans+=m *rev[x]%mod*rev[n-x]; ans%=mod; } } cout<<ans<<endl; } return 0; }
相关文章推荐
- Codeforce Round #220 Div2
- Codeforces Round #142 (Div. 1), problem: (C) Triangles
- Codeforces Round #127 (Div. 1), problem: (C) Fragile Bridges 优先队列
- codeforce round 175 div2
- codeforce contest 713 #371 Div1 B
- Codeforces Round #181 (Div. 2)
- Codeforces Round #327 (Div. 1), problem: (A) Median Smoothing
- Codeforces Problemset 198E(#125 div.1 E)
- CodeForce#191 Div2
- codeforces Educational Codeforces Round 41 (Rated for Div. 2) for B problem
- Codeforces Round #170 (Div. 2) problem B
- CodeforcesRound#253(Div2) D Andrey and Problem
- Codeforces Round #FF (Div. 2) Problem C DZY Loves Sequences
- Codeforces Round #363 (Div. 2) Problem D - Fix a Tree(并查集 + 构造)
- Codeforces Round #181 (Div. 2) C 组和+乘法逆元
- codeforce Round #232 Div2 map + 质因子 +组合
- 【Educational Codeforces Round 38 (Rated for Div. 2)】 Problem A-D 题解
- ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) D. The Door Problem 2-SAT
- CodeForce Round 215 DIV2 C 使用了线段树 但是多此一举...
- CodeForce#190 Div1