UVA 10163 十六 Storage Keepers

十六 Storage Keepers

Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu

Submit Status Practice UVA 10163

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <algorithm>
 4 using namespace std;
 5
 6 const int inf=0x3f3f3f3f;
 7 int a[105],dp1[105][105],dp2[105][105];
 8
 9 int main()
10 {
11     int n,m;
12     int i,j,k;
13     while(scanf("%d %d",&n,&m)!=EOF)
14     {
15         if(n==0 && m==0)
16             break;
17         for(i=1;i<=m;i++)
18             scanf("%d",&a[i]);
19         memset(dp1,0,sizeof(dp1));
20         for(i=0;i<=m;i++)
21             dp1[i][0]=inf;
22         for(i=1;i<=n;i++)
23             dp1[0][i]=0;
24
25         for(i=1;i<=m;i++)
26         {
27             for(j=1;j<=n;j++)
28             {
29                 dp1[i][j]=dp1[i-1][j];
30                 for(k=0;k<j;k++)
31                 {
32                     dp1[i][j]=max(dp1[i][j],min(dp1[i-1][k],a[i]/(j-k)));
33                 }
34             }
35         }
36         if(!dp1[m][n])
37         {
38             printf("0 0\n");
39             continue;
40         }
41
42         memset(dp2,0,sizeof(dp2));
43         for(i=0;i<=m;i++)
44             dp2[i][0]=0;
45         for(i=1;i<=n;i++)
46             dp2[0][i]=inf;
47
48         for(i=1;i<=m;i++)
49         {
50             for(j=1;j<=n;j++)
51             {
52                 dp2[i][j]=dp2[i-1][j];
53                 for(k=0;k<j;k++)
54                 {
55                     if((a[i]/(j-k))>=dp1[m][n])
56                     {
57                         dp2[i][j]=min(dp2[i][j],dp2[i-1][k]+a[i]);
58                     }
59                 }
60             }
61         }
62
63         printf("%d %d\n",dp1[m][n],dp2[m][n]);
64     }
65     return 0;
66 }

时间: 2024-10-06 13:08:59

UVA 10163 十六 Storage Keepers的相关文章

uva 10163 Storage Keepers (DP)

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

DP(两次) UVA 10163 Storage Keepers

题目传送门 1 /* 2 题意:(我懒得写,照搬网上的)有n个仓库,m个人看管.一个仓库只能由一个人来看管,一个人可以看管多个仓库. 3 每个人有一个能力值pi,如果他看管k个仓库,那么所看管的每个仓库的安全值为 pi/k(向下取整) 4 如果某个仓库没有人看管,那么它的安全值为0.所有仓库的安全值L = min{ 每个仓库的安全值 } 5 从m个人中选择一些人雇佣,问所有仓库的安全值最高是多少,在安全值最高的情况下,求雇佣(能力值)的最少价钱. 6 DP(两次):dp[i][j]表示前i个人管

微信小程序把玩(三十六)Storage API

原文:微信小程序把玩(三十六)Storage API 其实这个存储在新建Demo的时候就已经用到了就是存储就是那个logs日志,数据存储主要分为同步和异步 异步存储方法: 存数据 wx.setStorage(object) 相同key会覆盖,可写回调方法 获取方法: wx.getStorage(object) 清除方法: wx.clearStorage()里面可以写回调函数 成功,失败,完成 同步存储方法: 存数据 相同key会覆盖 wx.setStorageSync(key,data) 读数据

三十六、git clone简介

翻译整理自: http://web.mit.edu/~mkgray/project/silk/root/afs/sipb/project/git/git-doc/git-clone.html 在使用git来进行版本控制时,为了得一个项目的拷贝(copy),我们需要知道这个项目仓库的地址(Git URL). Git能在许多协议下使用,所以Git URL可能以ssh://, http(s)://, git://,或是只是以一个用户名(git 会认为这是一个ssh 地址)为前辍. 有些仓库可以通过不只

跟我学SpringCloud | 第十六篇:微服务利剑之APM平台(二)Pinpoint

目录 SpringCloud系列教程 | 第十六篇:微服务利剑之APM平台(二)Pinpoint 1. Pinpoint概述 2. Pinpoint主要特性 3. Pinpoint优势 4. Pinpoint架构简介 5. Pinpoint数据结构简介 6. Pinpoint版本依赖 7. Spring Cloud与Pinpoint实战 8. 小结 SpringCloud系列教程 | 第十六篇:微服务利剑之APM平台(二)Pinpoint Springboot: 2.1.7.RELEASE Sp

Powershell管理系列(二十六)PowerShell操作之批量导出&导入邮箱

-----提供AD\Exchange\Lync\Sharepoint\CRM\SC\O365等微软产品实施及外包,QQ:185426445.电话18666943750 项目中有时候做跨林邮箱迁移的时候,条件不成熟,比如安全考虑或者其他考虑,不能做双林信任,这样就提出了一个问题,历史邮件需要使用的话怎么办,一个简单高效的解决办法就是从源森林批量导出邮件为.pst文件,在批量导入到目的域森林,具体操作如下: 1.赋予管理账号邮件导入导出权限,命令如下: cls whoami New-Manageme

QT开发(十六)——QT绘图实例-钟表

QT开发(十六)--QT绘图实例-钟表 一.钟表实现原理 钟表的实现需要设置定时器,定时器每隔一秒发送timeout()信号到QWidget::update()槽函数,update()槽函数将会重绘一次窗口,重写重绘事件函数paintEvent(QPaintEvent *event),根据获取的当前系统时间的时钟.分钟.秒钟重绘钟表的时针.分针.秒针. QTimer *timer = new QTimer(this); timer->start(1000);//一秒钟 connect(timer

Objective-C(十六、内存管理,自动释放池,ARC,强指针,弱指针,方法族)——iOS开发基础

结合之前的学习笔记以及参考<Objective-C编程全解(第三版)>,对Objective-C知识点进行梳理总结.知识点一直在变,只是作为参考,以苹果官方文档为准~ 十六.内存管理相关知识(二) 1.autorelease,自动释放机制 - (instancetype)autorelease; (1)自动释放池的创建 iOS5.0之前 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //进行一系列操作 //此处不可以使用

第三百一十六节,Django框架,中间件

第三百一十六节,Django框架,中间件 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在django项目的settings模块中,有一个 MIDDLEWARE变量,其中每一个元素就是一个中间件(也就是一个中间件模块的一个类),如下. settings模块中 #中间件 MIDDLEWARE = [ 'django.middleware.security.Securit