ecnu 电话送报 贪心
来源:互联网 发布:软件分享知乎 编辑:程序博客网 时间:2024/05/16 11:47
在一条直线上分布着
一种方案是你亲自去给人家送,你要走过去并且走回来,可以在沿途上送多户人家的报纸,需要花费一定的(骑车)时间;另一种方案是你打电话让人家来拿,但打电话也需要花费一定的时间,并且你不能同时给多户人家打电话,打完电话后该户的报纸可以被视为已经送完。求你需要花在这份工作上的最短时间。
假设自行车速度为
Input
第一行一个整数
第二行一个整数
第三行
数据包含
- 测试点
1,2,3 满足:1≤n≤18 。 - 测试点
4,5,6,7 满足:1≤n≤1000 。 - 测试点
8,9,10 满足:3≤n≤105 。
对于所有测试点,满足
Output
输出一个整数:需要花费的时间的最小值。
解法:
出发点在零,送报点ai都大于零,那么送报都是往一个方向送再回来。可以证明这样来回只有一次,如果有多次,那么第二次会重走第一次走过的路,显然是多余的,即为什么不第一次就走的更远点呢。既然只走一次,其余没有送的报会以电话形式让人来取,那么剩下几人乘以b就是要花费的时间。公式 ans=min{a[i]*2+(n-i)*b}
#include <iostream>#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e6;const ll mod=1e9+7;ll a[maxn];int main(){ int n; while(~scanf("%d",&n)){ ll b; scanf("%lld",&b); for(int i=0;i<n;i++){ scanf("%lld",&a[i]); } sort(a,a+n); ll ans=n*b; for(int i=0;i<n;i++){ ll x=a[i]*2+(n-i-1)*b; ans=min(ans,x); } printf("%lld\n",ans); } return 0;}
阅读全文
0 0
- ecnu 电话送报 贪心
- ECNU 3263 贪心
- ecnu
- ECNU Problem #3263 丽娃河的狼人传说(区间贪心)
- 【贪心】[COCI]电话监测
- 程序员与送报工
- 程序员与送报工
- ECNU CCCC选拔赛 D Pokémon and candies Pokémon 贪心
- ECNU CCCC选拔赛 F Ms. Weasel eats chicken 贪心 + 优先队列
- ECNU 3263 丽娃河的狼人传说(华东师范大学邀请赛) (贪心)
- EOJ Monthly 2017.12 (暨 ECNU 12 月内部选拔) C. 易位构词(贪心)
- ecnu 1244
- ECNU OJ
- ECNU-3260
- ECNU-3263
- 夜归人与送报人
- ECNU-IP Address 1002
- ecnu 1600 DP
- 优化mysql数据库的几个步骤
- 二分图最大匹配总结
- 数据库 学习一
- 如何获取事件冒泡里最顶层的元素(或者任意层的元素)
- 我如何找到了Facebook广告服务的信息泄漏漏洞(奖金高达10000美刀)
- ecnu 电话送报 贪心
- java io演进
- ZOJ Problem Set
- 左旋转字符串
- 400 : bad Request
- C# Epplus 创建Excel表格
- 在mac上用VMWare虚拟机装Linux-Ubuntu--及Ubuntu安装Vmware Tool
- iOS使用xcodebuild命令打包
- tomcat7集群 session复制配置