垒骰子—题解

蓝桥2015年省赛A组题目题解 文章目录填空题方程整数解星系炸弹奇妙的数字格子中的输出九数组分数牌型种数手链样式编程题饮料换购垒骰子灾后重建 填空题 方程整数解 正确答案: 10 18 24 #include <cstdio> #include <cmath> using namespace std; int main() { int n; while(~scanf("%d",&n)) { int t = sqrt(n); int ok = 0; 阅读详情
垒骰子

赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。
经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!
我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。
假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。 atm想计算一下有多少种不同的可能的垒骰子方式。
两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。
由于方案数可能过多,请输出模 10^9 + 7 的结果。


不要小看了 atm 的骰子数量哦~


「输入格式」
第一行两个整数 n m
n表示骰子数目
接下来 m 行,每行两个整数 a b ,表示 a 和 b 不能紧贴在一起。


「输出格式」
一行一个数,表示答案模 10^9 + 7 的结果。


「样例输入」
2 1
1 2


「样例输出」
544


「数据范围」
对于 30% 的数据:n <= 5
对于 60% 的数据:n <= 100
对于 100% 的数据:0 < n <= 10^9, m <= 36


资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗  < 2000ms




请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。


所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。

注意:主类的名字必须是:Main,否则按无效代码处理。


解题思路:  DP问题,但是只能过部分数据。先搁置一下会。


import java.math.BigInteger;
import java.util.Scanner;




public class Main
{
	public static final int MOD = 1000000007;      
	public static int init[] = {-1, 4, 5, 6, 1, 2, 3};      // 骰子对面
	public static boolean conflict[][] = new boolean[7][7]; // 冲突
	
	public static void main(String[] args)
	{
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        for (int i = 0; i < m; i++)
        {
        	int a = sc.nextInt();
        	int b = sc.nextInt();
            conflict[a][b] = conflict[b][a] = true;
        }
        
        // dp[i][j] 代表,i个骰子且最顶面是j的情况种数   并且使用了滚动dp,否则会超空间        
        BigInteger dp[][] = new BigInteger[2][7];
        int e = 0;
        for (int i = 1; i < 7; i++) dp[e][i] = BigInteger.ONE;
        
        for (int i = 2 ; i <= n; i++)
        {
        	e = 1-e;
        	for (int j = 1; j < 7; j++)
        	{
        		dp[e][j] = BigInteger.ZERO;
        	   	for (int k = 1; k < 7; k++)
        	   	{
        	   		if (!conflict[init[j]][k])
        	   			dp[e][j] = dp[e][j].add(dp[1-e][k]).mod(new BigInteger(MOD+""));
        	   	}
        	}
        }
        
        BigInteger sum = BigInteger.ZERO;
        for (int i = 1; i < 7; i++)
        {
        	sum = sum.add(dp[e][i]).mod(new BigInteger(MOD+""));
        }
        System.out.println(sum.multiply(quickpow(4, n)).mod(new BigInteger(MOD+"")));
	}
	
	//快速幂
	static BigInteger quickpow(int n, int m)
	{
		BigInteger n1 = new BigInteger(n+"");
		
		BigInteger t = BigInteger.ONE;
		while(m > 0)
		{
			if ((m & 1) == 1) t = t.multiply(n1).mod(new BigInteger(MOD+""));
			n1 = n1.multiply(n1).mod(new BigInteger(MOD+""));
			m >>= 1;
		}
		return t;
	}
}


114.Android简单的动态切换app的图标,两种方式 - 默认的图标-->-- 需要切换的图标-->android:label="短信"-- 默认activity--> 阅读详情

相关推荐

别再用图片水印了!5种你可能不知道的文本隐写术实战

本文介绍了5种高效的文本隐写术,帮助创作者在不影响内容可读性的情况下嵌入版权信息。从零宽度字符到同形字替换,再到标点符号变形和行尾空格编码,这些技术为数字内容提供了轻量级版权保护方案,特别适用于社交媒体和电子合同等场景。

k8l9m0n的博客 225

蓝桥杯2015初赛 垒骰子 DP动规 题解

蓝桥杯2015初赛 垒骰子 DP动规+矩阵快速幂 题解 首先简化题目描述:共有nnn个骰子,骰子的组成规则遵循(1<->4)、(2<->5)、(3<->6),现在将骰子落成一个竖条,必须满足mmm个条件:条件要求每组的两个骰子标号互斥而不能面对面摞在一起。 容易想到枚举每个骰子某面向上的状态,通过mapmapmap打标记检查状态是否合法,不合法的回溯。 但是一看数据范围,枚举显然行不通,于是考虑动态规划。 走经典的DPDPDP分析法: 1.状态表示:首先确定发生转移的状态

HeartFireY的博客 689

新手避坑指南:HT7036计量芯片SPI读取电压的完整流程(从复位到校准)

本文详细介绍了HT7036计量芯片的SPI读取电压完整流程,从硬件准备到校准设置,重点解析了复位引脚处理、SPI通信配置、芯片初始化及数据处理等关键步骤。针对常见问题如晶振焊接、SPI时序错误等提供实用解决方案,帮助开发者高效完成电压测量与校准。

weixin_30070339的博客 326

第六届蓝桥杯C/C++省赛B组 试题I:垒骰子

a和b能连则为1,a和b不能连则为0(注意是相邻两层的顶面,不是衔接面,所以要转化,比如题给的1 2要改为1 5)。我们设六阶矩阵An,其中An的第a行第b列表示第一层顶面数字为a、第n层顶面数字为b的所有排列的情况。假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。我们只考虑顶面的情况,最后乘上4^n即可。

weixin_74774974的博客 640

Godot4 TileMap分层绘制全攻略:解决角色、树木遮挡混乱,打造正确视觉层级

本文详细介绍了Godot4 TileMap分层绘制技术,通过图层管理和Y-Sort功能解决2D游戏中角色与物体的遮挡问题。从基础图层设置到高级优化策略,帮助开发者打造符合自然视觉规律的场景层次,提升游戏沉浸感。特别针对TileMap和TileSet的使用提供了实用技巧和代码示例。

weixin_28717411的博客 510

【鸿蒙南向开发】OpenHarmony——分布式数据对象之功能实践

通过本文的学习可了解到分布式数据对象的主要接口、大致调用方法和功能实现等。结合对应内容,可以进一步对分布式数据对象同步机制做深度学习。下一步,(1) 着重理解同步组网的构建原理。(2) 着重理解同步组网内,监听change和status变化的实现。●如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:●关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。

HarmonyOS_666的博客 1089

蓝桥杯---垒骰子

请严格按要求输出,不要画蛇添足地打印类似:“请您输入 …注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意:主类的名字必须是:Main,否则按无效代码处理。峰值内存消耗(含虚拟机)

m0_74343360的博客 937

保姆级教程:用NX机电概念设计与RobotStudio实现ModbusTCP联合仿真(附完整代码)

本文提供了一份详细的NX机电概念设计与RobotStudio联合仿真实战教程。通过ModbusTCP协议构建数据桥梁,实现机械行为与机器人控制逻辑的双向实时同步。文章从环境搭建、信号配置、RAPID代码编写到联合调试,逐步拆解了实现数字孪生核心链路的关键步骤,并分享了常见问题排查方法,助力工程师在虚拟环境中提前验证产线协同。

sat99的博客 1098

【蓝桥杯】垒骰子

垒骰子 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。   经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!   我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。   假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。   atm想计算一下有多少种不同的可能的垒骰子方式。   两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。   由于方案数可能过多,请输

木又可可的博客 549

动量因子在A股市场的有效性分析:量化实证研究

验证动量因子在A股市场的有效性及时间周期性分析不同时间窗口(短期/中期/长期)对动量效应的影响量化交易成本、市场流动性对动量策略收益的侵蚀程度比较A股与成熟市场(如美股)动量效应的差异特征理论框架:行为金融学解释动量效应的产生机制技术实现:Python全流程代码实现动量因子计算与回测实证分析:统计检验、风险收益指标、敏感性分析应用拓展:结合市场微观结构的策略优化方案动量因子(Momentum Factor)

2501_92132293的博客 2471

EMB电子机械制动系统冗余备份方案介绍

随着汽车智能化技术的快速发展,自动驾驶技术的不断升级,对车辆制动系统的可靠性和安全性提出了更高要求。根据国际汽车安全法规(如UN R13-H)的最新修订,L3级及以上自动驾驶车辆必须配备具有冗余功能的制动系统,以确保在任何单一故障发生时仍能维持部分或全部制动能力。本文重点讨论最具前瞻性的EMB(电子机械制动)系统的冗余备份设计方案

m0_59012156的博客 853

蓝桥杯真题——垒骰子

[第6届-A-9]垒骰子赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。 atm想计算一下有多少种不同的可能的垒骰子方式。两种垒骰...

志远的博客 2610

【Basis】Lumerical licence center 无法连接的问题

端口,我们需要确认该端口是否被其他程序占用。这里我们将介绍如何处理这一问题。后,今天电脑更新后我无法打开。终结占用该端口的程序后再次打开。

u011699626的博客 313

题解:Luogu-P8624 [蓝桥杯 2015 省 AB] 垒骰子

转载于: https://www.cnblogs.com/Tiger-Rory/p/18993762。接下来对题目中给出的约束条件进行思考,不妨标记一个二维数组。数组,标记每个点数的对面点数。朝上时的方案数,则初步得出转移方程为。本题是一道动态规划结合矩阵加速的好题。此时已经接近正解了,但转移复杂度为。,无法接受,于是考虑使用矩阵加速。无关,所以考虑矩阵加速转移,记。点数朝上的方案数,这样就可以以。8306 【模板】字典树。读完题考虑设计状态,记。的讲课和分享的好题。

weixin_41521962的博客 43

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

洛谷题目:P8624 [蓝桥杯 2015 省 AB] 垒骰子 题解 (本题简)

洛谷题目:P8624 [蓝桥杯 2015 省 AB] 垒骰子 题解

C++老手 1170

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

[蓝桥杯2015初赛]垒骰子

问题 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。 假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。 atm想计算一下有多少种不同的可能的垒骰子方式。两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。 由于方案数可能过多,请输出模 ...

qq_43569892的博客 633

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

2015年第六届蓝桥杯省赛C/C++ A组 垒骰子题解(100分)

9. 垒骰子 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。 经过长期观察,atm发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。 假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。 atm想计算一下有多少种不同的可能的

——Light! 2933

蓝桥杯第四届第九题:垒骰子——矩阵解法

蓝桥杯第四届第九题:垒骰子——矩阵解法 题目 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。 假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。 atm想计算一下有多少种不同的可能的垒骰子方式。 两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。 由于方案数

jiahonghao2002的博客 831

蓝桥杯06

赌圣 atm 晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!1的对面是42的对面是53的对面是6。假设有m组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。atm 想计算一下有多少种不同的可能的垒骰子方式。两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。由于方案数可能过多,请输出模1097的结果。

angelrobert的博客 919

蓝桥省赛 暴力 递归 DP 矩阵乘法 快速幂

java

人言束负兑生|完美是完蛋的开始 110

垒骰子(矩阵快速幂)

垒骰子 题目描述 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。 假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。 atm想计算一下有多少种不同的可能的垒骰子方式。 两种垒...

百般回首曾经的相遇,留下的只是一缕残忆 510

第六届蓝桥杯省赛C++B组 垒骰子

垒骰子 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。 假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。 atm想计算一下有多少种不同的可能的垒骰子方式。 两种垒骰子方式...

ryo_218的博客 1468

2015第六届蓝桥杯JavaB组省赛真题题解

第一题:三角形面积 Problem Description 如图1所示。图中的所有小方格面积都是1。 那么,图中的三角形面积应该是多少呢? 请填写三角形的面积。不要填写任何多余内容或说明性文字。 答案 28 第二题:立方变自身 Problem Description 观察下面的现象,某个数字的立方,按位累加仍然等于自身。 1^3 = 1 8^3 = 512 5+1+2...

innocence的博客 551

垒骰子 ( 矩阵快速幂 )

赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。 假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。 atm想计算一下有多少种不同的可能的垒骰子方式。 两种垒骰子方式相...

永夜莫明的博客 909
上一篇: 高僧斗法—题解
下一篇: 方块游戏—题解
慕一春
博客等级 码龄12年 19粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值