dp - Google Code jam Qualification Round 2015 --- Problem B. Infinite House of Pancakes
Problem B. Infinite House of Pancakes
Problem's Link: https://code.google.com/codejam/contest/6224486/dashboard#s=p1
Mean:
有无限多个盘子,其中有n个盘子里面放有饼,每分钟你可以选择两种操作中的一种:
1.n个盘子里面的饼同时减少1;
2.选择一个盘子里面的饼,分到其他盘子里面去;
目标是让盘子里的饼在最少的分钟数内吃完,问最少的分钟数。
analyse:
可以分析出,先分再吃不会比先吃再分差,所以我们选择先分再吃。
首先用dp预处理,dp[i][j]表示:初始时为i个饼的盘子经过分以后最大值为j需要多少步。
然后我们就可以暴力+贪心了,枚举吃的次数(1~MAX),对于每一个吃的次数,我们需要把每个饼都分到小于或等于这个次数。详见代码。
Time complexity: 小于 O(n^3)
Source code:
#include<iostream> #include<cstdio> #include<cmath> #include<climits> using namespace std;const int MAXN=1002; int dp[MAXN][MAXN],a[MAXN]; void pre() {for(int i=0;i<=MAXN;++i){for(int j=1;j<i;++j){dp[i][j]=MAXN;for(int k=1;k<i;++k){dp[i][j]=min(dp[i][j],dp[i-k][j]+dp[k][j]+1);}}} } int main() {pre();int t;scanf("%d",&t);for(int Cas=1;Cas<=t;++Cas){int n;scanf("%d",&n);int maxx=INT_MIN;for(int i=1;i<=n;++i){scanf("%d",&a[i]);maxx=max(maxx,a[i]);}int ans=INT_MAX;for(int eat=1;eat<=maxx;++eat){int tmp=0;for(int i=1;i<=n;++i){tmp+=dp[a[i]][eat];}tmp+=eat;ans=min(ans,tmp);}printf("Case #%d: %d\n",Cas,ans);}return 0; }
View Code
转载于:https://www.cnblogs.com/crazyacking/p/4419154.html
dp - Google Code jam Qualification Round 2015 --- Problem B. Infinite House of Pancakes相关推荐
- Google Code jam Qualification Round 2015 --- Problem A. Standing Ovation
Problem A. Standing Ovation Problem's Link: https://code.google.com/codejam/contest/6224486/dashbo ...
- 2015 Google code jam Qualification Round A 水
题意:给你一个序列 从 0-n 初始位置为0 ,只能从 i 走到 i+1 你必要有的人数 >= i+1 ,每个位置有a[i]个人,问你走到 n 还需要多少个人. 解题思路:暴力 解题代码: ...
- 【Google Code Jam】Millionaire
题目描述 Google Code Jam 2008APAC local onsites C 最开始你有X元钱,要进行M轮赌博.每一轮赢的概率为P,你可以选择赌与不赌,如果赌也可以将所持的任意一部分钱作 ...
- Google Code Jam程序设计大赛中国人获冠亚军
来自 Google的官方消息,今年的Google Code Jam程序设计大赛,冠亚军都被中国人获得. 冠军是楼天城(Tiancheng Lou,来自清华大学计算机系),奖金$10,000.亚军朱泽园 ...
- 入职顶级互联网公司,竞争性编程是必须的吗?Google code jam King赛前采访(附有视频)
主持人:你能告诉我一些关于你自己的事吗 受访者:就像我决定从事的竞争性编程一样,竞争性编程我不仅参加了那些比赛,高中时我在美国参加Google Code Jam,因为我进入了决赛,这是我生命中的一部分 ...
- Google Code Jam 2017 资格赛
https://code.google.com/codejam/contest/3264486/dashboard#s=p3 Oversized Pancake Flipper (1)问题描述: Pr ...
- Google Code Jam 2015 Qualification Round: Problem A. Standing Ovation
昨天被虐的太惨,剩下的题过几天慢慢看.>< 我开始以为只要把每个是0的地方换成1就行了,后来发现之前的level如果人数多的话,后面的level是可以出现0的.== 用pre[]记录之前出 ...
- [C++]Standing Ovation——Google Code Jam 2015 Qualification Round
Problem It's opening night at the opera, and your friend is the prima donna (the lead female singer) ...
- Google Code Jam Round 1A 2015 解题报告
题目链接:https://code.google.com/codejam/contest/4224486/ Problem A. Mushroom Monster 这题题意就是,有N个时间点,每个时间 ...
最新文章
- QT的QImage类的使用
- OverFeat4.2的安装和使用
- 如何修改来自ERP 系统的product category
- 会移动的文字(Marquee)
- 2怎么开机_MacBook如何取消开盖自动开机
- python filter函数 字符串_Python实现filter函数实现字符串切分
- 分布式定时任务之3:elasticjob状态一直是分片待调整
- deeping 系统连接外接显示器无法无法设置双屏(有可能是不同接口在不同显卡上)...
- 干货!国外关于高速PCB设计的技术书籍和资料介绍
- VirtualBox虚拟机安装Win10企业版
- 自动量化炒股软件是什么?
- Laravel文档阅读笔记-Adding a Markdown editor to Laravel
- signature=c31ee9b23a444aeb59534b250024e5ac,Assembling unit for tube components
- 获奖!CACTER邮件安全网关荣获电子邮件安全优秀产品奖项
- Error launching IDEA
- 2022年煤矿探放水题库及模拟考试
- malloc()动态分配内存
- 对未来计算机的期盼,表达怀念过去期待未来的句子
- Python程序员看见一个好看的手机壁纸网站,开撸!
- Linux的firewalld防火墙学习笔记220929
热门文章
- 马斯克一说特斯拉“全自动驾驶”,大家就想笑
- 看不懂旷视升级,是因为不知道中国AI正在经历的变革
- 致命车祸进展:Uber无人车检测到了行人,但选择了忽略
- 何恺明!再斩ICCV 2017最佳论文
- Oracle/MySQL decimal/int/number 转字符串
- 实现京东金融-悬浮框效果
- AngularJS中$timeout和$interval的用法详解
- 使用MATLAB贝叶斯工具箱(BNT),进行吉布斯采样(Gibbs Sampling)之前需要做的编译工作...
- MFC避免窗口闪烁的方法(OnEraseBkgnd) .
- 2007年下半年网工考试试题+分析+标准答案