企鹅的游戏(penguin)

题目描述

Shiva养了一只小企鹅。小企鹅很聪明,她总是帮Shiva和他的好朋友想出很多很好玩的游 戏。其中有一个游戏特别经典,Shiva和他的小伙伴们百玩不厌。 游戏规则如下: 先给出2个正整数序列A1、A2,序列长度分别为L1,L2 (1 ≤ L1, L2 ≤ 5000)。你可以 做如下移动:移去第一个序列的最后P1 (P1≥1) 个数(可以是整个序列)并得到它们的和 S1,同时移去第二个序列的最后P2 (P2≥1)个数(可以是整个序列)并得到它们的和S2。 那么这次移动的费用为 (P1-S1)*(P2-S2)。你可以继续游戏直到两个序列为空,所以不允许一个数列空了,而另一个数列中还有数。而这次游戏 的费用就为每次移动费用的和。 你现在的目标是使这次游戏的费用最小。 注意:序列能为空当且仅当两个序列同时为空。

输入

第一行两个正整数L1,L2分别表示两个序列的长度; 第二行L1个正整数,描述序列A1[1..L1],第i个正整数为A1[i] 第三行L2个正整数,描述序列A2[1..L2],第i个正整数为A2[i] 除L1,L2外,所有的整数均不超过1000。

输出

一个正整数表示该次游戏的最小费用

样例输入

3 2
1 2 3
1 2

样例输出

2

提示

对于30%数据,1<=L1,L2<=50
对于60%数据,1<=L1,L2<=500
对于100%数据,1<=L1,L2<=5000


solution

可以发现每次操作k1或者k2一定有一个等于1

(直观的想多个乘一起一定不优)

效率O(n^3)

有个技巧 把a[i]--;

f[i][j]=min(f[i][j],f[i-1][j]+a[i]*b[j]);
f[i][j]=min(f[i][j],f[i][j-1]+a[i]*b[j]);
f[i][j]=min(f[i][j],f[i-1][j-1]+a[i]*b[j]);

为什么这样可以呢

假设代价是a*(b+c)

我们可以理解为a*b+a*c

那就相当于b时留着a不删去c时再删去

include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#define maxn 2005
using namespace std;
int n,m,f[maxn][maxn],a[maxn],b[maxn];
int main()
{cin>>n>>m;for(int i=0;i<=n;i++)for(int j=0;j<=m;j++)f[i][j]=1e9;for(int i=n;i>=1;i--){scanf("%d",&a[i]);a[i]--;}for(int i=m;i>=1;i--){scanf("%d",&b[i]);b[i]--;}f[0][0]=0;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){f[i][j]=min(f[i][j],f[i-1][j]+a[i]*b[j]);f[i][j]=min(f[i][j],f[i][j-1]+a[i]*b[j]);f[i][j]=min(f[i][j],f[i-1][j-1]+a[i]*b[j]);}}cout<<f[n][m]<<endl;return 0;
}

企鹅的游戏(penguin)相关推荐

  1. 企鹅java游戏下载安装_企鹅企鹅生活安卓版游戏下载|企鹅企鹅生活手游下载v1.6.1-乐游网安卓下载...

    <企鹅企鹅生活手游>这是一款玩法非常轻松有趣的点击类养成手游,游戏采用卡通风格设计非常的清新美观,游戏中,玩家将能体验到养育企鹅的各种乐趣,从孵化企鹅蛋到看着企鹅一点一点长大,非常的有意思 ...

  2. fcn从头开始_从头开始:简单游戏系列1-抓鱼

    fcn从头开始 Recently, I've decided to take a break from coding on IDE's and go back to the basics of exp ...

  3. 【娱乐休闲】Ubuntu下的小游戏哦!

    SuperTux  and SuperTux2 类似于超级玛丽,不过主角换成了一只企鹅.安装方法:         sudo apt-get install supertux Fish Fillets ...

  4. 树莓派基金会来号召用键盘生物学家研究企鹅

    伦敦动物学会(Zoological Society of London)于2014年,与伍兹霍尔海洋研究所和牛津大学等组织合作监控企鹅的计划Penguin Lifelines有了新进展,伦敦动物学会现 ...

  5. 企鹅号一万阅读能有多少收益?企鹅号平台补贴怎么获得

    首先介绍下企鹅自媒体平台的优势 企鹅媒体平台由腾讯推出,发布的文章将在天天快报.腾讯新闻客户端.微信新闻插件.手机QQ新闻插件.QQ公众号.手机腾讯网.QQ浏览器等 平台渠道进行一键分发,所以流量是相 ...

  6. IOS塔防游戏《坦克对大炮》的开发设计记录

    IOS塔防游戏<坦克对大炮>的开发设计记录 引子 游戏已经在App Store上线几个月了,一直很想写点什么记录一下.真要写的时候,却又发现无从下笔没啥好写的.在2012年进入IOS,对于 ...

  7. 腾讯的断舍离:弃“企鹅”,保“虎斗”

    配图来自Canva可画 2022年4月7日,企鹅电竞发布公告宣布,将于2022年6月7日23时59分终止运营.企鹅电竞经过多番垂死挣扎之后,最终还是选择了主动停运,体面离场.不过"企鹅&qu ...

  8. 《Linux游戏编程》——理解Linux文件系统标准

    Linux游戏编程 Programming Linux Games [美]John R. Hall 著 作者:[美]John R. Hall 单位:Loki Software, Inc. 时间:200 ...

  9. 开源玩家福利:十大Linux免费游戏

    假如当你考虑从Windows平台迁移至Linux平台时,"我能在Linux平台上游戏吗?"这类疑问正困扰着你,那么对此这有一个答案就是"快去Linux平台吧!" ...

  10. 谁说linux下无游戏,十大免费linux大型游戏集合

     发表时间:2014-08-28 假如当你考虑从Windows平台迁移至Linux平台时,"我能在Linux平台上游戏吗?"这类疑问正困扰着你,那么对此这有一个答案就是&quo ...

最新文章

  1. python读取文件特定内容_python读取指定内存的内容
  2. 专栏 | 基于 Jupyter 的特征工程手册:特征选择(五)
  3. 一篇小黄文牵出国内最大黑产
  4. Openstack迁移DDH最佳实践
  5. 牛客练习赛36 F-Rabbit的蛋糕 (叉积求面积, 记录前缀)
  6. 路由器下交换机下计算机不能共享,路由器下接交换机,路由下的电脑和交换机下的电脑如何实现打印机共享?...
  7. flask-01-http通信的回顾
  8. PHPExcel+phalcon+yii批量导入
  9. 笨办法学 Linux 0~3
  10. 阿里云开源镜像站下载最新Ubuntu和CentOS镜像
  11. c语言蛮力法实现背包问题
  12. MSP430单片机,大学的回忆
  13. 化工图纸中LISP_化工设计之工程图纸(这篇文章给你讲全了)
  14. Team Tic Tac Toe--数据结构set的妙用
  15. C语言半框,不同的镜架结构优劣大盘点
  16. 代码式动态录入生成个人简历页面html页面前端源码
  17. 树莓派3b 重装系统后 启动ssh 和 设定自动连接wifi
  18. 经营十二条(学习总结)
  19. 如何创建二维数组 微信小程序_微信小程序遍历二维数组
  20. JC24B 2.4G无线模块配置

热门文章

  1. linux 火狐 jre插件,[原]再谈Firefox安装java插件的问题
  2. 艾宾浩斯遗忘曲线函数
  3. 仙人掌真的会防辐射吗
  4. 听过闰年闰月,可你听过闰秒吗?
  5. Chinese-Whisper聚类算法
  6. 如何释放计算机内存吗,教您如何有效释放计算机内存空间!
  7. 【人工翻译线代教材】Introduction to Linear Algebra BY Gilbert Strang【MIT】【线代】【翻译】
  8. 【PC】自制QQ机器人(python+VB6)
  9. 【图示】AppleID绑定支付宝的方法
  10. 华为轮值董事长郭平新年致辞:不经艰难困苦,何来玉汝于成