【BZOJ】2697: 特技飞行
题意
\(k(1 \le k \le 300)\)种物品,价值分别为\(c_i(0 \le c_i \le 1000)\)。有\(n(1 \le n \le 1000)\)分钟,每分钟可以选择一个物品\(i\),价值为距离上次选择该物品的时间 * \(c_i\)。求最大价值。
分析
发现对于一种物品,价值为\(c_i * \sum_{j=2}^{a} (t_j-t_{j-1}) = c_i * (t_a-t_1)\)。\(t_i\)表示第\(i\)次选这个物品的时间。这样,我们只需要为每一个物品找到一个开始和结束时间的时间即可。
由于考虑任意两种物品及其位置对其它的物品的贡献无影响,所以我们考虑任意两种物品。
对于两种物品\(i, j\),假设\(c_i \ge c_j\),他们开始和结束时间分别为\(l_i, r_i\)和\(l_j, r_j\),则最优解中肯定\(l_i < l_j, r_j < r_i\),证明如下:
首先显然肯定不可能\(l_j < l_i, r_i < r_j\)。
假设\(l_i < l_j, r_i < r_j\)(\(l_j < l_i, r_j < r_i\)证明类似),则可以证明将\(r_i, r_j\)交换后更优(证明大简单,略)。
所以我们将物品排序后,一个个取即可。
题解
所以贪心地取即可
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=500005;
int n, k, a[N];
int main() {
	scanf("%d%d", &n, &k);
	for(int i=1; i<=k; ++i) {
		scanf("%d", &a[i]);
	}
	sort(a+1, a+1+k);
	int num=n-1;
	ll ans=0;
	for(int i=k; i; --i) {
		if(num<0) {
			break;
		}
		ans+=(ll)num*a[i];
		num-=2;
	}
	printf("%lld\n", ans);
	return 0;
}												
											【BZOJ】2697: 特技飞行的更多相关文章
- BZOJ 2697 特技飞行(贪心)
		
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2697 [题目大意] 神犇航空开展了一项载客特技飞行业务. 每次飞行长N个单位时间,每个 ...
 - BZOJ——2697: 特技飞行
		
http://www.lydsy.com/JudgeOnline/problem.php?id=2697 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: ...
 - BZOJ2697: 特技飞行
		
2697: 特技飞行 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 607 Solved: 363[Submit][Status] Descript ...
 - P5302 [GXOI/GZOI2019]特技飞行
		
题目地址:P5302 [GXOI/GZOI2019]特技飞行 这里是官方题解(by lydrainbowcat) 题意 给 \(10^5\) 条直线,给 \(x = st\) 和 \(x = ed\) ...
 - [国家集训队]特技飞行 贪心BZOJ2697
		
题目背景 1.wqs爱好模拟飞行. 2.clj开了一家神犇航空,由于clj还要玩游戏,所以公司的事务由你来打理. 注意:题目中只是用了这样一个背景,并不与真实/模拟飞行相符 题目描述 神犇航空开展了一 ...
 - 洛谷——P3918 [国家集训队]特技飞行
		
P3918 [国家集训队]特技飞行 神犇航空开展了一项载客特技飞行业务.每次飞行长N个单位时间,每个单位时间可以进行一项特技动作,可选的动作有K种,每种动作有一个刺激程度Ci.如果连续进行相同的动作, ...
 - 【GZOI 2019】特技飞行
		
Problem Description 公元 \(9012\) 年,Z 市的航空基地计划举行一场特技飞行表演.表演的场地可以看作一个二维平面直角坐标系,其中横坐标代表着水平位置,纵坐标代表着飞行高度. ...
 - Loj #3085. 「GXOI / GZOI2019」特技飞行
		
Loj #3085. 「GXOI / GZOI2019」特技飞行 题目描述 公元 \(9012\) 年,Z 市的航空基地计划举行一场特技飞行表演.表演的场地可以看作一个二维平面直角坐标系,其中横坐标代 ...
 - 【LOJ】#3085. 「GXOI / GZOI2019」特技飞行
		
LOJ#3085. 「GXOI / GZOI2019」特技飞行 这显然是两道题,求\(C\)是一个曼哈顿转切比雪夫后的线段树扫描线 求\(AB\),对向交换最大化和擦身而过最大化一定分别为最大值和最小 ...
 
随机推荐
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
			
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
 - Delphi面向对象编程
			
一.面向对象介绍 OOP是使用独立的对象(包含数据和代码)作为应用程序模块的范例.虽然OOP不能使得代码容易编写,但是它能够使得代码易于维护.将数据和代码结合在一起,能够使定位和修复错误的工作简单化, ...
 - C-线性顺序表的增删改查
			
闲来无事,练练手,写点C代码,对于线性表的简单操作.编辑工具Notpad++,编译工具tcc. /* *the sequence of the list *author:JanneLee *data: ...
 - Oracle锁定和解锁用户的命令
			
转:http://database.51cto.com/art/200910/158576.htm 在DBA的日常工作中,经常遇到为Oracle用户解锁的操作:这篇文章给出在命令行下进行Oracle用 ...
 - Hihicoder 题目1 : Trie树(字典树,经典题)
			
题目1 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编 ...
 - Code Review for SSIS package
			
以下是我对SSIS包进行code review的一些建议,如果有其他更好的方案欢迎拍砖. A. 查看是否使用了最优的解决方案 1. 最优的结构视图 2. 解决方案,包,任务,组建,参数的命名使用了易读 ...
 - java Integer == 比较的小问题
			
示例代码: @Test public void testEquals() { Integer a = 127; Integer b = 127; if(a == b) { System.out.pri ...
 - less2
			
less2 @base-color: #000; @fore-color: darken(@base-color, 50%); @back-color: lighten(@base-color, 50 ...
 - WPF QuickStart系列
			
接触WPF有一段时间了,现在做的项目也是WPF相关的.所以决定写一个WPF QuickStart系列的文章.也是自己对WPF学习的总结,如果对你有帮助,就非常棒了.因为不善言辞,所以尽量以WPF示例和 ...
 - 25条提高Visual Studio编码和调试效率的技巧
			
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:工欲善其事必先利其器.就算手中已经有了利器,如果能掌握一些使用工具的技巧,让利器更加顺 ...