博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj3389
阅读量:4449 次
发布时间:2019-06-07

本文共 1838 字,大约阅读时间需要 6 分钟。

3389: [Usaco2004 Dec]Cleaning Shifts安排值班

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 367  Solved: 141
[][][]

Description

    一天有T(1≤T≤10^6)个时段.约翰正打算安排他的N(1≤N≤25000)只奶牛来值班,打扫
打扫牛棚卫生.每只奶牛都有自己的空闲时间段[Si,Ei](1≤Si≤Ei≤T),只能把空闲的奶牛安排出来值班.而且,每个时间段必需有奶牛在值班.  那么,最少需要动用多少奶牛参与值班呢?如果没有办法安排出合理的方案,就输出-1.

Input

 
    第1行:N,T.
    第2到N+1行:Si,Ei.

Output

 
    最少安排的奶牛数.

Sample Input

3 10
1 7
3 6
6 10

Sample Output

2
样例说明
奶牛1和奶牛3参与值班即可.

HINT

 

Source

yy了一个线段树dp做法就过了。。。挖个坑 不知道为什么是对的(大水题都不会可以持矢了)
#include 
using namespace std;const int N = 1000010, inf = 0x3f3f3f3f;struct line { int l, r;} x[N];int n, t;int dp[N] ,tree[N << 2];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) >> 1; if(pos <= mid) update(l ,mid ,x << 1 , pos, num); else update(mid + 1, r, x << 1 | 1, pos, num); tree[x] = min(tree[x << 1], tree[x << 1 | 1]);}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) >> 1; return min(query(l, mid, x << 1, a, b) ,query(mid + 1, r, x << 1 | 1, a, b));}int main(){ memset(tree, 0x3f3f, sizeof(tree)); memset(dp, 0x3f3f, sizeof(dp)); scanf("%d%d", &n ,&t); for(int i = 1; i <= n; ++i) scanf("%d%d", &x[i].l, &x[i].r); sort(x + 1, x + n + 1, cp); if(x[1].l != 1) { puts("-1"); return 0; } dp[x[1].r] = 1; update(1, t, 1, x[1].r, 1); for(int i = 2; i <= n; ++i) { int l = x[i].l, r = x[i].r; dp[r] = min(dp[r], query(1, t, 1, l - 1, r) + 1); update(1, t, 1, r, dp[r]); } printf("%d\n", dp[t] > n ? -1 : dp[t]); return 0;}
View Code

 

转载于:https://www.cnblogs.com/19992147orz/p/6569146.html

你可能感兴趣的文章
ASP.NET禁用一部分验证控件,ValidationGroup的设置与使用
查看>>
JavaScript DOM高级程序设计 5动态修改样式和层叠样式表2--我要坚持到底!
查看>>
[.NET源码学习]实例化Font,遭遇字体不存在的情况。
查看>>
手机如何设置静态IP
查看>>
JS操作文件
查看>>
解放创意——自由人的自由联合
查看>>
Django框架之路由
查看>>
GitHub & GitHub Package Registry
查看>>
HTML5 & how to download SVG in js
查看>>
Machine Learning & ML
查看>>
常用会计科目通俗解释
查看>>
分享JS代码(转)
查看>>
基本CSS布局
查看>>
pyQuery的安装
查看>>
java 发展简史
查看>>
Js 数组排序函数sort()
查看>>
vtune 错误
查看>>
Sonya and Problem Wihtout a Legend CodeForces - 714E (dp)
查看>>
制作滑动门菜单
查看>>
jdk 8 新特性
查看>>