洛谷P8825

传智杯 #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;

代码区:

cs 复制代码
#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;
}

欢迎各位读者提出意见。

(菜菜洛谷奋斗小日记)

相关推荐
古城小栈13 小时前
为啥说:训练用BF16,推理用FP16
人工智能·算法·机器学习
KaMeidebaby13 小时前
卡梅德生物技术快报|蛋白 N 端测序在重组贻贝融合蛋白表征中的应用,解决原核表达序列偏移工艺难题
前端·人工智能·物联网·算法·百度
时间的拾荒人14 小时前
C语言字符函数与字符串函数完全指南
c语言·开发语言
Turbo正则14 小时前
群论在AI中的应用概述
人工智能·算法·抽象代数
ysa05103014 小时前
【并查集】判环
c++·笔记·算法
持力行14 小时前
C/C++ 中的 char*:它标识数组吗?为什么能用下标访问?
c语言·c++
Jerry14 小时前
KeetCode 44. 开发商购买土地
算法
Jerry15 小时前
KeetCode 58. 区间和
算法
Jerry16 小时前
LeetCode 209. 长度最小的子数组
算法
汉克老师16 小时前
GESP2026年6月认证C++六级( 第三部分编程题(2、满二叉树))精讲
c++·深度优先·树形dp·满二叉树·gesp六级·树形dfs