BZOJ 1008: [HNOI2008]越狱 水

BZOJ难得的水题

1008: [HNOI2008]越狱

Time Limit: 1 Sec  Memory Limit: 162 MB

Submit: 4977  Solved: 2149

[Submit][Status][Discuss]

Description

监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱

Input

输入两个整数M,N.1<=M<=10^8,1<=N<=10^12

Output

可能越狱的状态数,模100003取余

Sample Input

2 3

Sample Output

6

HINT

6种状态为(000)(001)(011)(100)(110)(111)

Source

[Submit][Status][Discuss]

/* ***********************************************
Author        :CKboss
Created Time  :2015年05月09日 星期六 16时24分47秒
File Name     :BZOJ1008.cpp
************************************************ */

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <cmath>
#include <cstdlib>
#include <vector>
#include <queue>
#include <set>
#include <map>

using namespace std;

typedef long long int LL;
const LL mod=100003;

LL m,n;

LL quickPow(LL a,LL n)
{
	LL e=1LL;
	while(n)
	{
		if(n&1) e=(a*e)%mod;
		a=(a*a)%mod;
		n=n>>1;
	}
	return e%mod;
}

int main()
{
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);

	scanf("%lld%lld",&m,&n);
	LL ans=(quickPow(m,n)+mod-(m*quickPow(m-1,n-1))%mod)%mod;
	printf("%lld\n",ans);

    return 0;
}
时间: 2024-12-14 18:48:23

BZOJ 1008: [HNOI2008]越狱 水的相关文章

BZOJ 1008: [HNOI2008]越狱 快速幂

1008: [HNOI2008]越狱 Description 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 Input 输入两个整数M,N.1<=M<=10^8,1<=N<=10^12 Output 可能越狱的状态数,模100003取余 Sample Input 2 3 Sample Output 6 HINT 6种状态为(000)(001)(011)(10

bzoj 1008: [HNOI2008]越狱

1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 long long n,m,ans=1,ans1=1,n1; 5 int main() 6 { 7 scanf("%lld%lld",&m,&n); 8 n--; 9 long long n1=n,k=m-1,m1=m; 10 for(;n1;) 11 { 12 if(n1%2) 13 ans=(ans*k)%1000

BZOJ 1008: [HNOI2008]越狱 组合数学

原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1008 题解: 就很傻逼的组合数学啊... $$ans=M^N-M*(M-1)^{(N-1)}$$ 代码: /************************************************************** Problem: 1008 User: HarryGuo2012 Language: C++ Result: Accepted Time:0 ms Memo

BZOJ 1008: [HNOI2008]越狱【组合】

很少有的思路秒解.题意可以描述成对长度为n的格子有m种染色方案,问存在相邻两个格子同色的方案数,正难则反易,考虑问题的背面任意两个相邻的格子都不同色,第一个格子可以涂任意一种颜色m种可能,剩下的n-1个格子每个不能和前面一个格子相同固有m-1种可能,总的方案数有m^n种,所以答案就是m^n-m(m-1)^n-1 由于答案取模及幂次较高,因此可以考虑小费马定理或快速幂优化 由于数据太2,一开始用 int读成功贡献了3个WA TAT #include<iostream> #include<c

1008: [HNOI2008]越狱

1008: [HNOI2008]越狱 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 7777  Solved: 3331[Submit][Status][Discuss] Description 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 Input 输入两个整数M,N.1<=M<=10^8,1<=N<=10

1008: [HNOI2008]越狱(计数问题)

1008: [HNOI2008]越狱 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 11361  Solved: 4914[Submit][Status][Discuss] Description 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 Input 输入两个整数M,N.1<=M<=10^8,1<=N<=1

【BZOJ 1008】[HNOI2008]越狱

1008: [HNOI2008]越狱 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 5535  Solved: 2370[Submit][Status][Discuss] Description 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 Input 输入两个整数M,N.1<=M<=10^8,1<=N<=10

[BZOJ 1008] [HNOI 2008] 越狱

1008: [HNOI2008]越狱 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 5041  Solved: 2177[Submit][Status][Discuss] Description 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 Input 输入两个整数M,N.1<=M<=10^8,1<=N<=10

BZOJ 1008 越狱 题解 裸快速幂

BZOJ 1008 越狱 题解 裸快速幂 1008: [HNOI2008]越狱 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 7887  Solved: 3372[Submit][Status][Discuss] Description 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 Input 输入两个整数M,N.1<=M<