题目描述

DP

按dfs序处理出前缀和后缀背包数组。
设的是f[v]表示纪念品价格的和至少为v所需的最小支出。
询问时two pointer即可。
关于空间可以用unsigned int。
然后我被卡常了???

#include<cstdio>
#include<algorithm>
#define fo(i,a,b) for(i=a;i<=b;i++)
#define fd(i,a,b) for(i=a;i>=b;i--)
#define min(a,b) (a<b?a:b)
#define max(a,b) (a>b?a:b)
using namespace std;
typedef long long ll;
const int maxn=1000+10,maxv=50000+10;
const int inf=2000000050;
int pre[maxn][maxv],suf[maxn][maxv],t,r;
int h[maxn],go[maxn*2],next[maxn*2],dfn[maxn],nfd[maxn],size[maxn],v[maxn],c[maxn];
int sta[80];
int i,j,k,l,n,m,tot,top,euler,ans,mx;
int read(){ll x=0,f=1;char ch=getchar();while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}while (ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
void add(int x,int y){go[++tot]=y;next[tot]=h[x];h[x]=tot;
}
void dfs(int x,int y){dfn[x]=++top;nfd[top]=x;int t=h[x];size[x]=1;while (t){if (go[t]!=y){dfs(go[t],x);size[x]+=size[go[t]];}t=next[t];}
}
void write(int x){if (!x){putchar('0');putchar('\n');return;}top=0;while (x){sta[++top]=x%10;x/=10;}while (top) putchar('0'+sta[top--]);putchar('\n');
}
int main(){freopen("plan.in","r",stdin);freopen("plan.out","w",stdout);n=read();fo(i,1,n-1){j=read();k=read();add(j,k);add(k,j);}fo(i,1,n) v[i]=read(),mx+=v[i],c[i]=read();dfs(1,0);fo(i,1,mx) pre[0][i]=inf;fo(i,1,n){fo(j,0,mx) pre[i][j]=pre[i-1][j];t=nfd[i];k=v[t];r=c[t];fd(j,mx,k) pre[i][j]=min(pre[i][j],pre[i][j-k]+r);fd(j,mx-1,0) pre[i][j]=min(pre[i][j],pre[i][j+1]);}fo(i,1,mx) suf[n+1][i]=inf;fd(i,n,1){fo(j,0,mx) suf[i][j]=suf[i+1][j];t=nfd[i];k=v[t];r=c[t];fd(j,mx,k) suf[i][j]=min(suf[i][j],suf[i][j-k]+r);fd(j,mx-1,0) suf[i][j]=min(suf[i][j],suf[i][j+1]);}m=read();while (m--){r=read();t=read();l=dfn[r]-1;r=dfn[r]+size[r];ans=0;k=0;fd(j,mx,0){//if (pre[l][j]>t) continue;while (k<mx&&(ll)pre[l][j]+(ll)suf[r][k+1]<=t) k++;if (pre[l][j]+suf[r][k]<=t){ans=max(ans,j+k);}}write(ans);}
}

Travel Plan相关推荐

  1. PAT甲级1030 Travel Plan (30分):[C++题解]dijkstra求单源最短路、保存路径

    文章目录 题目分析 题目链接 题目分析 来源:PAT网站 分析 dijkstra模板默写过来,然后多了一个保存路径,使用数组pre[N]记录最短路上每个点的前驱,通过pre数组保存到vector中 v ...

  2. 1030 Travel Plan(甲级)

    1030 Travel Plan (30分) A traveler's map gives the distances between cities along the highways, toget ...

  3. 以未来式计算机为题目的作文,一般将来时:my travel plan为题作文

    满意答案 z4255621 2016.06.12 采纳率:43%    等级:12 已帮助:10511人 找了两则,供您参考.希望有所帮助哈. My Travel Plan--01 I have a ...

  4. 【PAT】【spfa + dfs】1030 Travel Plan (30 分)

    题目链接:1030 Travel Plan (30 分) A traveler's map gives the distances between cities along the highways, ...

  5. PAT甲级 1030 Travel Plan

    PAT甲级 1030 Travel Plan 题目链接 A traveler's map gives the distances between cities along the highways, ...

  6. 1030 Travel Plan (30 分) 【难度: 中 / 知识点: 最短路】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805464397627392 先跑一下Dijkstra() 然后再dfs( ...

  7. 【讲解】1030 Travel Plan (30 分)【DFS】_41行代码Ac

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 A traveler's map gives the distances between cities along the hig ...

  8. 1030 Travel Plan (30分)(俺是个粗人)

    就保存所有的路径,找出最短最便宜的叭 #include<iostream> #include<vector> #include<limits.h> using na ...

  9. 1030 Travel Plan (30 分)

    题目链接: PTA | 程序设计类实验辅助教学平台千名教师建设,万道高质量题目,百万用户拼题的程序设计实验辅助教学平台https://pintia.cn/problem-sets/9948053427 ...

最新文章

  1. 第三周项目三-输出星号图(3)
  2. 设计模式:原型模式(Prototype)
  3. T1串口波特率的计算方法
  4. [SpringBoot2]Thymeleaf
  5. c语言if不能判断u8变量值,C语言变量名命规则.doc
  6. 高一计算机专业班主任工作总结,2016学年上学期高一班主任工作总结
  7. 【flink】Flink 1.12.2 源码浅析 : yarn-per-job模式解析 从脚本到主类
  8. 【转】移动互联网应用测试成长技能树V1.0
  9. icloudbypassca工具win版_Photoshop插件提示无法加载扩展,因为它未经正确签署的解决办法(win/mac)...
  10. Java String startsWith()方法
  11. 计算机杀病毒软件的应用有哪些,电脑杀蠕虫病毒软件有哪些
  12. 沙盘模拟软件_重大消息:企业经营沙盘招新啦
  13. 和利时dcs系统服务器设置,和利时DCS控制系统组态流程
  14. 大数据——舆情监控系统
  15. 操练Draco的代码
  16. Typescript基础知识--学习笔记
  17. Dining (网络流)
  18. 导出为excel无法引用解决方法
  19. 联想拯救者y9000k和y9000p的区别
  20. SpringBoot中出现 No qualifying bean of type ‘com.tanhua.server.mapper.UserInfoMapper‘ available: expect

热门文章

  1. 网易视频云:用Nginx搭建flv,mp4,hls流媒体服务
  2. 【笔试面试记录】测绘地理信息遥感类面试相关问题记录
  3. gor 测试环境搭建
  4. centos7使用命令行查看开机启动项和服务启动状态
  5. JiaThis 分享快速运用
  6. Joystick手柄输入
  7. 《2020年IT行业项目管理调查报告》重磅发布
  8. 内容推荐算法简单实现(余弦公式)
  9. dwa算法实现局部路径规划——基于python
  10. 高校信息泄露成常态,2万余名学生个人信息被贩卖