题目传送门

题意:

n个城堡,m条单向边,单向边的方向永远是下标大的城堡到下标小的城堡。

初始时你的军队有k个士兵。

现在你依次占领n个城堡,占领顺序是先占领下标小的城堡,再占领下标大的城堡。

占领第  个城堡,需要拥有  个士兵,但是并不消耗士兵。占领第  个城堡后,你的军队会新增  个士兵。

保卫第  个城堡会获得  个金币。

保卫一个城堡需要把一个士兵留在该城堡。

军队的移动顺序是下标小的城堡到下标大的城堡,不会反向移动。

当你在第  个城堡时,你可以派一个士兵保卫第  个城堡。

当你在第  个城堡时,你可以派一个士兵保卫第  个城堡。要求必须存在第  个城堡到第  个城堡的单向边。

一个士兵保卫城堡就会离开军队。

如果不能占领所有城堡,那就输出-1。

问你在占领所有城堡后最多能获得多少个金币。

数据范围:

题解:

需要观察到2个切入点才能解决。

切入点1:如果要把一个士兵安排到第  个城堡,那么一定要保证能占领后面所有的城堡。

切入点2:如果要把一个士兵安排到第  个城堡,那么一定是合法的最靠后的城堡向第  个城堡派士兵。

因此,每个城堡都对应一个可向自身派遣士兵的最靠后的城堡。

依次保卫金币数最多的城堡即可。保卫该城堡后,要满足可以占领所有城堡。

感受:

set用错,直接调了两个小时bug。

欲哭无泪。

代码:

#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int maxn = 5005 ;
const int maxm = 1e6 + 5 ;
const ll mod = 998244353 ;
int n , m , k ;
int f[maxn] , now[maxn] , suf[maxn] ;
int a[maxn] , b[maxn] , c[maxn] ;
struct node
{int x , y ;bool operator <(const node &s) const{if(y != s.y)  return y > s.y ;else  return y == s.y ;}
} ;
set<node> s ;
bool no()
{int sum = k ;for(int i = 1 ; i <= n ; i ++){if(sum < a[i])  return 1 ;else  sum += b[i] ;}return 0 ;
}
void solve()
{int ans = 0 ;for(auto v : s){int u = f[v.x] ;bool flag = 0 ;for(int i = u ; i <= n ; i ++)if(now[i] - 1 < suf[i + 1]){flag = 1 ; break ;} if(!flag)  {for(int i = u ; i <= n ; i ++) now[i] -- ;ans += v.y ;}}printf("%d\n" , ans) ;
}
int main()
{scanf("%d%d%d" , &n , &m , &k) ;for(int i = 1 ; i <= n ; i ++)scanf("%d%d%d" , &a[i] , &b[i] , &c[i]) ;for(int i = 1 ; i <= n ; i ++)  f[i] = i ;for(int i = 1 ; i <= m ; i ++){int u , v ;scanf("%d%d" , &u , &v) ;f[v] = max(f[v] , u) ;}for(int i = n ; i >= 1 ; i --) suf[i] = max(a[i] , suf[i + 1] - b[i]) ;if(no()){printf("-1\n") ; return 0 ;}now[0] = k ;for(int i = 1 ; i <= n ; i ++)  now[i] = now[i - 1] + b[i] ;for(int i = 1 ; i <= n ; i ++)  s.insert(node{i , c[i]}) ;solve() ;return 0 ;
}

codeforces1271D 2100分贪心相关推荐

  1. CodeForces - 1203F1 Complete the Projects (easy version)(贪心)

    题目链接:点击查看 题目大意:现在有一个人,初始时有r元钱,现在有n个项目需要让他来解决,每个项目的门槛是a元钱,完成项目后的报酬是b元(报酬可以是负数),问能否在适当调整项目顺序后完成所有项目,能的 ...

  2. [九省联考2018]IIIDX 贪心 线段树

    ~~~题面~~~ 题解: 一开始翻网上题解看了好久都没看懂,感觉很多人都讲得不太详细,所以导致一些细节的地方看不懂,所以这里就写详细一点吧,如果有不对的or不懂的可以发评论在下面. 首先有一个比较明显 ...

  3. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  4. 【总结】ACM比赛生涯总结

    程序设计竞赛相关奖项总结 时间 比赛 奖励 大一下学期 2017.5 西安交通大学ACM校赛 铜奖 大二下学期 2018.5 ICPC全国邀请赛-西安站 铜奖 2018.6 ICPC全国邀请赛-宁夏站 ...

  5. 传染病控制(洛谷 1041 WA 90)

    题目背景 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完全认识这种传染病,难以准确判别病毒携带 ...

  6. 清北刷题冲刺 11-02 a.m

    卖书 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...

  7. 2017.1.19切题总结

    上午切了P1920 这道题是最优骗分+贪心 原题: 有N (1 <= N <= 1,000,000)个 true 或者false的问题. 其中答案是true的问题的个数有K种可能:t_1, ...

  8. 聊聊成为大神路上的过程

    每个人都在成为大神的路上,只不过有的人在走,而有的人在跑. 写在前面的话 在开始正文之前我先跟大家分享一个我身边的例子.我有两个朋友,A和B.B从高一开始打dota,A从高二开始,到高中毕业的时候,A ...

  9. 洛谷P1709 [USACO5.5]隐藏口令Hidden Password

    P1709 [USACO5.5]隐藏口令Hidden Password 题目描述 有时候程序员有很奇怪的方法来隐藏他们的口令.Binny会选择一个字符串S(由N个小写字母组成,5<=N<= ...

最新文章

  1. ADC0832双通道实现AD电压转换
  2. python selenium爬虫爬京东评论_Python 不用selenium 带你高效爬取京东商品评论
  3. android 7.0独立升级,爆料:Android 7.0用户将可自行升级!
  4. Vue蚂蜂窝Vue-cli+webpack做的
  5. Excel做好的图表复制到PPT中变颜色了怎么办
  6. 【常见笔试面试算法题12续集四】动态规划算法案例分析4 LCS练习题练习题(最长公共子序列的长度)
  7. oracle中exp/imp讲解
  8. python 精度损失_Python的浮点数损失精度问题
  9. Jupyter notebook的正确打开方式
  10. Java多线程学习三十一:ThreadLocal 是用来解决共享资源的多线程访问的问题吗?
  11. pcm输出还是源码输出_LOL手游:上单英雄怎么选?还是推荐玩“狗头”,有肉又有输出...
  12. 动态提出的数据怎么换行 js_前端代码动态生成应用及改造
  13. 东南大学本 硕 博论文中期答辩 毕业答辩ppt模板2021版
  14. 淘宝天猫返利查券机器人搭建
  15. 如何清空c盘只剩系统_win7系统怎么把C盘里垃圾清除干净,只保留系统文件。
  16. Altium designer—STM32F103ZET6最小系统原理图
  17. java 对象 转为繁体,java调用opencc,将简体中文转换成繁体
  18. 关于销售的成本和收入
  19. 哪种锻炼方式最能让程序员远离亚健康? - 强烈推荐
  20. 某计算机系统20位地址线 8位数据线,同济大学2009-2010(1)微机原理期终试题(A B卷)含答案.doc...

热门文章

  1. 骑摩托车出行防水防雾小技巧
  2. PDA手持无线POS机,打印条形码小票凭条系统案例
  3. 快速改变文件hash值的方法
  4. 5 幅图拿下 ARP 协议
  5. 【C++/嵌入式笔试面试八股】一、02.基本函数
  6. 使用vue写的h5页面,在iOS中,需要等一会才能获取焦点
  7. 【动画演示软件】Focusky教程 | Focusky中超链接基础运用
  8. 【Google Earth COM API】简易教程
  9. Fisco-Bcos智能合约开发案例----商品溯源
  10. it词汇总结(来自互联网)