小明游天界
题目大意
有一些景点相互连通,需要z个单位时间。
他用刚好m个单位时间到达终点,包括起点和终点最多能游览多少个不同或相同景点(重复游览相同的景点也算入答案)。
若不能用刚好m个单位时间到达终点,则输出-1。
输入样例
5 12 4
1 2 5
1 4 3
4 2 4
2 5 5
输出样例
4
数据范围
对于30%的数据,1≤n≤50,m≤1≤t≤100
对于100%的数据,1≤n≤1000,0≤m≤1000,1≤t≤50000,且每个景点到其他景点的道路不超过1000条
思路
这道题可以用dp来做。
设f[i]][j]f[i]][j]f[i]][j]为在i个时间单位内刚好到达点j最多能经过多少景点,枚举每一个时间的每一条路径,动态转移方程就很好推出来了。
代码
#include<cstdio>
#include<iostream>
using namespace std;
int n,m,t,x