【组合数学】 Codeforces Round #295 (Div. 1) C - Pluses everywhere
2015-03-03 10:16
267 查看
考虑每一位数作为各位,十位,百位。。对答案的贡献。。。
#include <iostream> #include <queue> #include <stack> #include <map> #include <set> #include <bitset> #include <cstdio> #include <algorithm> #include <cstring> #include <climits> #include <cstdlib> #include <cmath> #include <time.h> #define maxn 100005 #define maxm 100005 #define eps 1e-7 #define mod 1000000007 #define INF 0x3f3f3f3f #define PI (acos(-1.0)) #define lowbit(x) (x&(-x)) #define mp make_pair #define ls o<<1 #define rs o<<1 | 1 #define lson o<<1, L, mid #define rson o<<1 | 1, mid+1, R #define pii pair<int, int> #pragma comment(linker, "/STACK:16777216") typedef long long LL; typedef unsigned long long ULL; //typedef int LL; using namespace std; LL qpow(LL a, LL b){LL res=1,base=a;while(b){if(b%2)res=res*base;base=base*base;b/=2;}return res;} LL powmod(LL a, LL b){LL res=1,base=a;while(b){if(b%2)res=res*base%mod;base=base*base%mod;b/=2;}return res;} // head char s[maxn]; LL f[maxn]; LL g[maxn]; int n, m; void read() { scanf("%d%d", &n, &m); scanf("%s", s+1); f[0] = 1; for(int i = 1; i <= n; i++) f[i] = f[i-1] * i % mod; g = powmod(f , mod - 2); for(int i = n-1; i >= 0; i--) g[i] = g[i+1] * (i+1) % mod; } inline LL C(int k1, int k2) { if(k2 > k1) return 0; return f[k1] * g[k2] % mod * g[k1 - k2] % mod; } void work() { LL ans = 0, sum = 0, mul = 1; for(int i = n; i >= 1; i--) { LL t = s[i] - '0'; ans = (ans + (sum + mul * C(i-1, m) % mod) * t) % mod; sum = (sum + C(i-2, m-1) * mul) % mod; mul = mul * 10 % mod; } printf("%I64d\n", ans); } int main() { read(); work(); return 0; }
相关文章推荐
- Codeforces Beta Round #95 (Div. 2) C. The World is a Theatre 组合数学
- Codeforces Round #261 (Div. 2) 459B. Pashmak and Flowers(数学题,组合)
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession 组合数学
- Codeforces AIM Tech Round 4 (Div. 2) B Rectangles(组合数学)
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession 组合数学
- Codeforces Round #272 (Div. 2) B. Dreamoon and WiFi dp,组合数学
- Codeforces 869C ( Codeforces Round #439 (Div. 2) ) The Intriguing Obsession 组合数学
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession 组合数学
- Codeforces Round #439 (Div. 2) Problem C (Codeforces 869C) - 组合数学
- Codeforces Round #324 (Div. 2) Kolya and Tanya 组合数学
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession 组合数学
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession 组合数学
- Codeforces Round #295 (Div. 1) C. Pluses everywhere (组合数学+乘法逆元)
- Codeforces Beta Round #95 (Div. 2) C 组合数学
- Codeforces Round #419 (Div. 2) (Codeforces 815B) D. Karen and Test 组合数学
- Codeforces Round #340 (Div. 2)-B. Chocolate(组合数学的乘法计数)
- Codeforces Round #178 (Div. 2) C. Shaass and Lights 【组合数学】
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession 组合数学
- Codeforces Round #428 (Div. 2) ( 组合数学)
- Codeforces Round #404 (Div. 2) D. Anton and School - 2(组合数学)