BZOJ-1008 越狱 数论快速幂】的更多相关文章

1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 6192 Solved: 2636 [Submit][Status][Discuss] Description 监狱有连续编号为1-N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 Input 输入两个整数M,N.1<=M<=10^8,1<=N<=10^1…
ACM数论——快速幂 快速幂定义: 顾名思义,快速幂就是快速算底数的n次幂.其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高. 原理: 以下以求a的b次方来介绍: 把b转换成二进制数.该二进制数第i位的权为  例如 11的二进制是1011 11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1 因此,我们将a¹¹转化为算   快速幂位运算: LL pow_mod(LL a, LL b, LL p){//a的b次方取余p LL ret = ; while(b){ )…
http://www.lydsy.com/JudgeOnline/problem.php?id=1008 刚开始看不会做啊,以为是dp,但是数据太大!!!所以一定有log的算法或者O1的算法,,,,还是不会.. 看了题解,,太巧妙了!就是反过来想..所有情况-不会越狱的情况=答案....所有情况很好求,因为每个人都可以是任意种宗教,根据乘法原理,所有情况=m*m*m*m*...*m=m^n:而不会越狱的情况也很好求,因为约束只是临边的人不能是同种宗教,所以我们只要假设临边的人有m-1种选择,而这…
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) 基本相当于…
原文链接http://www.cnblogs.com/zhouzhendong/p/8116330.html UPD(2018-03-26):回来重新学数论啦.之前的博客版面放在更新之后的后面. 题目传送门 - BZOJ3561 题意概括 给出$n,m$,求$\Large\sum_{i=1}^n\sum_{j=1}^m lcm(i,j)^{\gcd(i, j)}$. $1\leq n,m\leq 500000$ 题解 先推式子:(假设$n\leq m$) $$\sum_{i=1}^n\sum_{…
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) 分析 注意一…
bzoj1008: [HNOI2008]越狱      O(log N)----------------------------------------------------------------------------------------------------------------------------------------- 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少…
BZOJ 3160: 万径人踪灭 题目传送门 [题目大意] 给定一个长度为n的01串,求有多少个回文子序列? 回文子序列是指从原串中找出任意个,使得构成一个回文串,并且位置也是沿某一对称轴对称. 假如x是对称轴,若 i 和 j 是对称且di=dj,i,j可以视为可行的一组.可行组数记为f[x]. \(f[x]=\sum_{i=1}^{x-1}[d[x-i]==d[x+i]]\) 以x为对称轴的答案是2^(f[x])-1. 可以观察发现将d[i]=1的A[i]标为1,A与A做一次卷积,即可得出d[…
题目链接: 瞬间移动 Problem Description   有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次你都可以选择一个右下方格子,并瞬移过去(如从下图中的红色格子能直接瞬移到蓝色格子),求到第nn行第mm列的格子有几种方案,答案对1000000007取模.   Input   多组测试数据. 两个整数n,m(2<= n,m<=100000) Output   一个整数表示答案 Sample Input   4 5   Sample Output   10 题意: 思路:…
快速幂水过,贴一下模版. ; var x,y,n,m:int64; function power(num,times:int64):int64; var temp:int64; begin then exit(num); temp:=power(num,times>>); power:=(temp*temp) mod mo; = then power:=(power*num) mod mo; end; procedure main; begin readln(m,n); x:=power(m,…