当前位置: 首页 > news >正文

Vijos 1067Warcraft 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,否则可能会溢出

来源

杜杜我爱你个人原创

注意矩阵的对应项之间的关系,初始化,以及开long
long 
 1 #include<algorithm>
 2 #include<iostream>
 3 #include<cstdlib>
 4 #include<cstring>
 5 #include<cstdio>
 6 #include<cmath>
 7 #include<ctime>
 8 #include<queue>
 9 #include<stack>
10 #include<map>
11 #include<set>
12 #define ll long long
13 #define mod 7777777
14 #define re register
15 using namespace std;
16 ll c[2][11][11];
17 ll s[11][11];
18 int n,k;
19 inline void init( ) {
20   for(re int i=1;i<k;i++) c[1][i+1][i]=1;
21   for(re int i=1;i<=k;i++) c[1][i][k]=1;
22   c[0][1][k]=1;
23 }
24 inline void count(int a , int b) {
25   for(re int i=1;i<=k;i++)
26     for(re int j=1;j<=k;j++)
27       for(re int u=1;u<=k;u++)
28     s[i][j]=(s[i][j]+c[a][i][u]*c[b][u][j])%mod;
29   for(re int i=1;i<=k;i++)
30     for(re int j=1;j<=k;j++)
31       c[a][i][j]=s[i][j],s[i][j]=0;
32   return;
33 }
34 int main( )
35 {
36   freopen("qyp.in","r",stdin);
37   freopen("qyp.out","w",stdout);
38   cin>>k>>n;
39   init();
40   while(n){
41     if(n&1) count(0,1);
42     n>>=1;
43     count(1,1);
44   }
45   printf("%lld",c[0][1][k]);
46   return 0;
47 }

 

 

转载于:https://www.cnblogs.com/ypz999/p/6688250.html

相关文章:

  • 清除连接(其他电脑的)记录
  • 袋鼠云助力光伏产业 | 基于阿里云数加平台做算法预测
  • 重作了一次学生
  • 第十九章,指针小练习(C++)
  • jqgrid 定义方法, 而不向服务器请求
  • 售前工程师的成长---一个老员工的经验之谈(1)转载
  • IP路由原理
  • WinForm 下的 Wizard(向导) 控件, 提供设计时支持!
  • Logback手冊 Chapter 1: Introduction
  • [转]使用控件的RenderControl()方法导出Excel
  • 在移动端禁用长按选中文本功能
  • TNS-01190: The user is not authorized to execute the requested listener command
  • http://book.chinaz.com/database/sqlanywhere/ulcpzh9/ulcpzh9.htm
  • 基于Excel参数化你的Selenium2测试-xlrd
  • min-height和height
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Angular 响应式表单 基础例子
  • C++类的相互关联
  • cookie和session
  • laravel5.5 视图共享数据
  • Linux后台研发超实用命令总结
  • mysql_config not found
  • nfs客户端进程变D,延伸linux的lock
  • React的组件模式
  • Ruby 2.x 源代码分析:扩展 概述
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 给Prometheus造假数据的方法
  • 关于 Cirru Editor 存储格式
  • 关于Flux,Vuex,Redux的思考
  • 简单基于spring的redis配置(单机和集群模式)
  • 力扣(LeetCode)22
  • 前端面试总结(at, md)
  • 微服务框架lagom
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 微信小程序开发问题汇总
  • 携程小程序初体验
  • 阿里云移动端播放器高级功能介绍
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #Z2294. 打印树的直径
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (26)4.7 字符函数和字符串函数
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (arch)linux 转换文件编码格式
  • (Java数据结构)ArrayList
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (二)hibernate配置管理
  • (分布式缓存)Redis分片集群
  • (论文阅读11/100)Fast R-CNN
  • (篇九)MySQL常用内置函数
  • (推荐)叮当——中文语音对话机器人
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本