题目地址:http://codeforces.com/problemset/problem/853/A

题目大意:

本来安排了 n 架飞机,每架飞机有 ci 的重要度,

第 i 架飞机的起飞时间为 i ,而现在,在 k 时之前不能有任何飞机起飞,每个时间点只有1架飞机能起飞,

损失=(飞机现起飞时间-飞机原起飞时间)*该飞机的重要度.

现在要求你排一张时间表,要求每架飞机都只能在原起飞时间及以后起飞,且使损失最小.

题解:

贪心

暴力的数组模拟tle,o(≧口≦)o

#include<bits/stdc++.h>
using namespace std;
int n,k; struct node
{
int id;
long long c;
}a[];
int b[],ans[];
bool vis[];
long long sum;
bool cmp(node a,node b)
{
if (a.c!=b.c) return a.c>b.c;
else return a.id>b.id;
} int main()
{
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i].c);
a[i].id=i;
}
sort(a+,a++n,cmp);
for(int i=;i<=n;i++) {b[i]=k+i; vis[i]=;}
sum=;
for(int i=;i<=n;i++)
{
int t=;
while()
{
int kk=lower_bound(b+t+,b++n,a[i].id)-b;
if (!vis[kk]) { vis[kk]=; sum+=(b[kk]-a[i].id)*a[i].c; ans[a[i].id]=b[kk]; break;}
else t=kk;
}
}
printf("%lld\n",sum);
for(int i=;i<=n;i++)
{
if (i-) printf(" ");
printf("%d",ans[i]); }
printf("\n");
return ;
}

最新文章

  1. org.apache.log4j.Logger详解
  2. 关于FloatingActionButton
  3. StartSSL免费SSL证书申请和账户注册完整过程
  4. 强连通 HDU 1827
  5. Timus Online Judge 1001. Reverse Root
  6. 各种有用的PHP开源库精心收集
  7. [原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo
  8. 黑马程序员-- .net基础加强8之委托,事件,程序集
  9. linux 修改命令行编码 乱码解决方案
  10. ssh免密码登录记录
  11. 实战 SSH 端口转发
  12. 使用Putty实现windows向阿里云的Linux云服务器上传文件
  13. Python Trick —— 命令行显示
  14. Java day1
  15. 为什么我们要使用HTTP Strict Transport Security?
  16. JAVA实现微信支付V3
  17. FTP-IIS Web
  18. 一个CTO谈自己的技术架构体系
  19. Log4net 自定义字段 写入Oracle 使用ODP.NET Managed驱动
  20. redis内部数据结构

热门文章

  1. 一种新的技术,C++/CLI
  2. 自定义Web框架与jinja2模板
  3. 利用RNN(lstm)生成文本【转】
  4. ubuntu下转换flv格式为mp4格式
  5. P3939 数颜色
  6. zedgraph右键菜单的汉化
  7. catalina.home与 catalina.base区别
  8. js、jq对象互转
  9. Codeforces 911E - Stack Sorting
  10. Codeforces 832D - Misha, Grisha and Underground