U33405 纽约

花费 \(w\) 元可以购买一辆容量为 \(w\) 的车

现在你有 \(n <= 2000\) 个物品, 搬运策略: 一直搬能放下里面最重的, 直到任意物品都不能搬上为止

求满足运送次数 \(<= R\) 的情况下买车花费的最少钱数

Solution

二分花钱数, 模拟搬运过程, 复杂度 \(O(n^{2}\log{n})\)

因为物品排序后有单调性, 且只能用一次(搬一次), 使用链表优化, 总复杂度\(O(n \log{n})\)

可是这题我认为有问题

upd: 哦原来后面有说

问题出在在符合搬运策略的情况下, 出钱数与搬运次数不符合单调性

所以最后加了个往前面检查多次查看是否合法, 取较小值

Code

#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
#include<algorithm>
#include<climits>
#define LL long long
#define REP(i, x, y) for(int (i) = (x);(i) <= (y);(i)++)
using namespace std;
int RD(){
int out = 0,flag = 1;char c = getchar();
while(c < '0' || c >'9'){if(c == '-')flag = -1;c = getchar();}
while(c >= '0' && c <= '9'){out = out * 10 + c - '0';c = getchar();}
return flag * out;
}
const int maxn = 4019;
int num, R;
int w[maxn], l[maxn], r[maxn];
int minn, maxx;
bool cmp(int a, int b){return a > b;}
void init(){
REP(i, 1, num)l[i] = i - 1, r[i] = i + 1;
r[0] = 1;
}
bool check(int k){
init();
int tim = 0, tot = 0, now = 0, left = num;
while(1){
now = r[0], tot = 0;
tim++;
while(now <= num){//运一次
if(tot + w[now] <= k){//不超重
tot += w[now];
r[l[now]] = r[now];//链表删除
l[r[now]] = l[now];
left--;
if(!left){//所有东西搬完检查次数
if(tim <= R)return 1;
return 0;
}
}
now = r[now];
}
if(tim > R)return 0;
}
}
int search(int l, int r){
int ans = -1;
while(l <= r){
int mid = (l + r) >> 1;
if(check(mid))ans = mid, r = mid - 1;
else l = mid + 1;
}
return ans;
}
int ans;
int main(){
num = RD(), R = RD();
REP(i, 1, num)w[i] = RD(), minn = min(minn, w[i]), maxx += w[i];
sort(w + 1, w + 1 + num, cmp);
int temp = search(minn, maxx);
for(ans = temp - 51;ans <= temp && !check(ans);ans++);
printf("%d\n", ans);
return 0;
}

U33405 纽约的更多相关文章

  1. U33405 纽约 (二分)

    [题目描述] 牧民 Azone 需要多次往返于两个草场之间运输家当.为了顺利转场,Azone 决定花费 w元津巴布韦币,购买一辆载重为 w 的汽车.共有 n 件家具需要搬运,每件家具的重量为 wi​  ...

  2. digitalocean纽约机房最先开通IPv6

    DigitalOcean是一家位于美国的云主机服务商,总部位于纽约,成立于2012年.DigitalOcean的服务器全部采用KVM架构,具体高性能处理能力,并且配备SSD固态硬盘,速度优异.每台设备 ...

  3. 使用ML.NET预测纽约出租车费

    有了上一篇<.NET Core玩转机器学习>打基础,这一次我们以纽约出租车费的预测做为新的场景案例,来体验一下回归模型. 场景概述 我们的目标是预测纽约的出租车费,乍一看似乎仅仅取决于行程 ...

  4. 纽约工作日志流水账 Day 1

    周六早上8:00从青岛登机,历经17个小时,终于在当地时间周六下午2点半到达目的地纽约.         被媳妇吐槽旁边坐了美女妹子,其实是个美国妹子,旁边人家还有男朋友,全程只和我说了2句话,Exc ...

  5. 用Java取指定时区的时间 北京时间,纽约时间,班加罗尔时间

    /** * 取北京时间 * @return */ public static String getBeijingTime(){ return getFormatedDateString(8); } / ...

  6. New York Comic Con 2013 - 2013年纽约动漫展

    New York Comic Con - 2013年纽约动漫展 New York Comic Con is the largest pop culture event on the East Coas ...

  7. GIS+=地理信息+行业+大数据——纽约公开11亿条出租车和Uber原始数据下载及分析

    一览众山小编辑团队 原文/ Todd Schneider 翻译/ 沈玮薇 陈翚 文献/ 蒋理 校核/ 众山小编辑/ 众山小 排版/ 徐颖 2014-2015 © 转载请注明:源自公众号"一览 ...

  8. 纽约LangeEylandt长岛LongIsland

    LangeEylandt n.长岛(美国) 纽约长岛 纽约长岛 (LongIsland)是北美洲在大西洋内的一个岛,最早追溯到十七世纪的1650年被命名为Lange Eylandt [1] ,位于北美 ...

  9. 《美国纽约摄影学院摄影教材》PDF教材

        下载地址: 美国纽约摄影学院摄影教材(上册).pdf 美国纽约摄影学院摄影教材(下册).pdf 欢迎你到纽约摄影学院来,我们急切地等待着开课,你们也在 跃跃欲试了.那就让我们马上开始吧! 你已 ...

随机推荐

  1. 读取.properties配置文件并保存到另一个.properties文件内

    代码如下 import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileOutputSt ...

  2. Daily Scrum (2015/11/1)

    今天晚上我们照例召开了每周末的小组例会,主要总结本周的工作和讨论下一周的工作. 首先是本周的一些主要工作: 1.进行了代码的修改和完善. 2.开始进行服务器配置和UI. 3.学习借鉴了nutch爬虫的 ...

  3. 《校友聊—方便使用之NABCD》

    <校友聊—方便使用之NABCD> 方便使用特点的分析与总结: N:由于一些软件的人机交互性很差,人性化性能低,使用不方便,故,鉴于此需求:A:用户可根据系统界面的友好提示一步步进行:B:提 ...

  4. Internet History, Technology and Security (Week 8)

    Week 8 Security: Encrypting and Signing This week we start two weeks of Internet Security. It is a l ...

  5. 简单 dp

    1.摆花问题 题目描述小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过a ...

  6. eureka集群高可用配置

    譬如eureka.client.register-with-eureka和fetch-registry是否要配置,配不配区别在哪里:eureka的客户端添加service-url时,是不是需要把所有的 ...

  7. docker weave安装

    1.升级内核到3.10.0以上,安装iproute22.安装 0.80版本:#wget -O /usr/local/bin/weave https://raw.githubusercontent.co ...

  8. 父类是在子类创建对象时候 在子类中创建一个super内存空间

    父类是在子类创建对象时候 在子类中创建一个super内存空间

  9. Eclipse中设置新创建文件的默认编码格式

    window-prefenences-web-jsp(或者是其他文件格式,里面是一个列表) 找到之后点击,在右侧区域中选择encoding进行修改即可,然后应用,OK

  10. 03.基于IDEA+Spring+Maven搭建测试项目--常用dependency

    <!--常用的依赖配置--> <!--未展示完整的pom.xml文件内容--> <properties> <java.version>1.8</j ...