Circle of Monsters(贪心)
|
n个怪物围成一圈,每个怪物有自己的血量和爆炸伤害。 怪物在死后会对下一个怪物造成爆炸伤害,又死了又可以爆炸...... 你每发子弹可以对怪物造成1点伤害,求杀死所有怪物的最小子弹数。 |
\(\color{Red}{---------------------华丽分割线w(゚Д゚)w------------------------}\)
\(其实嘛,看到题目束手无策,但是看到数据范围会发现是个O(n)算法,那我们要开始找规律了。\)
\(首先还是想最坏情况,每个怪物都用子弹打,答案是所有怪物的血量和。\)
那么我们得出一个很沙雕但很重要的结论:尽可能利用爆炸伤害
\(爆炸伤害在最优时是每个怪物都炸下一个怪物,这样爆炸伤害和就是\)
\]
但是这个伤害是打不出来的,因为我们需要一个起始点 。
很明显我们取一个爆炸伤害对自己炸的血量最少的怪物为起点,这样其余所有爆炸伤害都可以打出来。
\(答案是sum(怪物血量和)-sum(爆炸伤害)+(爆炸贡献最小的一次爆炸伤害)\)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=300009;
ll t,n,a[maxn],b[maxn],c[maxn],explore,sumn,minn=1e18;
int main()
{
cin>>t;
while(t--)
{
minn=1e18,sumn=0,explore=0;
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
scanf("%lld%lld",&a[i],&b[i]);
sumn+=a[i];
}
for(int i=1;i<=n-1;i++)
{
c[i]=min(b[i],a[i+1]),explore+=c[i];
minn=min(minn,c[i]);
}
c[n]=min(b[n],a[1]);
minn=min(minn,c[n]);
explore+=c[n];
cout<<sumn-explore+minn<<endl;
}
}
Circle of Monsters(贪心)的更多相关文章
- Codeforces - 102222H - Fight Against Monsters - 贪心
https://codeforc.es/gym/102222/problem/H 题意:有一堆怪兽,怪兽有HP和ATK.你有一个英雄,英雄每次先被所有怪兽打,然后打其中一个怪兽.打的伤害递增,第一次1 ...
- Codeforces Educational Rounds 85 A~C
A:Level Statistics 题意:统计n个游戏数据,p代表游玩次数,c代表通关次数,每次游玩都不一定通关,求这些数据是否合法 题解:1.游玩次数不能小于通关次数 2.游玩次数和通关次数必 ...
- Educational Codeforces Round 85 (Rated for Div. 2)
\(Educational\ Codeforces\ Round\ 85\ (Rated\ for\ Div.2)\) \(A. Level Statistics\) 每天都可能会有人玩游戏,同时一部 ...
- Educational Codeforces Round 85 (Div. 2)
题目链接:https://codeforces.com/contest/1334 A. Level Statistics 题意 一个关卡有玩家的尝试次数和通关次数,按时间顺序给出一个玩家 $n$ 个时 ...
- Codeforces #617 (Div. 3) D. Fight with Monsters(贪心,排序)
There are nn monsters standing in a row numbered from 11 to nn . The ii -th monster has hihi health ...
- 2018 ACM-ICPC 宁夏 H.Fight Against Monsters(贪心)
It is my great honour to introduce myself to you here. My name is Aloysius Benjy Cobweb Dartagnan Eg ...
- Gym - 101670H Dark Ride with Monsters(CTU Open Contest 2017 贪心)
题目: A narrow gauge train drives the visitors through the sequence of chambers in the Dark Ride attra ...
- Fight Against Monsters Gym - 102222H【贪心】
贪心的策略 #include <bits/stdc++.h> using namespace std; ; typedef long long ll; struct m { int hp, ...
- Codeforces - 1189B - Number Circle - 贪心
https://codeforc.es/contest/1189/problem/B 优先考虑最大的元素怎么构造.拿两个次大的围着他就很好,但是其他的怎么安排呢?就直接降序排列就可以了. a数组还开错 ...
随机推荐
- 浅谈requests库
本文为博客园ShyButHandsome的原创作品,转载请注明出处 右边有目录,方便快速浏览 安装 pip install requests # 是requests而不是request(有s的) re ...
- Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(四)之Operators
At the lowest level, data in Java is manipulated using operators Using Java Operators An operator ta ...
- 利用 Github 网络钩子实现自动化部署
GitHub 的网络钩子(webhook)功能,可以很方便的实现自动化部署.本文记录了使用 Node.js 的开发部署过程,当项目的 master 分支被推时,将在服务器进行自动部署 添加网路钩子 在 ...
- ajax按楼层加载数据
代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> <tit ...
- L1-L11 jupter notebook 文件
L1-L11 jupter notebook 文件下载地址 https://download.csdn.net/download/xiuyu1860/12157961 包括L12 Transforme ...
- Video tagging systems based on DNNs
Need: With the ever-growth large-scale video in the mobile phone, so what will everyone get from the ...
- 一个好的olap框架
一.何为一个好的olap框架? 框架大概分为两种: (1)底层技术框架,专注于抽象底层技术,如网络通信netty.中间件kafka等 (2)开发人员框架,专注于提高开发效率,如spring的面向切面和 ...
- Xss Game挑战
前言 最新学习了下xss的更深入的东西,学习了一波浏览器解析机制和XSS向量编码的知识. 这里就些xss的练习题巩固知识 学习的话结合如下两篇文章看,从例子和基础原理层面都有: http://boba ...
- Blazor WebAssembly 3.2.0 已在塔架就位 将发射新一代前端SPA框架
最美人间四月天,春光不负赶路人.在充满无限希望的明媚春天里,一路风雨兼程的.NET团队正奋力实现新的突破. 根据计划,新一代基于WebAssembly 技术研发的前端SPA框架Blazor 将于5月1 ...
- Linux学习笔记(九)Vim文本编辑器的使用
Vim文本编辑器的使用 Vim的工作模式 1.命令模式 2.输入模式 3.编辑模式 进入Vim 1.使用Vim打开文件 2.直接进入指定位置 Vim基本命令 1.插入命令 2.光标移动命令 3.使用V ...