Luogu3118:[USACO15JAN]Moovie Mooving
题面
传送门
Sol
设f[S]f[S]f[S]表示看过的电影集合为SSS,当前电影的最大结束时间
枚举电影和电影的开始时间转移
可以对开始时间sort" role="presentation">sortsortsort
二分一下转移即可
# include <bits/stdc++.h>
# define IL inline
# define RG register
# define Fill(a, b) memset(a, b, sizeof(a))
using namespace std;
typedef long long ll;
const int _(30);IL ll Input(){RG char c = getchar(); RG ll x = 0, z = 1;for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1;for(; c >= '0' && c <= '9'; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);return x * z;
}int n, l, d[_], start[_][1010], f[1 << 20], mi[30], ans = -1;int main(RG int argc, RG char* argv[]){n = Input(); l = Input();for(RG int i = 1; i <= n; ++i){d[i] = Input(); start[i][0] = Input();for(RG int j = 1; j <= start[i][0]; ++j) start[i][j] = Input();sort(start[i] + 1, start[i] + start[i][0] + 1);}RG int S = 1 << n; mi[1] = 1;for(RG int i = 2; i <= n; ++i) mi[i] = mi[i - 1] << 1;for(RG int i = 0; i < S; ++i)for(RG int j = 1; j <= n; ++j){if(i & mi[j]) continue;RG int k = lower_bound(start[j] + 1, start[j] + start[j][0] + 1, f[i]) - start[j];if(start[j][k] > f[i]) --k; if(start[j][k] <= f[i]) f[i | mi[j]] = max(f[i | mi[j]], start[j][k] + d[j]);}for(RG int i = 0; i < S; ++i)if(f[i] >= l){RG int cnt = 0;for(RG int x = i; x; x -= x & -x) ++cnt;if(ans != -1) ans = min(ans, cnt);else ans = cnt;}printf("%d\n", ans);return 0;
}
Luogu3118:[USACO15JAN]Moovie Mooving相关推荐
- 解题:USACO15JAN Grass Cownoisseur
解题 首先缩点没啥可说的,然后考虑枚举这次逆行的边.具体来说在正常的图和反图上各跑一次最长路,然后注意减掉起点的贡献,用拓扑排序实现(我这里瞎写了个Bellman_Ford,其实在DAG上这好像和拓扑 ...
- 牛客网 【每日一题】5月11日题目精讲 Moovie Mooving
题目链接 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 Bessie is out at t ...
- P3118 [USACO15JAN] 状压 DP + BFS
题意 传送门 P3118 [USACO15JAN]Moovie Mooving 题解 爆搜至少 O(N!)O(N!)O(N!),考虑状态压缩 DPDPDP.dp[i]dp[i]dp[i] 代表集合 i ...
- linux命令看文件内容,Linux文件内容查看相关命令
1.more命令 在Linux中,more命令是一个基于vi编辑器的文本过滤器,它能以全屏的方式按页显示文本文件的内容,more里面内置了一些快捷键. (1)命令语法 more(选项)(参数) (2) ...
- 语法入门*算法入门题单
作者:王清楚 链接:https://ac.nowcoder.com/discuss/817596?type=101&order=0&pos=1&page=4&chann ...
- 【新手上路】语法入门算法入门题单
作者:王清楚 链接:[新手上路]语法入门&算法入门题单_ACM竞赛_ACM/CSP/ICPC/CCPC/比赛经验/题解/资讯_牛客竞赛OJ_牛客网 来源:牛客网 介绍:本题单分为语法入门和算法 ...
- 大数据技术之_19_Spark学习_07_Spark 性能调优 + 数据倾斜调优 + 运行资源调优 + 程序开发调优 + Shuffle 调优 + GC 调优 + Spark 企业应用案例
大数据技术之_19_Spark学习_07 第1章 Spark 性能优化 1.1 调优基本原则 1.1.1 基本概念和原则 1.1.2 性能监控方式 1.1.3 调优要点 1.2 数据倾斜优化 1.2. ...
- golang大厂面试2
golang大厂面试 滴滴 写个二分查找 以下是一个简单的二分查找算法的 Go 语言实现: package mainimport "fmt"// 二分查找函数 func binar ...
- InstallShield内部库函数
InstallShield内部库函数 下载资源:点击 1 库函数综述 InstallShield包含300多个内部库函数,用户可在安装脚本中调用它们来创建程序组,操作文件夹,处理目录,监督安装状态, ...
最新文章
- 2018/5/1 ----1986年图灵奖PPT
- 使用Xcode修改iOS项目工程名和路径名
- 使用css3制作正方形、三角形、扇形和饼状图
- Java面试宝典之开源框架!
- 理解ORACLE数据库字符集
- 云计算的关键特点及挑战
- 关于pycharm deployment消失的问题
- 一文让你彻底搞懂主成成分分析PCA的原理及代码实现(超详细推导)
- USB chirp信号测试
- ADC SFDR无杂散动态范围
- 分形艺术能让你感受上帝的力量——新锐100设计师风达专访
- 网络爬虫——豆瓣电影排行榜数据抓取(高级)
- 悬挂缩进 java,c#Word Interop - 设置段落缩进
- Android开发中的drawable-(hdpi,mdpi,ldpi)和WVGA,HVGA,QVGA的区别以及联系
- Cucumber测试实践
- Matlab之图像变换技术(十二)
- 多贝网 --Java后台实习生面试题
- 我的保研经历——中国科学院计算技术研究所
- 离散余弦变换 DCT
- 看漫画学python pdf下载_比无知更悲凉的是好像学过,看完一本漫画,他把python基础啃透了...