dp训练第27题 vijos1153 猫狗大战 背包
给定一个整数n(200)和n个数(40).
要求将这些数分组,使得个数最多差1且数字和最接近.
做法很多,这里列举一种
题意要求从n个数中选择n/2个,并使得和与总和的一半最为接近.
状态表示:可以用dp[i][j]表示选择了i个数时和为j的情况是否存在.
边界条件:dp[0][0]=1.
状态表示:dp[i][j]|=dp[i-1][j-save[k]]
复杂度(200*100*200*40)约为(2e8)???
最近几题的复杂度都这么凶险的吗
结果表示:
从dp[n/2][]中搜索,找到dp[n/2][j]为1且j距离sum/2最近的
代码是经典的三段dp:
1.读入/预处理
2.dp
3.输出结果
关于dp环节有几点:
1.需要倒转方向,因为经过了空间优化且每个物品只有一件
2.不用dp到0,因为本题中有个数i的限制.
最后的输出环节:
注意了,主要的复杂度都在dp上,所以dp部分以效率为主.
但是输出环节复杂度不会超过8000,所以应该以易读为主,不要想什么神奇操作,他让干什么就干什么就最好,比如本题中,直接选取两者差最小的就行.
const int N = 128, V = 8096;
int save[N];
int dp[N][V];int n=read(),sum=0;for(int i=1;i<=n;i++)sum+=(save[i]=read());dp[0][0]=1;for(int k=1;k<=n;k++)for(int i=min(n/2,k);i>=1;i--)for(int j=min(k*40,sum);j>=save[k];j--)dp[i][j]|=dp[i-1][j-save[k]];int ans=0;for(int j=0;j<=sum;j++)if(dp[n/2][j]&&abs(j*2-sum)<abs(ans*2-sum))ans=min(j,sum-j);printf("%d %d\n",ans,sum-ans );
dp训练第27题 vijos1153 猫狗大战 背包相关推荐
- dp训练第25题 vijos 1059 积木城堡 背包
给定n(100)个数字集合,每个集合最多由100个小于等于100的数从小到大排列而成(不重复). 现在要将每个集合中可以删去一些数,使得各个集合的数字和相等,若有多解取和最大的.无解输出-1. 背包题 ...
- 动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包,混合背包
动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包 01背包 && 完全背包 && 分组背包 の 视频教程:https://www.bilibi ...
- 7月29日dp训练总结
7 7 7 月 29 29 29 日 d p dp dp 训练总结 时间安排 考试时间:8点到10点20 8 : 00 ∼ 8 : 20 8:00\sim8:20 8:00∼8:20 : 把题目通读一 ...
- 爆炸的符卡洋洋洒洒<每日一题>(01背包变种)
题目: 题目链接:登录-专业IT笔试面试备考平台_牛客网 思路: 该题为01背包的变种问题 我们先来复习一下普通的01背包 dp[i][j]数组的含义: i代表了取前i个物品 j代表了背包的空间 数组 ...
- 林大5.1训练赛补题
林大5.1训练赛补题 A.凸多边形曼哈顿 E.矩阵快速幂 I.线段dp A.凸多边形曼哈顿 题意:给你一个凸多边形,问你当其中K边形的最大dis[]是多少? 思路:首先是要发现K>=4的时候答案 ...
- 中级人工智能训练师认证题库
2022年最新版中级人工智能训练师认证题库 作为做运营喵的你是否还在为拿不到阿里认证证书烦恼呢?小编而为你排忧解难,亲手试水的呕心整理的题库奉上, ,愿小伙伴们都能顺利拿到证书~~升职加薪,走向人生 ...
- 第十四届蓝桥杯三月真题刷题训练——第 27 天
目录 第 1题:数学考试_前缀和 代码: 第 2 题:地标访问_二分 题目背景 题目描述 输入格式 输出格式 输入输出样例 说明/提示 代码: 第 1题:数学考试_前缀和 代码: package 第十 ...
- 【长更】一句话题解(组队训练的俄罗斯题、oj、camp)
还是太长了,第二次分裂.. 标 * 的为有价值的题,标 ^ 的为欺诈题,标 - 的为知识点待填坑,标 ? 的表示看别人是这样做的但是没懂为什么 组队训练的题,如果是队友过的板刷题,题面又很 ...
- dp训练 4月5日 第四天结 动态规划入门完成
这四天一共做了12道有关dp的题,其中十道训练计划中的题,两道是团队训练时遇到的dp题. 十道训练题全部来自于syl的小学期dp课程,包括 两道新手背包题(01背包,01背包满包) 一道区间dp题(括 ...
最新文章
- 微软宣布 Power Fx 开源
- windows自带反编译chm文件
- codeblock 显示 no such file(头文件)
- 【数据结构与算法】之深入解析“四数之和”的求解思路与算法示例
- 网络与IO知识扫盲(五):从 NIO 到多路复用器
- Linux 系统服务管理和控制程序(初始化系统/Init System) -- systemd 介绍
- 王道计算机组成原理 物理层整理 超详细版
- asp 开发app_ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式
- 用 :focus-within 实现纯 CSS 下拉框组件
- ThinkPHP如果表名有下划线需要用Model应该怎么做?
- Word里的数学符号在哪里
- CADD课程学习(8)-- 化合物库虚拟筛选(Virtual Screening)
- 酷比魔方iwork1x i30双系统版,重装单Ubuntu 20.04系统记录(重力传感器、触摸屏、启动菜单、声卡问题、优化充电慢)
- Vue+ElementUI+Tabs实现选项卡|标签页|美化标签页面|局部替换样式|好看的标签页|选项卡
- 计算机二级题百度云,计算机二级office题库
- 英文字母字符简便替换法
- 快速渡河(贪心算法)
- FAST-LIO2.0代码解析(二)preprocess.cpp
- 防疫新装备友倍康血氧仪
- Winform下ToolStrip承载自定义控件或 Windows 窗体控件。