Codeforces 595B Pasha and Phone 【数学计数】
来源:互联网 发布:网络嗅探器用哪个好 编辑:程序博客网 时间:2024/05/24 01:36
题意:现有一长度为n的空号码,给定整数k(满足n % k == 0)和具有n/k个元素的序列a[]和b[]。
定义一个电话号码是good:将长度n分成n/k块,要求第i块填a[i]的倍数且不能以b[i]开头,不够k位前面可以补0。
问你good 电话号码的个数%(1e9+7)。
思路:从前到后扫一遍就可以了。
偷懒用pow()函数,WA到死。。。
AC代码:
#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <algorithm>#include <queue>#include <stack>#include <map>#include <vector>#define INF 0x3f3f3f3f#define eps 1e-8#define MAXN (100000+10)#define MAXM (50000000)#define Ri(a) scanf("%d", &a)#define Rl(a) scanf("%lld", &a)#define Rf(a) scanf("%lf", &a)#define Rs(a) scanf("%s", a)#define Pi(a) printf("%d\n", (a))#define Pf(a) printf("%lf\n", (a))#define Pl(a) printf("%lld\n", (a))#define Ps(a) printf("%s\n", (a))#define W(a) while(a--)#define CLR(a, b) memset(a, (b), sizeof(a))#define MOD 1000000007#define LL long long#define lson o<<1, l, mid#define rson o<<1|1, mid+1, r#define ll o<<1#define rr o<<1|1using namespace std;LL f[10];void getfac(){ f[0] = 1; for(int i = 1; i <= 9; i++) f[i] = f[i-1] * 10;}LL a[MAXN], b[MAXN];int main(){ getfac(); int n, k; Ri(n); Ri(k); for(int i = 0; i < n / k; i++) Rl(a[i]); for(int i = 0; i < n / k; i++) Rl(b[i]); LL ans = 1; for(int i = 0; i < n / k; i++) { LL num1 = (f[k]-1) / a[i] + 1; LL num2 = (f[k-1]-1) / a[i] + 1; LL num3 = (f[k-1]*(b[i]+1)-1) / a[i] + 1 - (f[k-1]*b[i]-1) / a[i] - 1; if(b[i] == 0) ans *= num1-num2; else ans *= num1-num3; ans %= MOD; } Pl(ans); return 0;}
0 0
- Codeforces 595B Pasha and Phone 【数学计数】
- Codeforces 595 B. Pasha and Phone【数学】
- CodeForces 595B Pasha and Phone
- CodeForces 595B Pasha and Phone
- CodeForces - 595B Pasha and Phone (数学技巧)好题
- Codeforces 595 B. Pasha and Phone (容斥)
- Codeforces 557B Pasha and Tea 【数学】
- Codeforces Round #330 (Div. 2)B Pasha and Phone
- codeforces B. Pasha and String
- coderforce 595B. Pasha and Phone(容斥原理)
- Codeforces Round #330 (Div. 2) B. Pasha and Phone(容斥原理)
- Codeforces Round #330 (Div. 2) B. Pasha and Phone 容斥定理
- Codeforces Round#297 B. Pasha and String
- Codeforces#297 B Pasha and Strini
- codeforces-525B Pasha and String
- codeforces 525B Pasha and String
- codeforces B. Pasha and Tea二分
- codeforces 525b Pasha and String
- Swift 类的初始化和反初始化
- poj 2250 Compromise(LCS)
- 49.Oracle数据库SQL开发之 子查询——编写多行子查询
- 50.Oracle数据库SQL开发之 子查询——编写多列子查询
- AndroidStudio使用gradle打包并实现多渠道打包
- Codeforces 595B Pasha and Phone 【数学计数】
- Reverse Nodes in k-Group
- 51.Oracle数据库SQL开发之 子查询——编写关联子查询
- Android-在 GreenDao 数据库中添加默认值
- 求最大子序列问题
- 赫夫曼树-c语言实现
- (重点)为一个新用户在Oracle中创建新数据库步骤 2012-10-25 10:27:02
- 52.Oracle数据库SQL开发之 子查询——编写嵌套子查询
- 机智的偶数求和