P3197越狱
花费了好长时间,终于刷掉了这道题。
题目在这里(洛谷) (信息学奥赛一本通)
嗯,没错,这是一道快速幂的题,不会快速幂点这里
好现在开始分析,这道题用小学奥数的思想就可以想到,直接算有多少种可能比较难,所以就算出所有的情况再减去不越狱的情况,就是越狱的情况了。所有情况就是mn,不发生的情况就是m*(m-1)(n-1),所以,发生的情况就是mn-m*(m-1)(n-1)。
然后就成功的算出了发生的情况数。
代码如下
#include<iostream>
#define LL long long //下面LL可以代替long long
using namespace std;
LL m, n, mod=;
LL power(LL a, LL b){
int ans=, base=a;
while (b != ){
if (b& == ) ans=(ans*base)%mod; //b&1==1 = b%2==1
base=(base*base)%mod;
b>>=;
}
return ans;
}
int main()
{
cin>>m>>n;
cout<<power(m, n)-((m%mod)*power(m-, n-)%mod+mod)%mod<<endl; //公式
return ;
}
这个代码样例是可以过去的,but只有10分,我也不知道为啥。
但是根据对输出的分析,我给快速幂多mod了几下,竟然AC啦…
所以看下面,AC代码
#include<iostream>
#define LL long long
using namespace std;
LL m, n, mod=;
LL power(LL a, LL b){
int ans=, base=a;
while (b != ){
if ((b&) == ) ans=(ans%mod)*(base%mod)%mod;
base=(base%mod)*(base%mod)%mod;
b>>=;
}
return ans;
}
int main()
{
cin>>m>>n;
cout<<(power(m, n)-(m*power(m-, n-))%mod+mod)%mod<<endl;
return ;
}
P3197越狱的更多相关文章
- 洛谷 P3197 [HNOI2008]越狱 解题报告
P3197 [HNOI2008]越狱 题目描述 监狱有连续编号为\(1-N\)的\(N\)个房间,每个房间关押一个犯人,有\(M\)种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可 ...
- bzoj1008 / P3197 [HNOI2008]越狱
P3197 [HNOI2008]越狱 考虑所有状况:显然是$m^{n}$ 考虑所有不合法状况: 显然相邻两个数不相等 那么后面$n-1$个数就有$(m-1)^{n-1}$种取法 第一个数前面没有相邻的 ...
- 洛谷P3197 HNOI2008 越狱
题目传送门 实际上昨天大鸡哥已经讲过这题了,结果没记住,今天一道相似的题就挂了......吃一堑长一智啊. 思路大致是这样:如果直接算发生越狱的情况会比较复杂,所以可以用间接法,用安排的总方案-不会发 ...
- 洛谷 P3197 [HNOI2008]越狱 题解
P3197 [HNOI2008]越狱 题目描述 监狱有连续编号为 \(1-N\) 的 \(N\) 个房间,每个房间关押一个犯人,有 \(M\) 种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗 ...
- 【洛谷P3197】越狱
本来还想了一会dp-- 然而一看数据范围明显是数论-- 那么推一推.. 我们发现可以用总方案数减去不会越狱的方案数 那么我们考虑在长度为n的数列中填数 首先第一个位置有m种选择,后面的位置: 总方案: ...
- P3197 [HNOI2008]越狱
题目描述 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 输入输出格式 输入 ...
- P3197 [HNOI2008]越狱[组合数学]
题目来源:洛谷 题目描述 监狱有连续编号为 1…N 的 N 个房间,每个房间关押一个犯人,有 M 种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生 ...
- luogu P3197 [HNOI2008]越狱
构造长度为n的串,给定m种颜色,求使得相邻两位的颜色相同的方案数 显然可以看出长度为n的串染m种颜色的总方案数为$m^{n}$ 然后来考虑相邻两位颜色不同的方案 对于第一位,有m种选择 对于剩余的n- ...
- 「HNOI2008」「LuoguP3197」越狱(数论
题目描述 原题来自:HNOI 2008 监狱有连续编号为 111 到 nnn 的 nnn 个房间,每个房间关押一个犯人.有 mmm 种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人信仰的宗教相同, ...
随机推荐
- 周记【距gdoi:117天】
国庆被“吞”了 图论还剩下平面图.分层图.欧拉图…… 是现实太残酷还是自己兴趣不够? 努力吧.
- hdu4418 Time travel 【期望dp + 高斯消元】
题目链接 BZOJ4418 题解 题意:从一个序列上某一点开始沿一个方向走,走到头返回,每次走的步长各有概率,问走到一点的期望步数,或者无解 我们先将序列倍长形成循环序列,\(n = (N - 1) ...
- [codechef MEXDIV]Mex division
题目链接:https://vjudge.net/contest/171650#problem/I 直接用set+dp水过去了... /* 设dp[i]表示前i个做划分满足条件的方案数 有一个显然的转移 ...
- PHP设计模式-代理模式
概念理解: 代理模式,是对简单处理程序(或指针)的增强,用于引用一个对象:这个指针被代理对象取代,代理对象位于客户端和真实程序之间,指针有一个可被多个目标利用的钩子. 参与者: client(参与者) ...
- vue之axios使用
axios是vue-resource后出现的Vue请求数据的插件.vue更新到2.0之后,作者尤大就宣告不再对vue-resource更新,而是推荐的axios. 下面我们来使用axios npm i ...
- Js+CSS3实现手风琴效果
效果截图: HTML代码: <div id="container"> <img src="images/photo01.jpg" alt=&q ...
- DOM创建和删除节点
一.创建节点 3步 1.创建空元素对象: var newElem=document.createElement("标签名"); 例如:var a=document.createEl ...
- Chrome 本地通信
http://blog.csdn.net/ztmaster/article/details/52684772
- 51nod 扔盘子
题目传送门 这道题一开始写了n方的算法 果不其然 它T了 所以就想想o(n)的算法 写不出来 就像sbzhq学习了一下 这道题啊 要维护一下从深度1到n每一段的最小值以及他的位置 然后就暴力搞一搞就o ...
- OOP第三次上机
上机问题 T1 CSet 还是熟悉的CSet,只是多了个构造函数以及收缩空间. T2 SingleTon 单例问题. 用一个指针保存唯一的实例,用户无法在外部直接新建实例,只能使用外部接口(函数),函 ...