【bzoj2697】【特技飞行】【贪心】
2015-09-26 14:15
323 查看
Description
神犇航空开展了一项载客特技飞行业务。每次飞行长N个单位时间,每个单位时间可以进行一项特技动作,可选的动作有K种,每种动作有一个刺激程度Ci。如果连续进行相同的动作,乘客会感到厌倦,所以定义某次动作的价值为(距上次该动作的时间)*Ci,若为第一次进行该动作,价值为0。安排一种方案,使得总价值最大。Input
第一行,两个数,N和K,如上所述;第二行,K个正整数,表示K种动作的Ci值。
Output
仅一行,一个整数,表示最大总价值。Sample Input
5 22 2
Sample Output
12HINT
数据规模及约定对于10%的测试数据,N<=20,K<=3
对于全部的测试数据,1<=N<=1000,1<=K<=300,0<=Ci<=1000。
题解:根据乘法结合律,可以发现一个动作做两次和做多次的效果是等价的。
所以我们优先把价值大的往两边放即可。
代码:
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int c[1010],k,n; long long ans; bool cmp(int a,int b) {return a>b;} int main(){ scanf("%d%d",&n,&k); for (int i=1;i<=k;i++) scanf("%d",&c[i]); sort(c+1,c+k+1,cmp); for (int i=1;;i++){ if (n>=2) {ans+=(long long)c[i]*(n-1),n-=2;} else break; } cout<<ans<<endl; }
相关文章推荐
- 关于jenkins的使用问题总结
- Struts2标签—Iterator标签
- Oracle 11g password过期被锁定报道 ORA-28000 the account is locked
- 【Java】interface
- java3:数据类型
- 【bzoj2330】【scoi2011】【糖果】【差分约束】
- Python大数据依赖包安装
- 【iOS】Swift扩展extension和协议protocol
- CentOS 7.0 配置nginx+php+mariadb开发环境
- 纯c中char*[]的处理
- Lucene近实时搜索应用总结
- bzoj 1059: [ZJOI2007]矩阵游戏|二分图匹配|匈牙利算法
- Android通用UI开发技术(1)
- 交互式命令 expect
- C++学习之编程实例
- Centos7.x RHEL 配置EPEL第三方YUM源
- set集合中元素的比较
- 【bzoj2982】【combination】【Lucas定理】
- [CareerCup] 9.8 Represent N Cents 美分的组成
- 编写让别人能够读懂的代码