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 = 1005; const int M = 1e6 + 5; const int Maxm = 1e5; const int inf = 1 << 30;int n, qn, f[Maxm + 5]; 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 = 0; char ch = 0; int op = 1;for(; ch > '9' || ch < '0'; ch = getchar())if(ch == '-') op = -1;for(; ch >= '0' && ch <= '9'; ch = getchar())X = (X << 3) + (X << 1) + ch - 48;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 = 1; i <= n; i++) read(a[i].sc), read(a[i].sa), read(a[i].sb);read(qn);for(int i = 1; i <= qn; i++) {read(q[i].m), read(q[i].k), read(q[i].s);q[i].id = i;}sort(a + 1, a + 1 + n), sort(q + 1, q + 1 + qn);f[0] = inf;for(int j = 1, i = 1; 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] = 1;}for(int i = 1; i <= qn; i++)puts(ans[i] ? "TAK" : "NIE");return 0; }
View Code
转载于:https://www.cnblogs.com/CzxingcHen/p/9896045.html
Luogu 3537 [POI2012]SZA-Cloakroom相关推荐
- luogu P1549 棋盘问题(2) 题解
luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...
- [Luogu] 选学霸
https://www.luogu.org/problemnew/show/P2170 并查集+DP #include <iostream> #include <cstring> ...
- Luogu 2470 [SCOI2007]压缩
和Luogu 4302 [SCOI2003]字符串折叠 差不多的想法,区间dp 为了计算方便,我们可以假设区间[l, r]的前面放了一个M,设$f_{i, j, 0/1}$表示区间$[i, j]$中是 ...
- 【Luogu】P1613 跑路
[Luogu]P1613 跑路 一.题目 题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资 ...
- Luogu P6055 [RC-02] GCD(莫比乌斯反演,杜教筛)(这题乐死我了,真就图一乐呗)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P6055 Prob ...
- Luogu P3177 [HAOI2015] 树上染色(树上背包)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P3177 [HAOI2015] 树上染色 有一棵点数为 NNN 的树,树边有边权.给你一 ...
- Luogu P4178 Tree (点分治 + 树状数组)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P4178 Prob ...
- Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理,子集反演)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理) Problem n≤1 ...
- BZOJ 2154 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演,经典好题)(Luogu P1829)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P1829 [国家集训队]Crash的数字表格 / JZPTAB(反演,经典好题) Problem S ...
- luogu P3306 [SDOI2013] 随机数生成器(BSGS,数列求通项,毒瘤特判)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 发个水题的 题解证明我还在() luogu P3306 [SDOI2013] 随机数生成器 Webli ...
最新文章
- bat脚本调用函数 简单列子
- Netty解决粘包和拆包问题的四种方案
- 网关流控利器:结合 AHAS 实现 Ingress/Nginx 流量控制
- springMVC获取异步请求的参数,返回异步请求数据(json),跨域访问简单了解,文件上传,与Restful风格
- FreeMarker快速上手
- C语言试题四之计算并输出3到n之间所有素数的平方根之和
- 记一次坑爹报错之旅 -bash: /etc/profile: line 11: syntax error near unexpected token
- UITextField 和 UITextView实现字数限制 输入若干字以后就无法继续输入的功能
- 移动微技(Mobile Widget)应用开发权威指南
- MATLAB深度学习工具箱文档——trainingOptions函数的参数设置
- mp4视频文件截图--h264解码成yuv再转存为bmp图片
- 明星危机公关应该怎么做?
- 牛腩老师讲B/S开发小结 触发器 主键 外键
- Axure实战——实现登录注册功能
- 银河麒麟V10(Kylin Linux V10)之DBeaver安装
- java.sql.SQLException: Access denied for user ''@'localhost' (using password: YES)出现原因及解决方法
- 离散数学-图论-欧拉图、哈密顿图、二部图、平面图(14)
- 标签系统mysql设计_关于tag标签系统的实现
- hive插件 ranger_Ranger Hive-HDFS ACL同步
- 贝尔机:带你领略编码的魅力
热门文章
- 忘记电脑开机密码怎么办
- php 客服工单分配问题,最全客服工单系统功能介绍
- 传统数据处理技术如何与大数据处理技术有机结合
- 笔记本计算机怎么进入安全模式启动,笔记本怎么进入安全模式,详细教您联想笔记本怎么进入安全模式...
- ADL SDK V10.2 中文文档
- c++11:nlohmann::json进阶使用(二)应用adl_serializer解决第三方数据类型(such as uri)的序列化和反序列化
- edgy trees_在Ubuntu Edgy上安装TrueCrypt
- mysql relay_mysql relay log参数汇总
- 学习软件测试必备的网站清单,建议收藏!
- 软件测试之如何测试数据?