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