[传智杯 #3 初赛] 运气 - 洛谷
[传智杯 #3 初赛] 运气
题目背景
YYH Land(Yoauld,Youthful & Happy Land) 是位于炽蓝仙野的一片神奇的国度,那里的人们过着无拘无束的的快乐生活。
题目描述
哈兰·斯威提是 YYH Land 远近闻名的注铅骰子爱好者。有一天他碰到了这么一个问题:
你有一枚 6个面的骰子,分别写了 1,2,3,4,5,6 ,每一面朝上的概率是均等的。
现在哈兰想知道,如果他投掷 n次,并且将结果按顺序写在纸上成为一个数。(比如说如果哈兰扔了 3 次,分别是 3,2,5 ,那么他最后得到的数就是 325)他现在想知道这个数是 k 的倍数的可能情况有多少种,其中 k是一个特定的数。
由于这个方案数可能会很大,所以请你输出结果对 10^9+7 取模的结果。
输入格式
一行两个整数 n,k ,意义如题所示。
输出格式
一行一个整数,表示答案。
样例 #1
样例输入
2 11
样例输出
6
提示
**样例解释**
在投掷两次骰子总共 36 种可能中,只有 ("11","22","33","44","55","66") $ 是符合条件的。所以答案是 6。
**数据规模与约定**
对于 40\% 的数据,满足 n分别为 1,2,3,4;
对于另外 30\% 的数据,满足 1 <= k <= 3;
对于 100% 的数据,满足 1 <= n<= 10, 1 <= k<= 1000;
代码区:
#include<stdio.h>
int n,k;
long long ans=0;
void dfs(int stemp,long int sum){
if(stemp==n){ 达到投掷的次数
if(sum%k==0){
ans++;
}
return ;
}
int i;
for(int i=1;i<=6;i++){
dfs(stemp+1,sum*10+i);
}
}
int main(){
scanf("%d%d",&n,&k);
dfs(0,0);
printf("%lld",ans);
return 0;
}
欢迎各位读者提出意见。
(菜菜洛谷奋斗小日记)