uva10163 Storage Keepers (未能自己敲出来)

Xtract or Ucfyber的最条理的整理入门级教程 XTRACT可以对任意截面进行全过程截面分析。工程中常用来分析各种截面(如异形柱、组合截面等)的非线性特征点及承载力校核。 xtract主要思路也是根据各种材料本构关系,基于平截面假定,用fiber划分截面进行全过程非线性分析。...... 阅读详情


转自:

http://www.cnblogs.com/kedebug/archive/2012/11/27/2790124.html


自己想不出怎样01背包。。

看别人 的方法,有二分01背包的,, 还有就是两次01背包的,,

自己第二天照着记忆打,结果还能过了。。

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<string>
#include<cstring>
#include<iomanip>
#include<iostream>
#include<stack>
#include<cmath>
#include<map>
#include<vector>
#define ll long long
#define inf 0x3f3f3f3f
#define INF 1e9
#define bug1 cout<<"bug1"<<endl;
#define bug2 cout<<"bug2"<<endl;
#define bug3 cout<<"bug3"<<endl;
using namespace std;
#define sf scanf
#define pf printf
#define mem(a,b) memset(a,b,sizeof(a));

int n,m;
const int maxn=105;
const int maxm=35;
int p[maxm];

int dp[maxm][maxn];


int main(){
    while(~sf("%d%d",&n,&m)&&n+m){
        for(int i=1;i<=m;++i){
            sf("%d",&p[i]);
        }
        mem(dp,0);
        for(int i=0;i<=n;++i){
            dp[0][i]=0;
        }
        for(int i=0;i<=m;++i){
            dp[i][0]=INF;
        }

        for(int i=1;i<=m;++i){
            for(int j=1;j<=n;++j){
                dp[i][j]=dp[i-1][j];
                for(int k=0;k<j;++k){
                    dp[i][j]=max(dp[i][j],min(dp[i-1][k],p[i]/(j-k)));
                }
            }
        }
        int maxsafe=0;
        for(int i=1;i<=m;++i){
            maxsafe=max(maxsafe,dp[i][n]);
        }
        mem(dp,inf);
        for(int i=0;i<=n;++i){
            dp[0][i]=INF;
        }
        for(int i=0;i<=m;++i){
            dp[i][0]=0;
        }
        for(int i=1;i<=m;++i){
            for(int j=1;j<=n;++j){
                dp[i][j]=dp[i-1][j];
                for(int k=0;k<j;++k){
                    if(p[i]/(j-k)>=maxsafe)
                    dp[i][j]=min(dp[i][j],dp[i-1][k]+p[i]);
                }
            }
        }
        if(maxsafe==0)pf("0 0\n");
        else pf("%d %d\n",maxsafe,dp[m][n]);
    }

}


什么是华为OD?怎么才能通过华为OD机试?华为OD机试怎么刷题?(2024最新华为OD机试E卷更新中) 华为OD是Outsourcing Dispacth模式,是华为和外企德科联合招聘的简称。目前华为大多数是OD招聘。OD模式也是华为提出的一种新的用工形式,每年都会从OD项目挑优秀员工转为正编。所有OD和正式员工一样对待,没有差别,部门平时开会、评审等活动都是一起参加的,是同薪同酬,都是由华为的HR直接定的薪资,看的是我们技术能力。华为是大企业,能到华为上班也是有能力的,每个部门都有好多职位,是金子,在哪都会发光。 阅读详情

相关推荐

74LS161/48 交通灯控制系统:30-5-20-5 时序逻辑电路 Multisim 仿真验证

本文详细解析了基于74LS161/48芯片的交通灯控制系统设计,通过Multisim仿真验证30-5-20-5时序逻辑电路。从系统架构搭建、状态机实现到波形分析,提供全流程操作指南与典型问题排查方法,助力数字电路课程设计高效完成。

weixin_26742753的博客 379

UVA - 10163 Storage Keepers(二分答案+01背包)

题目链接 首先感谢洛谷大佬rayluo的详细题解,万分感激%%% 整个问题分为二分和DP两部分 二分 看到最小的最大、最大的最小这类字眼就需要考虑二分答案。假设我们二分出来的值为xxx。为了使xxx可行,也就是说每一个仓库的安全值都要大于等于xxx。而我们注意到,在这个式子中pip_ipi​为定值,kkk越大,式子的值越小,那么在pik≥x{\frac{p_i}{k} \geq x}kpi​​≥x 的情况下,kkk是有最大值的,为pix{ \frac{p_i}{x} }xpi​​,我们只需要使得每一个守卫

Happig的博客 586

STM32移植u8g2库(HAL库)(硬件SPI)(sh1106_128x64)

STM32移植u8g2库(HAL库)(硬件SPI)(sh1106_128x64) MCU型号为STM32F103RCT6,OLED屏为中景园电子1.3寸屏,驱动芯片为sh1106,分辨率为128x64,MDK版本为V5.34。

Master_0_的博客 6272

【Uva 10163】Storage Keepers

【Link】: 【Description】 你有n(n≤100)个相同的仓库。有m(m≤30)个人应聘守卫,第i个应聘者的能力值 为Pi(1≤Pi≤1000)。每个仓库只能有一个守卫,但一个守卫可以看守多个仓库。如果应聘 者i看守k个仓库,则每个仓库的安全系数为Pi/K的整数部分。没人看守的仓库安全系数为0。 你的任务是招聘一些守卫,使得所有仓库的最小安全系数...

195

new delete 详解

常规的new 和 delete 当需要内存时,可以使用new申请内存,但在用完内存时应当使用delete 去归还内存,以防止内存泄漏,具体使用方案见下面代码: int* ps = new int ; // 使用new 申明变量空间 ... ... delete ps ; '// delete 删除所申明的变量空间 上述代码将删除ps 指针指向的内存空间,但不会删除指针本身,即仍然可以使用该指针去指向其他int 类型的变量。new 和 delete 一定需要成对的使用否则极易发生内存泄漏。 注意:不

qq_42138448的博客 6938

Ansys Zemax与Speos协同设计:从HUD光学优化到驾驶环境可视化全流程解析

本文深入解析了如何利用Ansys Zemax与Speos进行协同设计,实现从HUD光学系统核心优化到驾驶环境可视化验证的全流程。文章强调了HUD设计是光学性能与视觉感知的深度耦合,通过Zemax进行精密光学设计,再利用Speos进行系统级仿真与感知模拟,最终完成从虚拟到现实的闭环验证,有效提升HUD产品的开发效率与可靠性。

weixin_29199873的博客 244

10163 - Storage Keepers(DP)

该题乍看好像背包问题,但是实际上实现起来就会发现细节上还是很不同的,  这小小的不同就可能导致完全错误,所以有必要对具体的推理过程进行归纳总结,以期找到动态规划的通用思路 。 首先,我们应该先完全明确状态方程表示的含义 。 对于该题,设d[i][j]表示i个守卫,看守j个仓库的最小安全系数的最大值 。其实说的简单一点,它就表示最小安全系数 。 一定要明确这一点,才能写出正确的递推关系 。  

AC_Arthur的专栏 786

Ubuntu开机卡在BusyBox?3种方法快速修复initramfs错误(附详细命令)

本文详细介绍了Ubuntu开机卡在BusyBox并出现initramfs错误的3种修复方法,包括使用fsck检查文件系统、调整BIOS/UEFI存储设置以及修改GRUB内核参数。针对常见的文件系统错误和根设备无法找到问题,提供了具体的命令行操作步骤和实用技巧,帮助用户快速恢复系统启动。

milk8的博客 784

uva 10163(dp)

题意:给出了n个仓库,m个人看管,以及每个人的能力值,每个仓库只需要一个人看管,但一个人可以看管多个仓库,每个仓库的安全值是看管人的能力值pi除以看管人看管仓库的数量k,仓库的安全线是所有仓库安全值中最小的那个,总的发放的工资是聘用的看管人的能力和。要求得到在最高安全线和在满足最高安全线条件下的发放工资和最小值。 题解:两个数组safe[i][j]表示前i个人看管前j个仓库的最高安全线,f[i]

俯瞰风景 798

OpenWRT端口转发与NAT环回冲突的排查与解决

本文详细解析了OpenWRT路由器中端口转发与NAT环回功能冲突导致的内网访问故障。通过生活化类比阐明两者工作原理,提供从基础诊断到内核参数调整、LuCI选项配置及手动编写iptables规则的多套解决方案,并给出进阶排查思路,帮助用户彻底解决内网无法通过公网地址访问服务的常见问题。

weixin_29243279的博客 507

嵌入式Linux开发:手把手教你调试OV9281摄像头Sensor(基于全志平台DTS配置)

本文详细解析了嵌入式Linux开发中OV9281摄像头Sensor的调试全流程,重点介绍了基于全志平台的DTS配置指南。从硬件信号检测到软件驱动配置,包括设备树关键参数设置、内核驱动适配实战及图像质量调优技巧,为开发者提供了一套完整的调试方案,助力工业视觉和边缘计算设备的开发。

weixin_28716769的博客 371

uva 10163 - Storage Keepers(01背包)

题目链接:10163 - Storage Keepers 题目大意:给出m为仓库的数量, 给出n为有守夜人的数量, 然后给出n个数值,为对应守夜人应付的酬劳,每个守夜人的能力与他需要的酬劳是相等的,并且守夜人可以同时负责多个仓库的安全,不过这样子安全值就变为val[i]/k(val[i]表示第i个守夜人的能力值,k表示他负责的仓库数量, /为取整),先在要的出方案,使得所有仓库中安全值最

不慌不忙、不急不躁 2560

【SpringBoot 4.x 第29节】Spring Security 7 入门:先理解认证和授权!

🏆 本文收录于 《滚雪球学 Spring Boot 4.x》 专栏。本专栏面向 有一定 Java 基础,但尚未系统学习 Spring Boot 的读者,采用“滚雪球式学习法”:先跑通、再理解、再重构、再上线,带你从第一个 Hello API 开始,逐步完成一个可部署、可监控、可扩展的后端项目。

**My Coding Family** 552

uva 10163 - Storage Keepers 每组最多选一个的分组背包

uva 10163         有N个仓库,总共有M个人来应聘仓库看守员,每个人的能力是P,一个人可以看守多个仓库(设k个),每个仓库只能被一个人看,仓库的安全系数为p/k,公司的安全底线为最低的仓库安全系数,每个人每月的薪水是P,求能使安全底线最高的值和达到此值中最小的花费。 有两个条件,最低线和花费,要加一维开三维的数组,把每个人看1到n个仓库分作w为p,c为p/k的物品, dp[i]

yan_____的专栏 1075

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

uva 10163 Storage Keepers (DP)

uva 10163 Storage Keepers有N个仓库,M个管理员,M个管理员每个人的工资都不一样,工资与他们的能力值(P)相同。一个管理员可以看管多个(n)仓库,但是仓库的安全值就会变为P / n。现在要是的最小的安全值最大,并且还要求出该状况下的最小花费。两次DP,第一次dp求出最大的最小安全值ans,第二次dp根据第一次dp求出的ans求出最小的花费。#include <cstdio>

总有那么一群人喜欢盯着我的博客看,估计这是他们见过最长的博客名,我必须得告诉他们博客名最长可以写多长 722

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

UVA 10163 Storage Keepers

背包DP 题意: 有n个仓库需看管,现在有m个人应聘,每个人有一个价值p[i],雇佣这个人需要花费p[i],问最大的保险值是多少,以及保证最大保险值时的最小花费。 一个仓库保险值就是看管每个仓库的人的价值,但是管理员可以同时看管多个仓库,这时对应仓库的保险值为p[i]/x,x为该管理员同时看管的仓库数。 总的保险值为所有仓库保险值的最小值。一个仓库只能有一个看管者。 如果不能保证保险值大于

= = 966

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

UVA - 10163 Storage Keepers 多重背包

问题 仓库守卫,一共有N个仓库,有M人应聘首位,每个仓库最多一个守卫,一个守卫可以看管多个仓库,守卫i的能力值是PiP_iPi​,薪资等于能力值,仓库的安全系数L等于Pi/KP_i/KPi​/K的整数部分,KKK是守卫iii看守的仓库数量 求最小安全系数的最大值,和此前提下的最小能力值总和 分析 和多重背包思路有点相似 分开计算,首先求最大最小安全系数 L,再求最小的能力值总和Y L(i,j)代表...

zpf1998的博客 243

UVA - 10163 Storage Keepers

题目大意:给出m为仓库的数量, 给出n为有守夜人的数量, 然后给出n个数值,为对应守夜人应付的酬劳,每个守夜人的能力与他需要的酬劳是相等的,并且守夜人可以同时负责多个仓库的安全,不过这样子安全值就变为val[i]/k(val[i]表示第i个守夜人的能力值,k表示他负责的仓库数量, /为取整),先在要的出方案,使得所有仓库中安全值最低的那个仓库的安全值越高, 并且要使得酬劳越低。 解题思路

Bingo 1646

uva 10163 Storage Keepers

题意:有N个仓库,让M个人守,使每个仓库安全值尽量高的同时,花费最小。 思路:如果两个一起更新的话,当安全值相等,更细花费,或者安全值更大,一起更新,这样会导致问题就是,因为题目安全值是所有值中的最小值,有可能前面其实取更下花费的人就能达到最小值,但是你前面已经更新成了较大的。 所以应该分两步,第一步,先求出能够使仓库达到的最大值,第二步,求出使每个仓库达到这个值的最小花费。 第一个状态表示

catfish的专栏 412

uva 10163——Storage Keepers

题意:给定n个相同的仓库,有m个人轮流值守,第i个人的应聘者的能力为pi,如果应聘者看守k个仓库,则仓库安全指数为pi/k的整数部分,求使得所有最小安全系数最大且工人pi最小的设计。 思路:二分+01背包。01背包找到x安全系数下是否能守住n个仓库,不断的二分k,找出最小安全系数最大的值,01背包维护最小的工资。 code: #include using namespace

坚持不懈 666

UVa 10163 Storage Keepers

题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1104 #include #include #include #include using namespace std; // s[i][j]代表从第i,i+1,...

c21c21的专栏 368

UVA 10163 - Storage Keepers(dp)

题意: 有n个仓库,让m个人来看管。一个仓库只能由一个人来看管,一个人可以看管多个仓库。 每个人有一个能力值pi,如果他看管k个仓库,那么所看管的每个仓库的安全值为 pi/k(向下取整) 如果某个仓库没有人看管,那么它的安全值为0。所有仓库的安全值L = min{ 每个仓库的安全值 } 如果雇佣一个人的工资等于他的能力值pi。 从m个人中选择一些人雇佣,问所有仓库的安全值最高是多少,在安全值最高的情况下,求雇佣的最少价钱。

D_Double's Journey 2588

仓库守卫 Storage Keepers

UVA10163 这道题需要两次dp 1. 求最小安全指数最大值 定义: dp[i][j]dp[i][j]dp[i][j]为考虑前i个人看守前j个仓库最小安全指数最大值,SafetyIndex[i]SafetyIndex[i]SafetyIndex[i]为第iii个人的能力值。 初始化: dp[i][0]=infdp[i][0]=infdp[i][0]=inf(常数/0=无穷大) 剩下的dp=0...

蒟蒻的博客 416

【UVa】【二分】【DP】10163 Storage Keepers

UVa 10163 Storage Keepers 题目 ◇题目传送门◆(由于UVa太慢,这里提供一个vjudge的链接) ◇题目传送门(vjudge)◆ 题目大意 有NNN个相同的仓库需要一些看守。现有MMM个管理员来应聘,第iii个人的能力值为pipip_i,所需工资也是pipip_i。若将第iii个人派去看守kkk个仓库,则每个仓库的安全系数为⌊pik⌋⌊pi...

IDDFS 214

uva 10163 Storage Keepers (dp)

Background    Randy Company has N (1 1.       Each keeper has a number Pi (1 2.       All storages are the same as each other. 3.       A storage can only be lookd after by one keeper. But a keepe

勿忘初衷 867

Storage Keepers UVA - 10163

动态规划一共需要做两次,第一次是计算出所有最小安全系数的最大值,然后再计算出在此前提下能力值总和的最小值。在第一次中dp[i][j]表示i个人看守j个仓库最小的安全系数。那么在加入第i个人的时候,就分配j个仓库中的某一部分让第i个人看守,同时计算并且保存在这种情况下power[i]/(j-k)以及dp[i-1][k]两者的最小值,枚举所有的情况,保存所有的这种情况的最大值,最终得出的dp[M][N

zju2016的博客 276
上一篇: uva1631 Locker 记忆化搜索
下一篇: uva 1395 slim span MST
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值