您的位置:首页 > 理论基础 > 计算机网络

ACM-ICPC 2018 焦作赛区网络预赛 G. Give Candies

2018-09-15 17:14 441 查看

 

题目链接:传送门

 

 

题意:略

 

最后简化为2^(n-1)次

 

附上代码:

[code]#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<deque>
#include<map>
#include<queue>
using namespace std;
typedef long long ll;
const double PI = acos(-1.0);
const double eps = 1e-6;
const int INF = 1000000000;
const int MAXN = 1000100;
char ch[100005];
const long long mod = 1000000007;
long long Mode(long long a, long long b, long long mode)
{
long long sum = 1;
while (b) {
if (b & 1) {
sum = (sum * a) % mode;
b--;
}
b /= 2;
a = a * a % mode;
}
return sum;
}
int main(void) {
int t;
scanf("%d", &t);
while (t--) {
long long sum = 1;
scanf("%s", ch);
long long t = 2;
for (int i = strlen(ch)-1; i>=0; i--) {
if ((ch[i] - '0') != 0) {
sum *= Mode(t, ch[i] - '0', mod);
}
t = Mode(t, 10, mod);
sum %= mod;
}
sum *= Mode(2, mod - 2, mod);
sum = sum%mod;
printf("%lld\n", sum);
}
return 0;
}

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: