正题

luogu 4644


题目大意

给你一段时间,有n头奶牛,第i头可以花费sis_isi​的代价清理lil_ili​到rir_iri​,问你清理完所有时间段的最小代价


解题思路

所有点需求都为1的线性规划,直接代入最短路就可以了


code

#include<queue>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 100010
#define mp make_pair
#define fs first
#define sn second
using namespace std;
ll n,l,r,x,y,z,tot,p[N],b[N],h[N];
priority_queue<pair<ll,ll> >d;
struct rec
{ll to,nx,l;
}e[N<<2];
void add(ll x,ll y,ll z)
{e[++tot].to=y;e[tot].l=z;e[tot].nx=h[x];h[x]=tot;return;
}
bool dij()
{memset(b,127/3,sizeof(b));b[l] = 0;d.push(mp(0,l));while(!d.empty()){ll u=d.top().sn;d.pop();if(p[u])continue;p[u]=1;for(int i=h[u];i;i=e[i].nx){ll v=e[i].to;if(b[u]+e[i].l<b[v]){b[v]=b[u]+e[i].l;d.push(mp(-b[v],v));}}}return p[r+1];
}
int main()
{scanf("%lld%lld%lld",&n,&l,&r);for(int i=l;i<r;++i)add(i+1,i,0);for(int i=1;i<=n;++i){scanf("%lld%lld%lld",&x,&y,&z);add(x,y+1,z);}if(dij())printf("%lld",b[r+1]);else puts("-1");return 0;
}

【图论】清理牛棚/Cleaning Shifts S(luogu 4644)相关推荐

  1. bzoj 1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚(DP)

    1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 941  Solved ...

  2. 1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚 DP + 线段树 / SPFA

    1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 975  Solved ...

  3. poj 2376 bzoj 3389: [Usaco2004 Dec]Cleaning Shifts安排值班(贪心)

    3389: [Usaco2004 Dec]Cleaning Shifts安排值班 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 462  Solved ...

  4. Cleaning Shifts 题解

    关于Cleaning Shifts的一些解题思路 先贴题目 Farmer John is assigning some of his N (1 <= N <= 25,000) cows t ...

  5. 【BZOJ】1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚(dp/线段树)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1672 dp很好想,但是是n^2的..但是可以水过..(5s啊..) 按左端点排序后 f[i]表示取第 ...

  6. 【POJ - 2376】Cleaning Shifts (贪心)

    题干: Farmer John is assigning some of his N (1 <= N <= 25,000) cows to do some cleaning chores ...

  7. Cleaning Shifts POJ - 2376(反贪?)

    FJ分配 N (1 <= N <= 25,000) 只中的一些奶牛在牛棚附近做些清洁. 他总是要让至少一只牛做清洁.他把一天分成T段(1 <= T <= 1,000,000), ...

  8. bzoj3389:[Usaco2004 Dec]Cleaning Shifts安排值班

    思路:可以贪心,也可以最短路. 贪心写法:因为在保证合法的前提下,我们选择的区间一定要右端点尽量靠后才行,于是我们每次就选择一个合法的并且右端点最靠后的区间就好了(如果没有合法的输出-1即可).时间复 ...

  9. poj3171 Cleaning Shifts

    传送门 题目大意 有一个大区间和n个小区间,每个小区间都有一个代价,求最少付出多少代价可以使得小区间完全覆盖大区间. 分析 为了方便起见我们先将s变为2,其它的位置都对应更改以便后期处理.我们考虑以t ...

最新文章

  1. openmv4闪灯说明_OpenMV Cam
  2. matlab R2010a windows和linux版本下载地址
  3. RelativeLayout和LinearLayout性能比较
  4. kafka管理神器-kafkamanager
  5. 移动WEB的页面布局
  6. jedis使用 api_通过Jedis API使用排序集
  7. csv格式清洗与转换python_实例详解Python中 CSV格式清洗与转换
  8. zblog php 七牛缩略图,zblog中Gravatar头像不显示解决方法
  9. html打开自动点击,如何把一段JS点击触发改为页面打开后就自动触发?
  10. 异步发电机 matlab仿真,基于MATLABSIMULINK异步电机矢量控制系统的仿真.pdf
  11. weex android 交互,weex项目接入到Android studio中
  12. mac下cocos2dx(带jsoncpp第三方库)编译为android项目心得
  13. Android 修改系统时间代码
  14. dell网卡linux驱动,Dell R720上安装linux网卡驱动
  15. 最适合程序员的画图工具?
  16. 三极管放大电路的基本原理
  17. 【考研】数据库知识点总结
  18. 敢问程序员路在何方、路在脚下。
  19. Vue----.stop、.prevent、.capture、.self用法以及.stop和.self的区别
  20. Trove系列(二)—Trove 的架构和流程介绍

热门文章

  1. c语言中二重指针如何赋值,关于二重指针释放的有关问题
  2. 如何在注册表里计算机用户名,可以通过注册表修改电脑的密码 ?怎么做的?
  3. 储存引擎InnoDB 索引选择 为何是B+树 而不是 B树 哈希表
  4. 二叉搜索树的插入与删除(C语言)
  5. [Java基础]反射获取构造方法并使用
  6. Network UVA - 315(Tarjan+连通性问题:求割点)
  7. 数据结构------选择排序
  8. [CQOI2015]选数(杜教筛)
  9. [BZOJ3944] Sum
  10. CF1479B Painting the Array