小A与小姐姐给气球涂色
时间限制:1 sec 内存限制:128 MB
提交:2 正确:1

题目描述
小A与小姐姐闲的无聊,它们路过一家商店,看见里面有很多无色的气球,于是他们突然有一个想法,自己买气球,把气球涂成不同的颜色,然后送给商店旁边小学里小朋友。他们买了n只气球,m中涂料,他们把气球排成一排,他们送给小朋友的气球的顺序也是排列的顺序。初始时,气球的都是无色的,现在他们想用m种涂料给气球涂色,他们不想送给相邻小朋友的气球的颜色相同,即排列的气球相邻的颜色相同则视为送给相邻的小朋友的气球颜色相同,如果相邻的气球的颜色相同,拥有这2个气球的小朋友会不开心。小姐姐希望小A求出使小朋友开心的涂色方案有多少种(即相邻的两个气球颜色不相同的涂色方案有多少种)。

输出答案对1000000007取余。

输入
输入两个整数n(1 <= n <= 1012),m(1 <= m <= 108)。

输出
输出一行表示答案。

样例输入

2 2

样例输出

2

思路:假设有n个气球,m种颜色,那么也只是在 n-1个气球,m种颜色上多了以个其球罢了,然后最后面的气球上的色不能和它前面一个相同,所以它就有C(1, m -1);种上色情况,因为是相互独立,所以就的递推公式

dp[i][j] = dp[i - 1][j] * dp[1][m - 1];

所以可以解出来

题解:

#include <iostream>using namespace std;
typedef long long ll;
const int mod = 1e9 + 7;
int f2;
long long ksm(ll m, ll n)
{long long res = 1;while (n){if (n&1) res = res * m % mod;m = m * m % mod;n >>= 1; } return res;
}int main()
{ll n, m;while(cin >> n >> m){n %= mod;m %= mod;if (m == 1){if (n == 1)cout << 1 << endl;else cout << 0 << endl;}else{cout << m * ksm(m - 1, n - 1) % mod << endl;}
}return 0;
}

小A与小姐姐给气球涂色 题目描述 小A与小姐姐闲的无聊,它们路过一家商店,看见里面有很多无色的气球,于是他们突然有一相关推荐

  1. 题目描述:设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?

    题目描述:设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛? 输入:输入一个整数N.(1<= N <=50) 输出:第N年时母牛的数量 样例输入:5 样例输出: ...

  2. P1283 平板涂色

    P1283 平板涂色 题目描述 CE数码公司开发了一种名为自动涂色机(APM)的产品.它能用预定的颜色给一块由不同尺寸且互不覆盖的矩形构成的平板涂色. 为了涂色,APM需要使用一组刷子.每个刷子涂一种 ...

  3. 【算法•日更•第三十期】区间动态规划:洛谷P4170 [CQOI2007]涂色题解

    废话不多说,直接上题:  P4170 [CQOI2007]涂色 题目描述 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符 ...

  4. 区间动态规划考试反思总结——颜色联通块 分离与合体 括号涂色

    引子: 额~今天我们昨天才学了区间DP, 还没来得及复习就迎来了老师最喜欢的--我们最喜欢的模拟考试.但是,好像题已经超乎了我的想象. 啊啊啊啊啊啊啊啊啊!!! 后面两道没怎么读懂题啊! First ...

  5. c语言写一个格子涂色的游戏,不一样的涂色游戏小程序,这个魔力贴贴涂色游戏有点意思...

    原标题:不一样的涂色游戏小程序,这个魔力贴贴涂色游戏有点意思 30000+游戏爱好者已加入我们! 沐沐带你发现好游戏! <魔力贴贴>游戏小程序好玩吗? <魔力贴贴>小游戏怎么玩 ...

  6. 小程序源码:宅男必备福利壁纸大全自动采集微信小程序

    这是一款可以说是宅男的最爱 也可以说是专门给宅男准备的一款小程序吧 里面支持动态视频,静态壁纸,情侣头像等多种分类 保存内容支持每天激励视频解锁保存 全内容自动采集,内附含了数不清的小姐姐,二次元,各 ...

  7. 微信小程序云开发用户身份登录_云开发版的微信商城小程序第一章

    我们经过前面小程序基础和云开发基础的学习,今天就来带大家实现一个综合项目,上线一款属于自己的微信商城小程序. 文末有彩蛋 如果你有小程序基础可以跳过上面的基础,直接看下面的,如果没有小程序基础,建议你 ...

  8. 小程序云开发搜索功能的实现正则_码code | 如何借助小程序云开发实现小程序支付功能...

    转载来源:编程小石头 我们在做小程序支付相关的开发时,总会遇到这些难题.小程序调用微信支付时,必须要有自己的服务器,有自己的备案域名,有自己的后台开发.这就导致我们做小程序支付时的成本很大. 本节就来 ...

  9. 闲得无聊?不如用Python设计一个经典小游戏

    前言 想不想在闲得无聊的时候,用自己学过的Python基础知识,来做一个非常简单的猜大小的游戏,里面囊括许多非常基础的知识点,函数设计,条件控制和循环等等,在做的过程中其实也是在不断的复习,提高你的基 ...

  10. 微信小程序云开发用户身份登录_你必须要掌握的微信小程序云开发

    微信小程序开发已经成为目前最火爆的技能之一,无论是在求职.毕设.兴趣培养等方面都已经成为一项必备技能,而小程序云开发技术的出现更是点燃了整个小程序生态圈. 在2019微信公开课PRO小程序分论坛上,腾 ...

最新文章

  1. Android5.1.1源码 - zygote fork出的子进程如何权限降级
  2. python乘法口诀编程-中年大叔学编程-用Python打印个九九乘法表
  3. php乱炖,linux使用crontab实现PHP执行定时任务 | 乱炖
  4. 工作区 暂存区 版本库之间的关系
  5. CentOS yum安装MySQL5.7.20
  6. SDUTRescue The Princess(数学问题)
  7. ARM汇编ADR,LDR等伪指令
  8. python 公开课_python公开课视频(11~20)
  9. php上传同一张图片,两种php实现图片上传的方法_PHP
  10. ubuntu在xampp下安装memcache扩展
  11. 【Python-3.5】Pygal模拟骰子点数,分析结果可视化
  12. 帝国cms模板中php,帝国cms模板中使用PHP生成随机字符的方法
  13. 双系统下Mac可以这样卸载windows系统
  14. unity3D禁用脚本
  15. uni-app开发小说阅读器
  16. 【Scikit-Learn 中文文档】处理文本数据 - scikit-learn 教程 | ApacheCN
  17. Matlab中int()函数的使用
  18. 父子游标不可共享的情况分析
  19. JavaSE习题 用Java打印九九乘法口诀表
  20. 如何利用计算机进行数制转换,如何教授计算机基础中的数制转换内容

热门文章

  1. Fiori 动态磁贴示例
  2. html中统计图怎么做,如何做专业、美观的图表(基础统计图部分)
  3. [人工智能-深度学习-32]:卷积神经网络CNN - 常见分类网络- AlexNet网络结构分析与详解
  4. Python 学习:函数
  5. 启发式搜索算法 - 以A*为中心来说明启发式算法本质是要找有效的heuristic需要满足的性质
  6. mysql 官网 update_UPDATE
  7. Linux进程管理软件supervisord使用心得
  8. 为什么对方的QQ邮箱收不到我QQ邮箱发的邮件?
  9. Python 自动化办公之自动识别并点击按钮
  10. 数据结构练习题——图(含应用题)