题目

背景

守望者-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 守望者的烦恼相关推荐

  1. vijos 1067 Warcraft III 守望者的烦恼 矩阵

    题目链接 我们可以很容易的推出dp的式子, dp[i] = sigma(j : 1 to k) dp[i-j]. 但是n太大了, 没有办法直接算, 所以我们构造一个矩阵, 然后快速幂就好了. 就像这样 ...

  2. Warcraft III 守望者的烦恼

    题目描述 头脑并不发达的warden最近在思考一个问题,她的闪烁技能是可以升级的,k级的闪烁技能最多可以向前移动k个监狱,一共有n个监狱要视察,她从入口进去,一路上有n个监狱,而且不会往回走,当然她并 ...

  3. 18.03.26 vijos1067Warcraft III 守望者的烦恼

    背景 守望者-warden,长期在暗夜精灵的的首都艾萨琳内担任视察监狱的任务,监狱是成长条行的,守望者warden拥有一个技能名叫"闪烁",这个技能可以把她传送到后面的监狱内查看, ...

  4. 【Vijos】1431 守望者的逃离

    题目链接:https://vijos.org/p/1431 算法:贪心 描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者 在与尤迪安的交锋中遭遇了围杀,被困在一个 ...

  5. 【技巧总结】——DP

    DP 那些奇奇怪怪的dp LIS 二分法(nlogn)求 输出方案 LCS的巧妙想法 基础式子 计算方案 区间dp( n 3 n^3 n3) 线性dp 破环成链 递归型 转换对象 背包 普通背包 &q ...

  6. 【最大费用流】【最优匹配】丘比特的烦恼 Vijos 1169

    Vijos-P1169丘比特的烦恼 Accepted 描述 随着社会的不断发展,人与人之间的感情越来越功利化.最近,爱神丘比特发现,爱情也已不再是完全纯洁的了.这使得丘比特很是苦恼,他越来越难找到合适 ...

  7. 【每日DP】day 5、P1095 守望者的逃离(好像悟到了DP的真谛)难度⭐⭐★

    P1095 守望者的逃离 输入 39 200 4 输出 No 197 输入 36 255 10 输出 Yes 6 好像悟到了DP的真谛(doge) 动态规划,就是动态地维护当前的状态. 本题种状态是距 ...

  8. 啊哈c语言读后感500字,《麦田里的守望者》读后感读书笔记500字五篇

    <<麦田里的守望者>读后感读书笔记500字五篇>由会员分享,可在线阅读,更多相关<<麦田里的守望者>读后感读书笔记500字五篇(5页珍藏版)>请在人人文 ...

  9. [VIJOS]lxhgww的奇思妙想

    Vijos lxhgww的奇思妙想 题面 lxhgww 在树上玩耍时,LZX2019 走了过来.lxhgww 突然问道:"我现在的k级祖先是谁?" LZX2019 答道:" ...

最新文章

  1. 如何设计恒流源输出电路?
  2. 6小时完成,Jeff Dean领衔AI设计芯片方案登Nature,谷歌第四代TPU已用 芯快递 今天...
  3. SQLMAP使用笔记
  4. 随机数尽可能做到不重复
  5. sql server规范
  6. js setTimeout和setInterval区别
  7. Java编程中忽略这些细节,Bug肯定找上你
  8. Python基础语法和数据类型最全总结
  9. gp3688 uhf2扩频_摩托罗拉GP3688对讲机(VHF、UHF)对讲机维修
  10. Mac搭建PHP+rabbitMQ环境
  11. 华为堡垒机_浪潮无线分析,华为云堡垒机
  12. 滴滴自动驾驶首轮融资超5亿美元 加大研发投入 助力“新基建”
  13. 用c语言编写linux守护进程
  14. 类数据源Visual C++对ODBC数据库资源的访问
  15. 可执行文件内存补丁文件补丁工具
  16. 爬取服务器主机信息,魔兽世界怀旧服,基于WclPlayerScore数据二次爬取的各服务器分层人口普查及精英玩家比例...
  17. html表格标题标签_HTML标题标签
  18. 可编译易用的模块化nf-HiPAC移植成功
  19. 中国移动云mas短信对接(http)
  20. 看集装箱号码识别技术如何解决港口拥堵

热门文章

  1. Python Django jsonpickle序列化隐藏部分字段代码示例
  2. Python Django HttpResponse响应对象
  3. jvm最大内存限制多少?
  4. RabbitMQ消息confirm确认机制
  5. GridFS删除文件代码示例
  6. sublime text常用快捷键及多行光标批量操作教程
  7. 【示例】Lucene查询索引库编程步骤
  8. Unable to open socket file: target process not responding or HotSpot VM not loaded The -F option can
  9. spark写mysql优化简书_spark——通过jdbc连接数据库中遇到的问题
  10. java中的解码和编码_关于java中编码和解码(一)