1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚

2024-03-27 05:08

本文主要是介绍1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

考虑令f[i]表示至少把前i个点打扫了所需要的最小花费,

那么对于第i个奶牛打扫的即为f[a[i].e] = min(f[a[i].s-1]+a[i].w);

考虑更新了f[a[i].e]实际上也对于前a[i].e个点均有影响,所以还需对f[j]取min j < a[i].e

知道树状数组是可以维护前缀最小值的,那么反转区间,随便维护即可。

c++代码如下:

#include<bits/stdc++.h>
#define rep(i,x,y) for(register int i = x ; i <= y; ++ i)
#define lowbit(x) (x & - x)
using namespace std;
typedef long long ll; 
template<typename T>inline void read(T&x)
{x = 0;char c;int sign = 1;do { c = getchar(); if(c == '-') sign = -1; }while(!isdigit(c));do { x = x * 10 + c - '0'; c = getchar(); }while(isdigit(c));x *= sign;
}const int N = 1e5 + 500;const ll inf = 1e16;
int n,s,e;
ll t[N],w; 
struct Str
{int s,e,w;bool operator < (const Str b) const { return s < b.s; }
}a[N];ll query(int x)
{ll z = inf;for(register int i = x ;i ;i -= lowbit(i))z = min (t[i],z) ;return z;
} void update(int x,ll z)
{for(register int i = x ; i <= e ;i += lowbit(i))t[i] = min (t[i],z) ;
} int main()
{read(n);read(s);read(e);s++;e++;rep(i,1,e) t[i] = inf;rep(i,e - s + 2, e) update(i,0);rep(i,1,n) read(a[i].s),read(a[i].e),read(a[i].w);sort(a + 1,a + 1 + n);if(a[1].s > s - 1) return puts("-1"),0;rep(i,1,n)update(e - a[i].e,query(e - a[i].s + 1) + a[i].w); printf("%lld\n",(w = query(1)) == inf ? -1 : w);return 0;
}

这篇关于1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/851033

相关文章

插件:清理maven错误缓存.bat

插件:https://pan.baidu.com/s/1nHIxHoo1C4MvFlW7QbZe5Q?pwd=7zenhttps://pan.baidu.com/s/1nHIxHoo1C4MvFlW7QbZe5Q?pwd=7zen没错误缓存时: 有错误缓存时:

redis内存清理和linux系统清理缓存以及redis启动

1清空所有数据库 redis-cli FLUSHALL 2清空所有数据库 redis-cli FLUSHDB 3. 删除指定的缓存键 redis-cli DEL <key> 4. 设置键过期 redis-cli EXPIRE <key> <seconds>例如:redis-cli EXPIRE mykey 60 5.启动redis 这个启动命令要在/usr/loc

proe5.0 config.pro 选项清理垃圾关系

proe5.0 config.pro 选项:  cleanup_drawing_dependencies YES_CS_NOT_REQUIRED c leanup_layout_dependencies YES_CS_NOT_REQUIRED 可以清理所有不应该存在的依赖关系 在某些情况下,图纸、布局和模型可能包含对模型的不需要的默认、幽灵、无效、旧的或遗留引用或者垃圾引用,如何删除这些引用?

宝塔Inode信息使用率100%满了怎么清理?

宝塔面板后台首页除了负载状态、CPU使用率和内存使用率之外,还有一个“/”,即Inode信息,那么,Inode信息使用率满了如何清理?这选项100%的话您的网站可能就无法运行了; 宝塔Inode信息清理方法: 一般主要清理清空面板回收站就好了: 执行命令:rm -rf /www/Recycle_bin/* 不会命令的话直接删除Recycle_bin目录,然后重新新建一个这样的目录就是了,Lin

Docker 清理和查看镜像与容器占用情况

查看容器占用磁盘大小 docker system df 查看单个image、container大小: docker system df -v  清理所有废弃镜像与Build Cache docker system prune -a

windows清理图标缓存

方法一 删除 IconCache.db 文件 进入 C:\Users\用户名\appdata\local 目录,直接删除 IconCache.db 文件,重启电脑。 需要注意的是,这一步中 appdata 文件夹和 IconCache.db 文件都是隐藏的系统文件,需要手动输入地址或者显示隐藏文件。 bat文件双击清理 :: 终止 Windows Explorer 进程,用于重新加载桌面和

黑盒闪清 v2.9.9 体积小巧,简洁高效的手机清理神器

黑盒闪清APP是安卓手机上的一款优质文件管理器,拥有存储分析、文件分类、大文件扫描、空文件夹扫描等功能,应用无广告、无推送,完全免费使用,让你手机中的文件管理就跟在电脑上管理一样简单。 链接:https://pan.quark.cn/s/5ed59be1d94c 📁大小:9M 🏷标签:#黑盒闪清 #文件管理 #Andriod #内存清理 #无广告 夸克网盘: https://pan.

PCMPlayer播放器的使用教程(添加清理暂存区方法)

解决的问题:在我们使用PCMPlayer播放的时候,时间长,即使停止播放了,也会有一段声音,这是因为音频暂存区没有清理  解决方案:添加一个stop方法,话不多上 直接上代码  复制就能使用 !!! function PCMPlayer(option) {this.init(option);}PCMPlayer.prototype.init = function(option) {var

Android Studio清理多余的资源文件

项目中多余的资源文件打包时影响apk的大小,清除步骤如下 之后就把多余的文件全部清理掉了,可以愉快地打包了

Mac book 系统清理

重置 PRAM/NVRAM command+option  + P + R 您的电脑中很小的一部分内存,被称为“参数随机存取存储器”或 PRAM,它将某些设置储存在 Mac OS X 可以快速访问的位置。储存的特定设置取决于您的 Mac 类型以及连接在 Mac 上的设备的类型。这些设置包括您指定的启动磁盘、显示器分辨率、扬声器音量和其他信息。 详细步骤: 关闭电脑。在键盘上找到以下键:Co