「HNOI2008」「LuoguP3197」越狱(数论
题目描述
输入格式
输出格式
样例
数据范围与提示
题解
这还能绿?!
正难则反,考虑不能越狱的情况,转化成线上的地图染色问题,方案为$m*\underbrace{(m-1)*(m-1)*...*(m-1)}_{(n-1)个}$,设为$res$。
然后所有可能为$m^n$。
所以答案就是$m^n-res$。
1 /* 2 qwerta 3 P3197 [HNOI2008]越狱 Accepted 4 100 5 代码 C++,0.38KB 6 提交时间 2018-10-23 17:02:41 7 耗时/内存 25ms, 804KB 8 */ 9 #include<iostream> 10 #include<cstdio> 11 using namespace std; 12 #define LL long long 13 const int mod=100003; 14 LL pown(LL q,LL w) 15 { 16 LL ans=1,base=q; 17 LL k=w; 18 while(k) 19 { 20 if(k&1) 21 ans=ans*base%mod; 22 base=base*base%mod; 23 k>>=1; 24 } 25 return ans; 26 } 27 int main() 28 { 29 int m; 30 cin>>m; 31 LL n; 32 cin>>n; 33 LL res=m*pown(m-1,n-1)%mod; 34 LL al=pown(m,n)%mod; 35 LL ans=(al-res+mod)%mod; 36 cout<<ans; 37 return 0; 38 }