【题意分析】

  求长度为n,元素大小在[1,m]∩N的序列中,有多少个序列中存在相同的相邻元素。

【解题思路】

  小学奥数题。。

  总序列数:S=mn

  不存在相同的相邻元素的序列数:T=m*(m-1)n-1(第一个元素有m种取法,剩下的每个元素都不能跟左边的元素相同,都有m-1种取法)

  故ans=S-T=mn-m*(m-1)n-1。复杂度O(log2n)。

【参考代码】

  我还不知道Py时写的代码。。

 #include<cmath>
#include<cstdio>
#include<cstdlib>
#include<ctime>
#define REP(I,start,end) for(int I=start;I<=end;I++)
#define PER(I,start,end) for(int I=start;I>=end;I--)
#define REPs(I,start,end,step) for(int I=start;I<=end;I+=step)
#define PERs(I,start,end,step) for(int I=start;I>=end;I-=step)
#define maxint 32767
#define maxlongint 2147483647
#define MOD 100003ll
template<typename integer> inline bool even(integer n)
{
return ~n&;
}
template<typename integer> inline integer exgcd(integer a,integer b,integer &x,integer &y)
{
if(!a&&!b)
return -;
if(!b)
{
x=;
y=;
return a;
}
integer d=exgcd(b,a%b,y,x);
y-=a/b*x;
return d;
}
template<typename integer> inline integer fact(integer n)
{
integer result=integer();
REP(i,,n)
result*=i;
return result;
}
template<typename Float> inline bool fequals(Float A,Float B,Float eps=1e-)
{
return fabs(A-B)<eps;
}
template<typename integer> inline integer gcd(integer A,integer B)
{
integer result=A;
while(B)
{
A=B;
B=result%B;
result=A;
}
return result;
}
template<typename integer> inline integer sqr(integer n)
{
return n*n;
}
template<typename base_type,typename exp_type> inline base_type PowerMod(base_type Base,exp_type Exp,base_type Mod)
{
bool* sav=new bool[int(log(Exp)/log())+];
int tot=;
base_type result=base_type(),baser=Base%Mod;
exp_type tmp=Exp;
while(tmp)
{
sav[tot++]=tmp&;
tmp>>=;
}
while(tot)
{
result=sqr(result)%Mod;
if(sav[--tot])
result=result*baser%Mod;
}
delete []sav;
return result;
}
template<typename input_type,typename return_type> inline return_type Lucas(input_type m,input_type n,return_type Mod)
{
return_type *_fact=new return_type[Mod+],result=_fact[]=return_type();
REP(i,,Mod)
_fact[i]=_fact[i-]*i%Mod;
while(m&&n)
{
return_type _m=m%Mod,_n=n%Mod;
if(_m<_n)
return return_type();
result=result*_fact[_m]*PowerMod(_fact[_n]*_fact[_m-_n]%Mod,Mod-,Mod)%Mod;
m/=Mod;
n/=Mod;
}
delete []_fact;
return result;
}
template<typename integer> inline bool Miller_Rabin(integer n,unsigned times)
{
if(n<)
return n>=&&n<;
srand(unsigned(time(NULL)));
int two=;
integer rest=n-;
while(even(rest))
{
two++;
rest>>=;
}
while(times--)
{
integer y=PowerMod(rand()%(n-)+,rest,n);
if(y==||y==n-)
return true;
int j=two;
while(j--)
{
y=sqr(y)%n;
if(y==||y==n-)
break;
}
if(y!=n-)
return false;
}
return true;
}
template<typename integer> inline integer mod_reverse(integer a,integer n)
{
integer x,y,d=exgcd(a,n,x,y);
if(d==)
return NMod(x,n);
else
return -;
}
template<typename int1,typename int2> inline int2 NMod(int1 A,int2 B)
{
return (A%B+B)%B;
}
template<typename integer> inline bool odd(integer n)
{
return n&;
}
template<typename base_type,typename exp_type> inline base_type power(base_type Base,exp_type Exp)
{
bool* sav=new bool[log(Exp)/log()+];
int tot=;
base_type result=base_type();
exp_type tmp=Exp;
while(tmp)
{
sav[tot++]=tmp&;
tmp>>=;
}
while(tot)
{
result=sqr(result);
if(sav[--tot])
result=result*Base;
}
delete []sav;
return result;
}
template<typename integer> inline bool prime(integer n)
{
REP(i,,sqrt(n))
if(n%i==)
return false;
return true;
}
template<typename int1,typename int2> inline int1 ZnDiv(int1 A,int2 B)
{
return (A+B)/B-;
}
template<typename int1,typename int2> inline int2 ZpMod(int1 A,int2 B)
{
return NMod(A-,B)+;
}
//===========================================Header Template==========================================
long long m,n;
int main()
{
scanf("%lld%lld",&m,&n);
m%=MOD;
printf("%lld\n",NMod(PowerMod(m,n,MOD)-PowerMod(m-,n-,MOD)*m%MOD,MOD));
return ;
}

  。。再来看看Py。。

 AwD=100003

 def mpow(x,y):
ret,bas,i=1,x%AwD,y
while i:
if i&1:
ret=ret*bas%AwD
bas=bas*bas%AwD
i>>=1
return ret if __name__=="__main__":
argv=raw_input().split()
m,n=int(argv[0]),int(argv[1])
print (mpow(m,n)-m*mpow(m-1,n-1))%AwD

QAQ

bzoj1008题解的更多相关文章

  1. BZOJ1008:[HNOI2008]越狱——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=1008 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中 ...

  2. BZOJ1008 [HNOI2008]越狱 快速幂

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1008 题意概括 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可 ...

  3. 洛谷3197&bzoj1008 越狱

    洛谷3197&bzoj1008 越狱 Luogu bzoj 题解 所有状态减合法状态.SBT 答案为\(m^n-m*(m-1)^{n-1}\)太SB不解释 注意取膜的问题.相减可能减出负数,而 ...

  4. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  5. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  6. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  7. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  8. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  9. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

随机推荐

  1. python_django_上传文件

    存储路径: 存储在服务器的项目的static/upfile(你说了算的文件名,但是一般俺们叫这个)文件中 配置: 配置settings.py文件 MDEIA_ROOT = os.path.join(B ...

  2. 批量修改root密码

    公司有五十多台服务器.每台服务器中使用的密码完全不同,同时操作系统也不一样,centos5,6,7 .ubuntu,windows都有,更不用提其中各种小版本. root密码定期更改是一个大问题(wi ...

  3. applicationContext-redis.xml配置文件

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...

  4. 设置select下拉框高度的一种方法

    这种方法可以设置下拉框最多显示几条栏目,多余的栏目用显示滚动条展示: <select style="position: absolute;z-index: 1;" onmou ...

  5. hive UDAF开发和运行全过程

    介绍 hive的用户自定义聚合函数(UDAF)是一个很好的功能,集成了先进的数据处理.hive有两种UDAF:简单和通用.顾名思义,简单的UDAF,写的相当简单的,但因为使用Java反射导致性能损失, ...

  6. WebBug靶场基础篇 — 03

    基础篇 6 - 16 关... 在记录之前,先说一件事 = =! 小学生真多 = =!好心提供一个靶场,玩玩就算了,他挂黑页 ?现在好了,以后这个靶场不对外啊!你高兴了?爽了吧? 都是新手过来的,好心 ...

  7. 剑指offer——38二叉搜索树与双向链表

    题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向.   题解: 在搜索二义树中,左子节点的值总是小于父节点的值,右子节点的值总 ...

  8. Java性能调优攻略全分享,5步搞定!(附超全技能图谱)

    对于很多研发人员来说,Java 性能调优都是很头疼的问题,为什么这么说?如今,一个简单的系统就囊括了应用程序.数据库.容器.操作系统.网络等技术,线上一旦出现性能问题,就可能要你协调多方面组件去进行优 ...

  9. Codeforces Round #535 F-MST Unification

    题目大意: 给定n m 为图中的点数n和边数m 给定m条边的信息 u v w 为u点到v点有一条长度为w的边 图中无环无重边 这个图的MST的花费为k 但可能存在多种花费为k的MST的方案 此时对图中 ...

  10. PROJECT | 四则运算UI设计 - 项目总结

    [项目Github地址] https://github.com/oTPo/hw2 [项目规划] PSP表格 事项 预计时间(min) 实际花费时间(min) 需求分析 60 60 开发流程分析 30 ...