bzoj3389
3389: [Usaco2004 Dec]Cleaning Shifts安排值班
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 367 Solved: 141
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 7
3 6
6 10
Sample Output
样例说明
奶牛1和奶牛3参与值班即可.
HINT
Source
- #include <bits/stdc++.h>
- using namespace std;
- const int N = , inf = 0x3f3f3f3f;
- struct line {
- int l, r;
- } x[N];
- int n, t;
- int dp[N] ,tree[N << ];
- bool cp(line x, line y)
- {
- if(x.l != y.l) return x.l < y.l;
- return x.r > y.r;
- }
- void update(int l, int r, int x, int pos, int num)
- {
- if(l == r)
- {
- tree[x] = min(tree[x], num);
- return;
- }
- int mid = (l + r) >> ;
- if(pos <= mid) update(l ,mid ,x << , pos, num);
- else update(mid + , r, x << | , pos, num);
- tree[x] = min(tree[x << ], tree[x << | ]);
- }
- int query(int l, int r, int x, int a, int b)
- {
- if(l > b || r < a) return inf;
- if(l >= a && r <= b) return tree[x];
- int mid = (l + r) >> ;
- return min(query(l, mid, x << , a, b) ,query(mid + , r, x << | , a, b));
- }
- int main()
- {
- memset(tree, 0x3f3f, sizeof(tree));
- memset(dp, 0x3f3f, sizeof(dp));
- scanf("%d%d", &n ,&t);
- for(int i = ; i <= n; ++i) scanf("%d%d", &x[i].l, &x[i].r);
- sort(x + , x + n + , cp);
- if(x[].l != )
- {
- puts("-1");
- return ;
- }
- dp[x[].r] = ; update(, t, , x[].r, );
- for(int i = ; i <= n; ++i)
- {
- int l = x[i].l, r = x[i].r;
- dp[r] = min(dp[r], query(, t, , l - , r) + );
- update(, t, , r, dp[r]);
- }
- printf("%d\n", dp[t] > n ? - : dp[t]);
- return ;
- }
bzoj3389的更多相关文章
- [bzoj3389][Usaco2004Dec]Cleaning Shifts安排值班_最短路
Cleaning Shifts bzoj-3389 Usaco-2004Dec 题目大意:每天有n个时间段,每个时间段都必须安排一个奶牛值班.有m个奶牛,每个奶牛只有一个空闲时间s[i]~e[i],求 ...
- bzoj3389:[Usaco2004 Dec]Cleaning Shifts安排值班
思路:可以贪心,也可以最短路. 贪心写法:因为在保证合法的前提下,我们选择的区间一定要右端点尽量靠后才行,于是我们每次就选择一个合法的并且右端点最靠后的区间就好了(如果没有合法的输出-1即可).时间复 ...
- BZOJ3389: [Usaco2004 Dec]Cleaning Shifts安排值班
3389: [Usaco2004 Dec]Cleaning Shifts安排值班 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 45 Solved: ...
- 8.11-8.16:usaco
summary:57 bzoj1741:裸二分图最大匹配 #include<cstdio> #include<cstring> #include<iostream> ...
- [转载]hzwer的bzoj题单
counter: 664BZOJ1601 BZOJ1003 BZOJ1002 BZOJ1192 BZOJ1303 BZOJ1270 BZOJ3039 BZOJ1191 BZOJ1059 BZOJ120 ...
- BZOJ刷题列表【转载于hzwer】
沿着黄学长的步伐~~ 红色为已刷,黑色为未刷,看我多久能搞完吧... Update on 7.26 :之前咕了好久...(足见博主的flag是多么emmm......)这几天开始会抽时间刷的,每天几道 ...
随机推荐
- bzoj1202:[HNOI2005]狡猾的商人 【并查集】
Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3...n-1,n), .当 ...
- 最长回文(hdu 3068)
Problem Description 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如aba, abba等 Input 输入有 ...
- 任意两点间最短距离floyd-warshall ---- POJ 2139 Six Degrees of Cowvin Bacon
floyd-warshall算法 通过dp思想 求任意两点之间最短距离 重复利用数组实现方式dist[i][j] i - j的最短距离 for(int k = 1; k <= N; k++) f ...
- SQL SERVER 2012 第三章 T-SQL 基本语句 having子句
SELECT ManagerID AS Manager,COUNT(*) AS Reports FROM Human.Resources.Employee2 WHERE EmployeeID !=5 ...
- SVN 学习笔记-高级操作
所谓高级操作,只是曲高和寡,其实都不怎么用的.但是关键时候,可能会很有用. 这个高级只是针对基本操作而言.有些操作可能也是比较基本的. 清除锁 有时候我们在操作的时候,可能系统崩溃了,或者SVN非正常 ...
- Spring中实现自定义事件
原理: 通过扩展ApplicationEvent,创建一个事件类CustomEvent.这个类必须定义一个默认的构造函数,它应该从ApplicationEvent类中继承的构造函数. 一旦定义事件类, ...
- 在Studio中使用Access数据库时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”
错误提示:
- 原来,表名和字段名不能在pdo中“参数化查询”
https://stackoverflow.com/questions/182287/can-php-pdo-statements-accept-the-table-or-column-name-as ...
- [转]LINUX新建和增加SWAP分区
以前做过增加swap分区的事情,今天一个同事问到我如何做,故记个笔记整理一下吧.另外,以前我写过“交换分区swap的大小分配”,大家也可先看一下. 我们都知道在安装Linux系统时在分区时可以分配sw ...
- Linux 编译安装Boost
linux平台下要编译安装除gcc和gcc-c++之外,还需要两个开发库:bzip2-devel 和python-devel,因此在安装前应该先保证这两个库已经安装: #yum install gcc ...