4863. 【GDOI2017模拟11.5】Market
来源:互联网 发布:少儿英语 知乎 编辑:程序博客网 时间:2024/05/19 23:13
Description
Data Constraint
Solution
对于60分的解法,我们直接打个背包即可。然后我们发现:M[I]实在太大了,所以我们设出f[i]表示在价值为i的情况下的最小代价,转移方式与原来相同,然后每个询问二分一下答案即可。由于v[i]*n最多只有90000,所以复杂度为O(300n2 )。
Code
#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>#define ll long longusing namespace std;const int maxn=100005,mx=90000;struct code{ int a,b,c;}a[maxn],b[maxn];ll n,m,i,t,j,k,l,r,mid,f[mx+5],ans[maxn],g[mx+5];bool cmp(code x,code y){ return x.c<y.c;}int main(){ freopen("market.in","r",stdin);freopen("market.out","w",stdout);//freopen("data.in","r",stdin);freopen("data.out","w",stdout); scanf("%lld%lld",&n,&m); for (i=1;i<=n;i++) scanf("%lld%lld%lld",&a[i].a,&a[i].b,&a[i].c); sort(a+1,a+n+1,cmp); for (i=1;i<=m;i++) scanf("%lld%lld",&b[i].c,&b[i].a),b[i].b=i; sort(b+1,b+m+1,cmp);j=1; memset(f,127,sizeof(f));f[0]=0;memset(g,127,sizeof(g)); for (i=1;i<=m;i++){ while (a[j].c<=b[i].c && j<=n){ for (k=mx-a[j].b;k>=0;k--) if (f[k]>=0)f[k+a[j].b]=min(f[k+a[j].b],f[k]+a[j].a); for (k=mx;k>=0;k--) g[k]=min(g[k+1],f[k]); j++; } l=0; r=mx; while (l<r){ mid=(l+r+1)/2; if (g[mid]>b[i].a) r=mid-1; else l=mid; } ans[b[i].b]=l; } for (i=1;i<=m;i++) printf("%lld\n",ans[i]);}
3 0
- 4863. 【GDOI2017模拟11.5】Market
- 【GDOI2017模拟11.5】Market
- 【GDOI2017模拟11.5】Market
- JZOJ 4863. 【GDOI2017模拟11.5】Market
- JZOJ 4863 【GDOI2017模拟11.5】Market
- 【GDOI2017】Market
- GDOI2017模拟11.5 总结
- 【GDOI2017模拟11.5】Dash Speed
- 【GDOI2017模拟7.17】两棵树
- 【GDOI2017模拟8.11】总结
- 【GDOI2017模拟8.12】躲藏
- 【GDOI2017模拟8.12】字符串
- 【GDOI2017模拟8.12】新车
- 【GDOI2017模拟8.11】选择
- 【GDOI2017模拟8.11】生物学家
- 【GDOI2017模拟8.15】Game
- 【GDOI2017模拟8.15】Buy
- GDOI2017模拟10.30 总结
- 调整路由器天线角度真的能增强信号?看看砖家怎么说!
- Linux下vim配置IDE
- 在extjs 4,使用combox的store的filter,但是第一次始终不起作用,第二次开始正常。
- drools 规则几个关键字
- 玩命加载中...
- 4863. 【GDOI2017模拟11.5】Market
- 从零使用qemu模拟器搭建arm运行环境
- html标签默认属性值之margin;padding
- Android多分辨率适配框架(3)— 使用指南
- 百度地图api实现定位功能
- 图像翻转 学习遍历像素
- Java并发(一)
- sql修改表的常见问题
- 线段树模板