【JZOJ4863】Market
来源:互联网 发布:更改网卡mac地址win10 编辑:程序博客网 时间:2024/06/05 22:50
Description
现在有一些物品,第
Data Constraint
Solution
对询问和物品按照时间排序,按照询问依次加入物品。
设
我们发现价值很小,于是我们可以设
找答案时就取个后缀最小值,二分答案即可。
Code
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#define fo(i,j,k) for(int i=j;i<=k;i++)#define fd(i,j,k) for(int i=j;i>=k;i--)#define N 310#define M 100010#define ll long longusing namespace std;struct node{ int c,v,t;}b[N];struct node1{ int m,t,c;}c[M];int f[M],g[M+1];int z[M];bool cmp(node x,node y){ return x.t<y.t;}bool cmp1(node1 x,node1 y){ return x.t<y.t;}int main(){ freopen("market.in","r",stdin); freopen("market.out","w",stdout); int n,m; cin>>n>>m; fo(i,1,n) scanf("%d %d %d",&b[i].c,&b[i].v,&b[i].t); fo(i,1,m) scanf("%d %d",&c[i].t,&c[i].m),c[i].c=i; sort(b+1,b+n+1,cmp); sort(c+1,c+m+1,cmp1); int q=0; memset(f,60,sizeof(f)); f[0]=0; memset(g,60,sizeof(g)); fo(i,1,m) { while(b[q+1].t<=c[i].t && q<n) { q++; g[M]=2147483647; fd(j,M-1,0) { if(j>=b[q].v) { if(f[j]>f[j-b[q].v]+b[q].c) { f[j]=f[j-b[q].v]+b[q].c; } } g[j]=min(f[j],g[j+1]); } g[0]=0; } int ans=0; int l=0,r=M-1; while(l+1<r) { int mid=(l+r)/2; if(g[mid]<=c[i].m) l=mid; else r=mid; } ans=l; if(g[r]<=c[i].m) ans=r; z[c[i].c]=ans; } fo(i,1,m) printf("%d\n",z[i]);}
1 0
- 【JZOJ4863】Market
- JZOJ4863. Market
- 【jzoj4863】【Market】
- Market
- Market
- Market
- Market
- Market-Sales
- Yiwu market
- Android Market
- market depth
- Android Market
- deploy market
- Market - Promote
- Android Market
- market排名
- API Market
- 【GDOI2017】Market
- loading...
- 通过简单Spring事例理解SpringIOC思想
- 基于ID3算法生成决策树
- CycLock
- 2011年南海初中竞赛 数根
- 【JZOJ4863】Market
- 欢迎使用CSDN-markdown编辑器
- 蓝桥杯 未名湖边的烦恼
- 天池初体验——新人实战赛之[离线赛]
- 【设计模式】设计模式一句话总结
- Javascript基础——深入了解Javascript(函数返回值return、函数传参arguments、兼容各浏览器的单一行间样式、元素的插入删除split/shift/sort/pop)
- 笔试题汇总(1)
- Common CV related libaray
- Dash speed