日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Vijos P1067Warcraft III 守望者的烦恼

發布時間:2024/10/12 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vijos P1067Warcraft III 守望者的烦恼 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

背景

守望者-warden,長期在暗夜精靈的的首都艾薩琳內擔任視察監獄的任務,監獄是成長條行的,守望者warden擁有一個技能名叫“閃爍”,這個技能可以把她傳送到后面的監獄內查看,她比較懶,一般不查看完所有的監獄,只是從入口進入,然后再從出口出來就算完成任務了。

描述

頭腦并不發達的warden最近在思考一個問題,她的閃爍技能是可以升級的,k級的閃爍技能最多可以向前移動k個監獄,一共有n個監獄要視察,她從入口進去,一路上有n個監獄,而且不會往回走,當然她并不用每個監獄都視察,但是她最后一定要到第n個監獄里去,因為監獄的出口在那里,但是她并不一定要到第1個監獄。

守望者warden現在想知道,她在擁有k級閃爍技能時視察n個監獄一共有多少種方案?

格式

輸入格式

第一行是閃爍技能的等級k(1<=k<=10)
第二行是監獄的個數n(1<=n<=2^31-1)

輸出格式

由于方案個數會很多,所以輸出它 mod 7777777后的結果就行了

樣例1

樣例輸入1[復制]

2 4

樣例輸出1[復制]

5

限制

各個測試點1s

提示

把監獄編號1 2 3 4,閃爍技能為2級,
一共有5種方案
→1→2→3→4
→2→3→4
→2→4
→1→3→4
→1→2→4

小提示:建議用int64,否則可能會溢出

題解

這道題目是矩陣,我竟然有點忘記矩陣乘法了QAQ趕快再做幾題!

代碼

1 /*Author:WNJXYK*/ 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 6 const int M=7777777; 7 int n,siz; 8 long long mul[11][11],ans[11]; 9 inline void mTimes(long long a[],long long b[][11]){ 10 long long c[11]; 11 memset(c,0,sizeof(c)); 12 for (int i=1;i<=siz;i++){ 13 for (int j=1;j<=siz;j++){ 14 c[i]=(c[i]+a[j]*b[i][j])%M; 15 } 16 } 17 memcpy(a,c,sizeof(c)); 18 } 19 inline void mTimes(long long a[][11],long long b[][11]){ 20 long long d[11][11]; 21 memset(d,0,sizeof(d)); 22 for (int i=1;i<=siz;i++){ 23 for (int j=1;j<=siz;j++){ 24 for (int k=1;k<=siz;k++){ 25 d[i][j]=(d[i][j]+a[i][k]*b[k][j])%M; 26 } 27 } 28 } 29 memcpy(a,d,sizeof(d)); 30 } 31 32 int main(){ 33 scanf("%d%d",&siz,&n); 34 ans[0]=1; 35 for (int i=1;i<=siz;i++){ 36 for (int j=0;j<i;j++){ 37 ans[i]+=ans[j]; 38 } 39 } 40 for (int i=1;i<=siz;i++)mul[siz][i]=1; 41 for (int i=2;i<=siz;i++)mul[i-1][i]=1; 42 n--; 43 while(n){ 44 if (n&1) mTimes(ans,mul); 45 n/=2; 46 mTimes(mul,mul); 47 } 48 printf("%lld\n",ans[1]); 49 return 0; 50 } View Code

?

轉載于:https://www.cnblogs.com/WNJXYK/p/4070804.html

總結

以上是生活随笔為你收集整理的Vijos P1067Warcraft III 守望者的烦恼的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。