Description
因为SJY干的奇怪事情过多,SJY收到了休假的通知,于是他准备在都市间来回旅游。SJY有一辆车子,一开始行驶性能为0,每过1时间行驶性能就会提升1点。每个城市的道路都有性能要求。SJY一共有t时间休息,一开始他位于1号城市(保证1号城市道路要求为0),他希望在n号城市结束旅程。每次穿过一条城市间的路会花费1时间,当然他也可以停留在一个城市不动而花费1时间。当且仅当车子的行驶性能大于等于一个城市,我们才能到达那里。SJY希望知道,旅游的方案模10086后的答案。(只要在某一时刻通过的道路存在一条不相同,就算不同的方案)

Input
第一行三个数n,m,t,表示有n个城市m条道路t时间。
第二行n个数,hi表示第i个城市的道路性能要求。
第三到m+2行,每行两个数u,v,表示城市u与城市v之间有一条单向道路连接(可能有重边)。

Output
包括一个数字,表示旅游的方案模10086。

Sample Input
5 17 7
0 2 4 5 3
1 2
2 1
1 3
3 1
1 4
4 1
4 5
5 4
5 3
4 1
2 1
5 3
2 1
2 1
1 2
2 1
1 3

Sample Output
245

Data Constraint
对于20%的数据,n<=10,t<=80;
对于50%的数据,n<=30,t<=80;
对于100%的数据,n<=70,m<=1000,t<=100000000,hi<=70。

//written by zzy

题目大意:

给你个图,有nnn个城市,mmm条边,每个城市至少要第h[i]h[i]h[i]时间后才能经过,
走一条边或呆在当前城市里都会花费时间111,
求在第ttt时间时到第nnn城市的方案数。

题解:

对于50%的数据,n<=30,t<=80n<=30,t<=80n<=30,t<=80,可以考虑dp,
设f[i][j]f[i][j]f[i][j]表在第 iii 时间到第 jjj 城市的方案数,a[i][j]a[i][j]a[i][j]表读入时城市 iii 到城市 jjj 的方案数
易推f[i][j]=∑f[i−1][k]∗a[k][j],(1<=k<=n)f[i][j]=∑f[i-1][k]*a[k][j],(1<=k<=n)f[i][j]=∑f[i−1][k]∗a[k][j],(1<=k<=n) //从在第 iii 时间从城市 kkk 到城市 jjj

考虑满分作法,
发现 h[i]<=70h[i]<=70h[i]<=70 ,即在第 707070 时间后没有限制,可以随便走,
那么每次矩阵 fff 都会乘上矩阵 aaa,

( a∗a[i,j]=∑a[i,k]∗a[k,j]a*a~[i,j]~=∑a[i,k]*a[k,j]a∗a [i,j] =∑a[i,k]∗a[k,j],即枚举 kkk ,从 iii 到 kkk 再走到 jjj 的方案数,
也即走两个时间从 iii 到 jjj 的方案数
那么 ata^tat 即走 ttt 个时间从 iii 到 jjj 的方案数)

用dp处理前 707070 时间和用矩阵快速幂后 707070 的时间
因为矩阵乘法有结合律
再令 fff 与 ·at-70 相乘,
答案为 f[t+1][n]f[t+1][n]f[t+1][n]

#include<iostream>
#include<cstdio>
#include<algorithm>
#define N 75
#define T 85
#define Mod 10086
using namespace std;int i,j,k,n,l,t,x,y;
int h[N],f[T][N];struct Mal{long long m[N][N];
};Mal a,b,ans;Mal mult(Mal x,Mal y) {Mal re;for (int i=1;i<=n;i++)for (int j=1;j<=n;j++)re.m[i][j]=0;for (int i=1;i<=n;i++)for (int j=1;j<=n;j++)for (int k=1;k<=n;k++)re.m[i][j]=(re.m[i][j]+(x.m[i][k]*y.m[k][j])%Mod)%Mod;return re;
}void mal_ksm(long long p) {for (int i=1;i<=n;i++)ans.m[i][i]=1;while (p) {if (p&1) ans=mult(ans,a);p>>=1;a=mult(a,a);}
}int main()
{scanf("%d%d%d",&n,&l,&t);for (i=1;i<=n;i++)scanf("%d",&h[i]);for (i=1;i<=l;i++) {scanf("%d%d",&x,&y);a.m[x][y]++;}f[0][1]=1;for (i=1;i<=n;i++) a.m[i][i]=1;for (i=1;i<=min(t,70);i++) for (j=1;j<=n;j++)if (h[j]<=i)for (k=1;k<=n;k++)f[i][j]=(f[i][j]+(f[i-1][k]*a.m[k][j])%Mod)%Mod;if (t<=70) {printf("%d",f[t][n]); return 0;}mal_ksm(t-70);a=ans;for (j=1;j<=n;j++)for (k=1;k<=n;k++)f[71][j]=(f[71][j]+(f[70][k]*a.m[k][j])%Mod)%Mod;printf("%d",f[71][n]);
}

jzoj 3847. 都市环游(travel) (Standard IO)相关推荐

  1. JZOJ 1775. 合并果子2 (Standard IO)

    1775. 合并果子2 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description 在一个果园里,多多已经将所有的果子 ...

  2. 5177. 【NOIP2017提高组模拟6.28】TRAVEL (Standard IO)

    Description Input Output Solution 有大佬说:可以用LCT做.(会吗?不会) 对于蒟蒻的我,只好用水法(3s,不虚). 首先选出的泡泡怪一定是连续的一段 L, R 然后 ...

  3. 4246. 【五校联考6day2】san (Standard IO)

    4246. [五校联考6day2]san (Standard IO) Time Limits: 1000 ms  Memory Limits: 262144 KB  Detailed Limits D ...

  4. 2554. 【NOIP2011模拟9.7】帕秋莉·诺蕾姬 (Standard IO)

    2554. [NOIP2011模拟9.7]帕秋莉·诺蕾姬 (Standard IO) Description 在幻想乡,帕秋莉·诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加强魔法咒语的 ...

  5. 1116. 【HNOI2008】T_OY(踢欧阳^_^) (Standard IO)斜率优化dp

    1116. [HNOI2008]T_OY(踢欧阳^_^) (Standard IO) Time Limits: 1000 ms  Memory Limits: 65536 KB  Detailed L ...

  6. IBM x3850 X6 不开机 面板显示 sys voltage fault standard io book

    IBM x3850 X6 服务器不开机 面板显示 sys voltage fault standard io book 如果有软件绑定主板,要维修主板哦,可加 w:cfx02100313(请备注)## ...

  7. jzoj 3426. 封印一击 (Standard IO)

    Description "圣主applepi于公元2011年9月创造了Nescafe,它在散发了16吃光辉之后与公元2011年11月12日被封印为一颗魂珠,贮藏于Nescafe神塔之中.公元 ...

  8. jzoj 3813. 我要的幸福 (Standard IO)

    Description 幸福/我要的幸福/渐渐清楚/梦想/理想/幻想/狂想/妄想/我只想坚持每一步/该走的方向/就算一路上/偶尔会沮丧/生活是自己/选择的衣裳/幸福/我要的幸福/没有束缚/幸福/我要的 ...

  9. JZOJ 5222. 【GDOI2018模拟7.12】A (Standard IO)

    题目链接: Click here Solution 设 v a l i val_i vali​表示 i i i与它后面的数形成的逆序对个数. a n s ans ans为原来数列逆序对个数. 每次询问 ...

最新文章

  1. 公司运作 - 利润率、周转率
  2. html广告条效果,css3炫酷网站banner广告动画特效
  3. 2021浙江高考首考成绩查询,浙江2021选考成绩什么时候出成绩?附2021浙江学考成绩查询时间...
  4. 计算机用户在使用计算机文件时6,201606-计算机基础选择题(含答案)(6页)-原创力文档...
  5. 大学里,数据系鄙视物理系,请问二位来自漫画系嘛?
  6. Harvest: A high-performance fundamental frequency estimator from speech signals
  7. XGBOOST_航班延误预测
  8. 3.5 菜鸟无畏——《逆袭大学》连载
  9. Python使用 opencv对CT图进行医学处理
  10. Qt涂鸦板及其放大简例
  11. leetcode 39 : 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。
  12. mybatis sql语句格式化 trim prefix suffix
  13. 企业联合体的形式_企业联合体与垄断的初探
  14. Canceling statement due to conflict with reco
  15. 钨极惰性气体保护焊(TIG or GTAW)
  16. 一个大牛的acm历程(看着就要颤抖
  17. 一文带你初识RDMA技术——RDMA概念,特点,协议,通信流程
  18. 分享个变形金刚地球之战挂机脚本,自动化操作
  19. M1忘记mysql密码
  20. 儿童在未来游戏中的监管与保护趋势

热门文章

  1. python爬虫-爬取酷狗音乐top榜
  2. 关于中断的模式 RXNE TC TXE 等等的含义(看着就乱)
  3. CDR(cv-detect-robot)项目简介
  4. M401a安装armbian
  5. ps-去除红色印章和为人物添加口红
  6. windows无法识别clover盘_Windows电脑安装Remin OS(jide os)系统,畅玩王者吃鸡手游...
  7. 前端实现炫酷动效_12个炫酷实用的HTML5带发光动画
  8. excel表格数字显示不全_TableEdit for Mac(表格编辑制作软件)
  9. Corel Video Studio X5(会声会影)使用注意事项
  10. 春节档预售总票房破4亿元,《满江红》破1亿元暂列第一