Luogu 3537 [POI2012]SZA-Cloakroom
背包。
首先考虑将所有询问离线按照$m$从小到大排序,然后把所有物品按照$a$从小到大排序,对于每一个询问不断加入物品。
设$f_i$表示在组成容量为$i$的背包的所有方案中$b$最小的一个物品的最大$b$是多少,对于物品$i$和容量$j$,有转移$f_j = max(f_j, min(f_{j - c_i}, b_i))$。
时间复杂度$O(MaxK * n)$,感觉非常紧,实际上还行。
Code:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; const int N = ;
const int M = 1e6 + ;
const int Maxm = 1e5;
const int inf = << ; int n, qn, f[Maxm + ];
bool ans[M]; struct Item {
int sa, sb, sc; friend bool operator < (const Item &x, const Item &y) {
return x.sa < y.sa;
} } a[N]; struct Querys {
int m, k, s, id; friend bool operator < (const Querys &x, const Querys &y) {
return x.m < y.m;
} } q[M]; inline void read(int &X) {
X = ; char ch = ; int op = ;
for(; ch > '' || ch < ''; ch = getchar())
if(ch == '-') op = -;
for(; ch >= '' && ch <= ''; ch = getchar())
X = (X << ) + (X << ) + ch - ;
X *= op;
} inline int min(int x, int y) {
return x > y ? y : x;
} inline void chkMax(int &x, int y) {
if(y > x) x = y;
} int main() {
read(n);
for(int i = ; i <= n; i++)
read(a[i].sc), read(a[i].sa), read(a[i].sb);
read(qn);
for(int i = ; i <= qn; i++) {
read(q[i].m), read(q[i].k), read(q[i].s);
q[i].id = i;
} sort(a + , a + + n), sort(q + , q + + qn);
f[] = inf;
for(int j = , i = ; i <= qn; i++) {
for(; j <= n && a[j].sa <= q[i].m; ++j) {
for(int k = Maxm; k >= a[j].sc; k--)
chkMax(f[k], min(f[k - a[j].sc], a[j].sb));
}
if(f[q[i].k] > q[i].m + q[i].s) ans[q[i].id] = ;
} for(int i = ; i <= qn; i++)
puts(ans[i] ? "TAK" : "NIE"); return ;
}
Luogu 3537 [POI2012]SZA-Cloakroom的更多相关文章
- Luogu 3530 [POI2012]FES-Festival
我是真的不会写差分约束啊呜呜呜…… BZOJ 2788被权限了. 首先对于第一个限制$x + 1 = y$,可以转化成$x + 1 \leq y \leq x + 1$, 所以连一条$(y, x, - ...
- Luogu P3546 [POI2012]PRE-Prefixuffix 神奇的递推+哈希
设$f[i]$表示切掉前$i$位和后$i$位后,即剩下$s[i+1]到s[n-i]$,的公共前后缀长度.此时我们发现,$f[i-1]$相对于$f[i]$少切了两个$char$,所以有$f[i-1]\l ...
- LUOGU P3539 [POI2012]ROZ-Fibonacci Representation
传送门 解题思路 打了个表发现每次x只会被比x大的第一个fab或比x小的第一个fab表示,就直接写了个爆搜骗分,结果过了.. 代码 #include<iostream> #include& ...
- [BZOJ2794][Poi2012]Cloakroom
2794: [Poi2012]Cloakroom Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 167 Solved: 119[Submit][St ...
- 【BZOJ2794】[Poi2012]Cloakroom 离线+背包
[BZOJ2794][Poi2012]Cloakroom Description 有n件物品,每件物品有三个属性a[i], b[i], c[i] (a[i]<b[i]).再给出q个询问,每个询问 ...
- BZOJ 2794 [Poi2012]Cloakroom(离线+背包)
2794: [Poi2012]Cloakroom Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 406 Solved: 241[Submit][St ...
- BZOJ2794[Poi2012]Cloakroom——离线+背包
题目描述 有n件物品,每件物品有三个属性a[i], b[i], c[i] (a[i]<b[i]).再给出q个询问,每个询问由非负整数m, k, s组成,问是否能够选出某些物品使得:1. 对于每个 ...
- #13【BZOJ2794】[Poi2012]Cloakroom
题解: 感觉真是很智障..连这么简单的题都没想出来 一直在想这么做动态背包..发现不会 首先显然我们将询问按照m 序列按照a[i]排序 然后怎么满足b呢 其实很简单啊..只需要记录f[i]表示前面这些 ...
- bzoj 2794 [Poi2012]Cloakroom 离线+背包
题目大意 有n件物品,每件物品有三个属性a[i], b[i], c[i] (a[i]<b[i]). 再给出q个询问,每个询问由非负整数m, k, s组成,问是否能够选出某些物品使得: 对于每个选 ...
随机推荐
- 【经典】Noip贪心
一.经典例题 例一:排队接水 题意:n个人到r个水龙头接水,装满水桶的时间分别是t1,t2,t3.... 接水时间是整数且互不相等,怎样安排顺序使每个人等待的 时间和最小. 题解:排队越靠前计算次数越 ...
- datetimefield和datefield的区别
django创建关于时间的model时,有三个可选,datetimefield.datefield和timefield,这三个分别对应datetime.date.time对象,这三个对象都有共同的属性 ...
- 什么是镜头shading
shading分为两种: Lens Shading:由于Lens的光学特性,Sensor影像区的边缘区域接收的光强比中心小,所造成的中心和四角亮度不一致的现象. color shading:由于LEN ...
- mysql 创建用户自定义函数(转可运行)
set global log_bin_trust_function_creators = 1; -- 开启bin_log 复制 函数创建DROP FUNCTION IF EXISTS hello; - ...
- 在centos6.6中mysql5.5的编译、安装、配置
今天根据需求要在centos6.6上编译安装mysql5.5,因为以前编译安装过感觉很简单,但是今天还是出现了点小问题,所以把过安装过程总结了一下: 好像从mysql5.5开始编译安装mysql需要用 ...
- 常用JavaScript操作页面元素的方法
1.取得dropdownlist的选中值 var ddl =document.getElementById('<%=ddlusers.ClientID%>'); var index = d ...
- shell 正则表达式与文件名匹配
1) . : 匹配任意单ASCII 字符,可以为字母,或为数字. 2) 举例: ..XC..匹配deXC1t.23XCdf 等,.w..w..w.匹配rwxrw-rw- 行首以^匹配字符串或字符序列 ...
- 【转】使用JMeter测试你的EJB
对EJB进行一些性能基准测试是非常有必要和有帮助的,测试的方法和工具有很多,不过我最近发现,Apache JMeter是进行基准测试的一个优秀工具.可惜的是,JMeter没有提供一个可测试任意EJB的 ...
- 【转】Jmeter + DadBoby 安装使用
一直接触LR比较多,这阵子突然想了解一下开源的性能测试工具,无意中接触到了Jmeter+Badboy,这两款工具对于想进行性能测试,但又对LR高额的商业费用望而止步的小公司可谓是再适合不过了. 自已小 ...
- java代码反转toCharAT()的用法
总结:反转注意for循环里面的变化 package clientFrame; //字符串反转 public class we { public static void main(String[] ar ...