哎一开始看错题了啊T T...最近状态一直不对...最近很多傻逼题都不会写了T T

  考虑距离较大肯定不能塞进状态...钱数<=n^2能够承受, 油量再塞就不行了...显然可以预处理出点i到j走ci步的最长距离(一开始以为一条路耗油为路的长度T T), 这个是经典题, 倍增求就好了...然后就可以转移了呀T T

  最后二分就好了呀T T...

  我怎么这么菜啊, 还写了好久T T...

  一开始还写成n^4logn TLE了半天没查到错

#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int maxn=, inf=1e9;
int n, m, C, T, l, r, up, x, y, z;
int f[maxn][maxn][maxn], g[maxn][maxn*maxn], mi[maxn], p[maxn], c[maxn], dis[maxn][maxn], tmp[maxn], dist[maxn];
inline void read(int &k)
{
int f=; k=; char c=getchar();
while(c<'' || c>'') c=='-'&&(f=-), c=getchar();
while(c<='' && c>='') k=k*+c-'', c=getchar();
k*=f;
}
inline int max(int a, int b){return a>b?a:b;}
inline void solve(int x, int step)
{
for(int i=;i<=n;i++) tmp[i]=dist[i]=(i==x)?:-inf;
for(int now=;now<=up;now++)
if(step&(<<now))
{
for(int i=;i<=n;i++)tmp[i]=dist[i];
for(int k=;k<=n;k++)
for(int j=;j<=n;j++)
dist[j]=max(dist[j], tmp[k]+f[k][j][now]);
}
for(int i=;i<=n;i++) dis[x][i]=dist[i];
}
int main()
{
read(n); read(m); read(C); read(T);
for(int i=;i<=n;i++) read(p[i]), read(c[i]);
up=floor(log2(C));
for(int i=;i<=n;i++) for(int j=;j<=n;j++) for(int k=;k<=up;k++) f[i][j][k]=(i==j)?:-inf;
for(int i=;i<=m;i++) read(x), read(y), read(z), f[x][y][]=z;
for(int l=;l<=up;l++)
for(int k=;k<=n;k++)
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
f[i][j][l]=max(f[i][j][l], f[i][k][l-]+f[k][j][l-]);
for(int i=;i<=n;i++) for(int j=;j<=n;j++) for(int k=;k<=up;k++) f[i][j][k]=max(f[i][j][k], f[i][j][k-]);
for(int i=;i<=n;i++) solve(i, c[i]);
for(int i=;i<=n*n;i++)
for(int j=;j<=n;j++)
{
if(i) g[j][i]=g[j][i-];
if(i>=p[j]) for(int k=;k<=n;k++) g[j][i]=max(g[j][i], g[k][i-p[j]]+dis[j][k]);
}
while(T--)
{
read(x); read(y); read(z);
if(g[x][y]<z){puts("-1"); continue;}
int l=, r=y;
while(l<r)
{
int mid=(l+r)>>;
if(g[x][mid]>=z) r=mid;
else l=mid+;
}
printf("%d\n", y-l);
}
}

LibreOJ #539. 「LibreOJ NOIP Round #1」旅游路线(倍增+二分)的更多相关文章

  1. LOJ #539. 「LibreOJ NOIP Round #1」旅游路线 倍增floyd + 思维

    考试的时候是这么想的: 求出每一个点花掉 $i$ 的花费向其他点尽可能走的最长距离,然后二分这个花费,找到第一个大于 $d$ 的就输出$.$然而,我这个记忆化搜索 $TLE$ 的很惨$.$这里讲一下正 ...

  2. 【LibreOJ】#539. 「LibreOJ NOIP Round #1」旅游路线

    [题意]给定正边权有向图,车油量上限C,每个点可以花费pi加油至min(C,ci),走一条边油-1,T次询问s点出发带钱q,旅行路程至少为d的最多剩余钱数. n<=100,m<=1000, ...

  3. LOJ#539. 「LibreOJ NOIP Round #1」旅游路线

    n<=100,m<=1000的图,在此图上用油箱容量C<=1e5的车来旅行,旅行时,走一条边会耗一单伟油,在点i时,若油量<ci,则可以把油以pi的价格补到ci,pi<= ...

  4. 「LOJ 539」「LibreOJ NOIP Round #1」旅游路线

    description 题面较长,这里给出题目链接 solution 考虑预处理出\(f[i][j]\)表示在第\(i\)个点加满油后,从第\(i\)个点出发,至多消耗\(j\)元钱走过的最大路程,那 ...

  5. LibreOj #539. 「LibreOJ NOIP Round #1」旅游路线

    题目链接 做完这道题,我深知当一个问题复杂度过高的时候,把一些可以分离的操作都分散开,可以大幅度降低复杂度..... 发现无论有多少钱,每到一个点后扩展到的距离被限制在 \(min(C, c[i])\ ...

  6. 「LibreOJ NOIP Round #1」旅游路线

    Description T 城是一个旅游城市,具有 nnn 个景点和 mmm 条道路,所有景点编号为 1,2,...,n1,2,...,n1,2,...,n.每条道路连接这 nnn 个景区中的某两个景 ...

  7. LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力

    二次联通门 : LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 /* LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 叫做计算几 ...

  8. LibreOJ #528. 「LibreOJ β Round #4」求和

    二次联通门 : LibreOJ #528. 「LibreOJ β Round #4」求和 /* LibreOJ #528. 「LibreOJ β Round #4」求和 题目要求的是有多少对数满足他们 ...

  9. LibreOJ #527. 「LibreOJ β Round #4」框架

    二次联通门 : LibreOJ #527. 「LibreOJ β Round #4」框架 /* LibreOJ #527. 「LibreOJ β Round #4」框架 %% xxy dalao 对于 ...

随机推荐

  1. hdu1042 N!(大数求阶乘)

    N! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submi ...

  2. html查漏补缺之meta标签

    什么是meta标签? meta标签是html标记head区的一个关键标签,它位于HTML文档的<head>和<title>之间(有些也不是在<head>和<t ...

  3. 关于js回调方法 js递归时使用方法

    js中递归调用本身可以这样: function a1(n){ a1(n)}但是如果需要在参数n进行自增的情况下判断会出错: function a1(n){ if(n>10) return 'aa ...

  4. Lua学习笔记(4): 字符串

    Lua的字符串有3种初始化方式 str = "2333" str = 'hahahaha' str = [[ruarua]] 其中单引号和双引号的初始化方式并无区别,[[]]双中括 ...

  5. 虹软2.0版本离线人脸识别C#类库分享

    目前只封装了人脸检测部分的类库,供大家交流学习,肯定有问题,希望大家在阅读使用的时候及时反馈,谢谢!使用虹软技术开发完成 戳这里下载SDKgithub:https://github.com/dayAn ...

  6. Scrum立会报告+燃尽图 04

    此作业要求参见https://edu.cnblogs.com/campus/nenu/2018fall/homework/2194 一.小组介绍 组长:王一可 组员:范靖旋,王硕,赵佳璐,范洪达,祁玉 ...

  7. SSD/Memory技术学习拼图

    "打酱油"解读SLC缓存新技术[http://www.pceva.com.cn/article/3612-1.html] 固态硬盘主控将消亡?未来高性能固态硬盘长这样[http:/ ...

  8. IP ,路由

    ifconfig 命令       ip信息   enp0s3: flags=4163<UP(已经启用),BROADCAST(支持广播),RUNNING,MULTICAST(支持多播)> ...

  9. "firstday"-软件工程

    阅读以下文章 http://www.thea.cn/news/terminal/9/9389.html    http://www.shzhidao.cn/system/2015/09/22/0102 ...

  10. paoding rose controller包及文件名命名规则

    1.包命名规则:xxx.xxx.controllers(否则扫描不到)