/*
orz claris,这个题的解法非常巧妙,首先是时间问题,其实这个问题只要离线处理一下就可以了,把物品和询问都按照时间排序,然后看一下能不能满足。然后,因为容量<=10^9,显然是不可能开一个这么大的数组,而且这么大一个容量,价值又很小,我们可以考虑用二分解决
对每个询问二分答案,需要判定用容量为 M 的背包是否可
以装下 mid 的价值。
设 fi 表示装了 i 价值所需的最小容量,gi 表示
min(fi,fi+1,fi+2,……)。
那么只需要检查 gmid 是否不超过 M 即可。
时间复杂度 O(n2v + m log m)。
*/
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=,M=,inf=;
int n,m,lim,i,j,f[M],ans[M];
struct P{int t,c,v;}a[N];
struct Q{int t,m,p;}b[M];
bool cmpP(const P&a,const P&b){return a.t<b.t;}
bool cmpQ(const Q&a,const Q&b){return a.t<b.t;}
void add(int c,int v){
for(int i=lim;i>=v;i--)f[i]=min(f[i],f[i-v]+c);
for(int i=lim-;~i;i--)f[i]=min(f[i],f[i+]);
}
int ask(int x){
int l=,r=lim,mid,t;
while(l<=r)if(f[mid=(l+r)>>]<=x)l=(t=mid)+;else r=mid-;
return t;
}
int main(){
freopen("market.in","r",stdin);freopen("market.out","w",stdout);
scanf("%d%d",&n,&m);lim=n*;
for(i=;i<=n;i++)scanf("%d%d%d",&a[i].c,&a[i].v,&a[i].t);
for(i=;i<=m;i++)scanf("%d%d",&b[i].t,&b[i].m),b[i].p=i;
sort(a+,a+n+,cmpP);
sort(b+,b+m+,cmpQ);
for(i=;i<=lim;i++)f[i]=inf;
for(i=j=;i<=m;i++){
while(j<=n&&a[j].t<=b[i].t)add(a[j].c,a[j].v),j++;
ans[b[i].p]=ask(b[i].m);
}
for(i=;i<=m;i++)printf("%d\n",ans[i]);
fclose(stdin);fclose(stdout);
return ;
}

LYDSY模拟赛day2 Market的更多相关文章

  1. LYDSY模拟赛day2 Divisors

    /* 注意分解质因数,如果i是,那么n/i也是,这样就可以解决分解质因数的时间问题了 当 k ≥ 1 时,只有这些数的约数才会对答案产生贡献. 求出 m 个数的所有不超过 n 的约数,去重后统计即可. ...

  2. LYDSY模拟赛day2 Dash Speed

    /* 弃坑 */ #include<cstdio> #include<algorithm> using namespace std; ,M=N*; ],nxt[N<< ...

  3. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

  4. CH Round #49 - Streaming #4 (NOIP模拟赛Day2)

    A.二叉树的的根 题目:http://www.contesthunter.org/contest/CH%20Round%20%2349%20-%20Streaming%20%234%20(NOIP 模 ...

  5. CH Round #55 - Streaming #6 (NOIP模拟赛day2)

    A.九九归一 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2355%20-%20Streaming%20%236%20(NOIP模拟赛day2)/九九归一 题 ...

  6. LYDSY模拟赛day9 2048

    /* 大模拟题,做的时候思路还是比较清晰的 */ #include<iostream> #include<cstdio> #include<string> #inc ...

  7. CH Round #55 - Streaming #6 (NOIP模拟赛day2)解题报告

    T1九九归一 描述 萌蛋在练习模n意义下的乘法时发现,总有一些数,在自乘若干次以后,会变成1.例如n=7,那么5×5 mod 7=4,4×5 mod 7=6,6×5 mod 7=2,2×5 mod 7 ...

  8. PKUSC 模拟赛 day2 下午总结

    终于考完了,下午身体状况很不好,看来要锻炼身体了,不然以后ACM没准比赛到一半我就挂掉了 下午差点AK,有一道很简单的题我看错题面了所以没有A掉 第一题显然是非常丝薄的题目 我们很容易通过DP来O(n ...

  9. 【洛谷】NOIP提高组模拟赛Day2【动态开节点/树状数组】【双头链表模拟】

    U41571 Agent2 题目背景 炎炎夏日还没有过去,Agent们没有一个想出去外面搞事情的.每当ENLIGHTENED总部组织活动时,人人都说有空,结果到了活动日,却一个接着一个咕咕咕了.只有不 ...

随机推荐

  1. 《InsideUE4》UObject(一)开篇

    UE生UObject,UObject生万物 引言 在上个GamePlay专题,谈到UE创建游戏世界的时候(GamePlay架构(一)Actor和Component),简单的介绍了一下UObject的功 ...

  2. UI自动化,你值得拥有

    去年春节联欢晚会,为了那张“敬业福”,全家都卯足了劲儿“咻一咻”,连节目都顾不上看了.当时我就想,要是能自动化该多好,不停点击屏幕,屏幕不疼手还疼呢,何况还不好分心,生怕错过了“敬业福”.玩“咻一咻” ...

  3. 电脑控制Android设备的软件——Total Control

    最早开始搞Android开发时,为了调试方便,想找一个Android下的远程控制软件,支持在电脑端远程控制和同步显示Android设备.先后试了360手机助手.Mobizen.Vysor和Mirror ...

  4. BZOJ 3524: [Poi2014]Couriers [主席树]

    3524: [Poi2014]Couriers Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 1892  Solved: 683[Submit][St ...

  5. UVA11090 Going in Cycle!! [spfa负环]

    https://vjudge.net/problem/UVA-11090 平均权值最小的回路 为后面的做个铺垫 二分最小值,每条边权减去他,有负环说明有的回路平均权值小于他 spfa求负环的时候可以先 ...

  6. c语言中的scanf在java中应该怎么表达,Scanner类。

    1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...

  7. Winform程序Chrome内核 WebBrowser 控件

    准备工作 Chrome浏览器的内核不叫Chrome,而是Webkit,因此,我们只要找到Webkit的项目就好了. 1.下载WebKit的项目bin,网址如下: https://sourceforge ...

  8. Django 1.9 Post 时候出现 CSRF token missing or incorrect 错误

    get 的时候没有问题,只有在post的时候出现出现这个错误 在方法中加入 @csrf_exempt

  9. 【USACO 3.1】Score Inflation(完全背包)

    完全背包. http://train.usaco.org/usacoprob2?a=3Srffjlf4QI&S=inflate /* TASK:inflate LANG:C++ URL: */ ...

  10. jquery 离开页面提示信息

    <script> $(window).bind('beforeunload', function () { return '您输入的内容尚未保存,确定离开此页面吗?'; });</s ...