P1489 猫狗大战

题目描述

新一年度的猫狗大战通过SC(星际争霸)这款经典的游戏来较量,野猫和飞狗这对冤家为此已经准备好久了,为了使战争更有难度和戏剧性,双方约定只能选择Terran(人族)并且只能造机枪兵。

比赛开始了,很快,野猫已经攒足几队机枪兵,试探性的发动进攻;然而,飞狗的机枪兵个数也已经不少了。野猫和飞狗的兵在飞狗的家门口相遇了,于是,便有一场腥风血雨和阵阵惨叫声。由于是在飞狗的家门口,飞狗的兵补给会很快,野猫看敌不过,决定撤退。这时飞狗的兵力也不足够多,所以没追出来。

由于不允许造医生,机枪兵没办法补血。受伤的兵只好忍了。555-

现在,野猫又攒足了足够的兵力,决定发起第二次进攻。为了使这次进攻给狗狗造成更大的打击,野猫决定把现有的兵分成两部分,从两路进攻。由于有些兵在第一次战斗中受伤了,为了使两部分的兵实力平均些,分的规则是这样的:1)两部分兵的个数最多只能差一个;2)每部分兵的血值总和必须要尽可能接近。现在请你编写一个程序,给定野猫现在有的兵的个数以及每个兵的血格值,求出野猫按上述规则分成两部分后每部分兵的血值总和。

输入输出格式

输入格式:

第一行为一个整数n(1<=n<=200),表示野猫现在有的机枪兵的个数。以下的n行每行一个整数,表示每个机枪兵的血格(1<=ai<=40)。

输出格式:

一行,为两个整数,表示分成两部分后每部分兵的血值总和

输入输出样例

输入样例#1:

3
35
20
32

输出样例#1:

35 52

说明

TO 狗狗:这道题的数据范围我已经尽量按星际的游戏规则来了,如果你再固执于由于机枪兵的攻击力一定使不能达到某些血格值或者游戏中一定要造农民不能使机枪兵的人数达到200的话,我只能决定将那场猫狗大战的录像公开于世人了!!!

f[i][j]表示选i个兵能否构成j的血量 转移方程 f[i][j]=f[i][j]|f[i-1][j-a[i];边界条件 f[0][0]=1 即选取0个人构成0的血量是可行的。最后统计答案是从sum(所以兵血量和)除以2开始枚举,发现的第一个满足的方案时就输出解。

 1 #include<cstdio>
 2 #include<cstring>
 3
 4 int a[210],f[110][8010],sum[210];
 5 int n;
 6
 7 int main()
 8 {
 9     scanf("%d",&n);
10     for (int i=1; i<=n; ++i)
11     {
12         scanf("%d",&a[i]);
13         sum[i] = sum[i-1]+a[i];
14     }
15     f[0][0] = 1;
16     for (int i=1; i<=n; ++i)
17         for (int j=n/2; j>=1; --j)
18             for (int k=0; k<=sum[i]; ++k)
19                 if (k>=a[i] && f[j-1][k-a[i]]==1) f[j][k]=1;
20
21     for (int i=sum[n]/2; i>=0; --i)
22         if (f[n/2][i]==1)
23         {
24             printf("%d %d",i,sum[n]-i);
25             return 0;
26         }
27     return 0;
28 }

转载于:https://www.cnblogs.com/mjtcn/p/7113093.html

P1489 猫狗大战相关推荐

  1. 洛谷P1489 猫狗大战

    题目描述 新一年度的猫狗大战通过SC(星际争霸)这款经典的游戏来较量,野猫和飞狗这对冤家为此已经准备好久了,为了使战争更有难度和戏剧性,双方约定只能选择Terran(人族)并且只能造机枪兵. 比赛开始 ...

  2. luogu P1489 猫狗大战

    题目描述 新一年度的猫狗大战通过SC(星际争霸)这款经典的游戏来较量,野猫和飞狗这对冤家为此已经准备好久了,为了使战争更有难度和戏剧性,双方约定只能选择Terran(人族)并且只能造机枪兵. 比赛开始 ...

  3. 动态规划--from zpz

    版权声明:copy from zpz,我可能要修改 https://blog.csdn.net/qq_40828060/article/details/83064425 文章目录 前言 记忆化搜索 动 ...

  4. 动态规划,且学且放弃

    文章目录 前言 记忆化搜索 动态规划的基本解题思路 背包问题 01背包 (待处理)P1489 猫狗大战 01背包的空间优化问题 P1048 采药 P1510 精卫填海 P1566 加等式 P1504 ...

  5. 深度学习之基于AlexNet实现猫狗大战

    这次实验的主角并不是猫狗大战,而是AlexNet网络,只不过数据集为猫狗大战数据集.本次实验利用自己搭建的AlexNet网络实现猫狗大战,测试一下AlexNet网络的性能. AlexNet网络作为Le ...

  6. 基于tensorflow2.0实现猫狗大战(搭建网络迁移学习)

    猫狗大战是kaggle平台上的一个比赛,用于实现猫和狗的二分类问题.最近在学卷积神经网络,所以自己动手搭建了几层网络进行训练,然后利用迁移学习把别人训练好的模型直接应用于猫狗分类这个数据集,比较一下实 ...

  7. 使用猫狗大战数据集进行一次完整的TensorFlow训练

    1.简介 一直想将图片制作成tfrecords文件,然后在模型中运行一下.最初想用的数据集是mnist,但是跑的过程中一直出现问题.找到这一篇知乎上的博客,写的非常不错. 原博客地址:https:// ...

  8. 第四次作业:猫狗大战挑战赛

    文章目录 1. 导入需要的包,检查使用设备 2. 导入数据集并修改数据集目录结构 3. 数据处理 4. 创建VGG Model 5. 修改最后一层,冻结前面层的参数 6. 训练并测试全连接层 7.可视 ...

  9. python猫狗大战pytorch_深度学习实战---猫狗大战(pytorch实现)

    数据准备 猫狗大战数据集下载链接 微软的数据集已经分好类,直接使用就行, 数据划分 我们将猫和狗的图片分别移动到训练集和验证集中,其中90%的数据作为训练集,10%的图片作为验证集,使用shutil. ...

最新文章

  1. Swift2.x编写NavigationController动态缩放titleView
  2. 机器学习_生成式模型与判别式模型
  3. @Value 注解获取properties值
  4. 一道关于 ARRAY 深度展开的面试题
  5. React开发(135):ant design学习指南之form中动态form新增删除
  6. 谈判学:三招了解对方底线
  7. 设计灵感|海报设计常见中看起来很高级的文字排版
  8. Android 开发之 bindService() 通信
  9. Crackeme018
  10. C++ Code_combobox
  11. HazeOver For Mac(管理窗口工具)
  12. 使用PyInstaller脚本打包时提示Unable to open icon file 的一种情况
  13. 【Junit Experiment】Junit 软件质量测试实验--日期格式规范性+字符串格式规范性
  14. 高德地图有用的API
  15. 20款简洁独特的logo设计
  16. api-ms-win-crt-stdio-l1-1-0.dll丢失问题解决
  17. 鸿蒙系统首批机型,鸿蒙系统名单确认,麒麟9000机型首批,众多机型要说再见!...
  18. C++笔记 关于string的笔记
  19. Google Earth Engine(GEE)——逐月降水数据下载和直方图表展示
  20. ORACLE SQL格式化小数点

热门文章

  1. 杰里之升级复位可以选择软复位跳转和绝对地址跳转【篇】
  2. 公用网络切换为专用网络的详细步骤
  3. 品优购商城项目常见BUG解析
  4. 100部好看的校园喜剧片(可练习英文)+美国校园青春励志电影+25部口语练习电影+20部最浪漫电影
  5. 5G赋能行业:丢掉“传统”外衣,向“智”造加速
  6. 烂泥行天下 php,烂泥:php5.6源码安装及php-fpm配置与nginx集成
  7. 技术人员的赚钱之道3:打工思维向创业思维的转变
  8. VS CODE下 无法执行 node-gyp 命令
  9. smartgwt (B)
  10. hive java.net.SocketTimeoutException: Read timed out 问题解