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......)这几天开始会抽时间刷的,每天几道 ...
随机推荐
- 【DFS+剪枝】Square
https://www.bnuoj.com/v3/contest_show.php?cid=9154#problem/J [题意] 给定n个木棍,问这些木棍能否围成一个正方形 [Accepted] # ...
- 理解 mysql行锁和表锁
在调用存储过程中,就会涉及到表锁,行锁这一概念:所谓区别:有索引的时候就是行锁,没有索引的时候就是表索. innodb 的行锁是在有索引的情况下,没有索引的表是锁定全表的. 表锁演示(无索引) Ses ...
- 为什么zookeeper的节点配置的个数必须是奇数个?
zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的.也就是说如果有2个zookeeper,那么只要有1个死了zookeeper就不能用了,因为1没有过半, ...
- HDU1533 最小费用最大流
Going Home Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- hdu6110(线段树+lca)
题目 http://acm.hdu.edu.cn/showproblem.php?pid=6110 分析 注意到,若干条路径的交一定也是条路径 我们可以维护一个线段树,seg[l..r]存着第l条~第 ...
- Spring实战Day1
为什么要学习使用Spring ------为了全方面简化Java开发 如何简化开发呢? 1.基于POJO[简单老式Java对象(Plain Old Java object)]的轻量级和最小侵入性编程, ...
- 【OPPO主题制作系列 - 01】-- 写个小工具自动打包Theme文件
参考OPPO主题设计师站: http://dev.theme.oppomobile.com/user/user_start 想要打包成Theme文件,必须把需要打包的文件夹拖到oppo-themepa ...
- 配置activeMQ
一.加入以下的库 并配置好路径 ws2_32.lib;Mswsock.lib;cppunit.lib;libapr-1.lib;libapriconv-1.lib;libaprutil-1.lib;l ...
- jni——如何转换有符号与无符号数
java数据结构默认均为有符号数,而通过jni转换到c/c++层,却不一定是有符号数. 如若在java中存储的即为无符号数,则在jni中可将jbyte直接进行类型转换. 若进行操作,则可在计算时,先将 ...
- Jquery改动页面标题title其他JS失效
Jquery代码 $("title").html("hello"); 后来仅仅好用以下这段js代码来实现 Js代码 document.title=&qu ...