今天学习内容:1.dp背包问题

(1)01背包:状态方程(二维):
dp[i][j]=max(dp[i-1][j],dp[i-1][j-m[i]]+v[i]) (j>=m[i])
方程中dp[i-1]可删去简化变成一维,dp[j]=max(dp[j],dp[j-m[i]]+v[i])。
注意:二维方程需要if判断条件,但是一维不需要,
(2)完全背包:就是拿物品次数变成无数次。
状态方程:dp[i][j]=max(dp[i-1][j],dp[i-1][j-k*m[i]]+k *v[i]) (0<=k * m[i]<=j)

(3)多重背包:有限次的拿物品。
状态方程:dp[i][v] = max{dp[i - 1][v - k * c[i]] + w[i] | 0 <=k <= n[i]}

附上今天刷的一道题 HDU - 1171
题目大意,有n个价值物品,每个价值物品可能有1个以上,要求平均分成两份,第一份大于等于第二份。
这道题两种方法:第一种,均分01背包,第二种方法多重背包。
我用的均分01背包。
大概思路:所有价值总和除2就是一分最小价值(第二份)
直接01背包完成

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int t,m[255555],number,num,sum,dp[255555];
int max(int x,int y){if(x>y)return x;elsereturn y;
}
int main(){while(~scanf("%d",&t)){if(t<0)break;memset(m,0,sizeof(m));memset(dp,0,sizeof(dp));sum=0;int k=1;for(int i=1;i<=t;i++){scanf("%d%d",&num,&number);m[k]=num;sum+=m[k++]*number;for(int j=2;j<=number;j++)m[k++]=num;}int n=sum/2;for(int j=1;j<k;j++)for(int i=0;i<=n;i++)if(i>=m[j])dp[i]=max(dp[i],dp[i-m[j]]+m[j]);printf("%d %d\n",sum-dp[n],dp[n]);}return 0;
}

有点坑的就是数组范围是5050100。。我开的5005一直超时。。。很神奇居然不是runtime。
今天还学习了搜索,DBFS这个就是2个BFS双向比一个BFS时间快,空间小。
还有看懂了A算法,实现就是有点难,用它解决八数码问题。
A
算法灵魂 F(x)=H(x)+G(x)
H(x)就是估算距离。有很多估算思想我就会一个M开头的
G(x)就是自己设定距离一般一个方块10,对角线14(约等于),数值看自己爱好。
每次找路是找F(x)最小值,所以它的缺点就很明显如果有多个F(x)最小值寻路,那么他不一定找到的是最短路。
然后A=算法升级版就是IDA算法,就是限制层数的A算法,看博客说极其优化,简单的公式。。。。。

2020.7.16集训总结相关推荐

  1. 纪中集训2020.01.16【NOIP普及组】模拟赛C组总结+【0.Matrix】分析

    纪中集训2020.01.16[NOIP普及组]模拟赛C组总结+[0.Matrix]分析 题目: 0.matrix 1.product 2.binary 3.value 巨佬估分:100+100+40+ ...

  2. 关于构造和二进制,题目:牛牛的DRB迷宫Ⅱ(源自牛客竞赛2020年寒假集训)

    关于构造和二进制,题目:牛牛的DRB迷宫Ⅱ(源自牛客竞赛2020年寒假集训) 题目: 链接:https://ac.nowcoder.com/acm/contest/3004/B 来源:牛客网 题目描述 ...

  3. 微型计算机2020年6月上,2020年1-6月全国微型计算机设备产量统计分析

    [中国报告大厅讯]根据中国报告大厅对2020年1-6月全国微型计算机设备产量进行监测统计显示:2020年6月全国微型计算机设备产量3216.5万台,同比增长0.3%,2020年1-6月全国微型计算机设 ...

  4. [Android] 迅游加速器 5.1.26.1免费版 2020.6.16更新

    [Android] 迅游加速器 5.1.26.1免费版 2020.6.16更新 蓝奏云下载链接 求关注持续跟新

  5. Visual.Assist.X.10.9.Build.2375.0 2020.05.16 最新版

    Visual.Assist.X.10.9.Build.2375.0 2020.05.16 最新版,带特殊文件,解压后查看使用说明. VC++编程助手,支持VS 2019,亲测可用. 共享备用. 7zi ...

  6. 谈谈mini2440开发板的学习路线以及分享开发板的最新资料[minitools v1.9a...](更新时间:2020/05/16))

    谈谈mini2440开发板的入门学习路线以及分享开发板的最新资料[minitools v1.9a...](更新时间:2020/05/16) 简介 因为毕设,自己也在学习mini2440开发板,但是它实 ...

  7. 数据分享和开源软件有助于对抗新型冠状肺炎,开源布道师等;开源之道每周评论2020 03 16...

    ▼ 更多精彩推荐,请关注我们 ▼ 声明:本文所言论,仅代表适兕个人观点 共同体工作项列表 原文链接:Community Worksheet Downloads 适兕点评: 我很想知道,为何费孝通先生当 ...

  8. FPGA开发工具套餐搭配推荐及软件链接 (更新于2020.03.16)

    一.Xilinx(全球FPGA市场份额最大的公司,其发展动态往往也代表着整个FPGA行业的动态) (1) Xilinx官方软件下载地址链接: https://china.xilinx.com/supp ...

  9. 【2020/07/16修订】概率论与数理统计(电子科技大学) 知识梳理 · 第一版(1到8章 · 度盘)

    概率论与数理统计 知 识 梳 理 (第一版) 建议先修课程:高等数学(微积分) 配套课程: 1.慕课(MOOC):概率论与数理统计(电子科技大学) 2.教材:概率论与数理统计 电子科技大学应用数学学院 ...

最新文章

  1. LeetCode: Jump Game II
  2. 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
  3. STL 之 list 容器详解
  4. vue2.0s中eventBus实现兄弟组件通信
  5. ios 顶部tab滑动实现_iOS开发之多表视图滑动切换示例(仿头条客户端)
  6. js splice方法_我用JS刷LeetCode | Day 8
  7. 含k个3的数(信息学奥赛一本通-T1090)
  8. (9)vue.js 指令(1)
  9. 微课|中学生可以这样学Python(例7.2):三维向量类
  10. document.body.scrollTop
  11. 最新高通平台驱动开发参考文档
  12. android短信验证码免费版,短信验证码功能-免费哦!亲测可用
  13. B站粉丝计数器 | ESP32轻松学(Arduino版)
  14. 常数1的傅里叶变换详解过程
  15. 天地伟业tiandy如何连手机_西游释厄传手机版下载(附出招表)-西游释厄传手机版金手指下载v2020.10.24.14...
  16. 使用Bitbucket Cloud学习Git
  17. java 自然对数的底数_Java求自然对数底e的值
  18. Exchange Server 2013 运维系列——恢复已删除邮件
  19. DICTATOR第三周栈与队列作业
  20. 计算机维修基本技能考试试题,高级计算机维修工操作技能考核试卷

热门文章

  1. 64位IE加载32位CertEnrollCtrl.exe的方法
  2. 护照阅读机出入境运用SDK
  3. CredSSP加密数据库修正,远程桌面连接失败
  4. 基于5G云网融合的车联网应用技术探讨
  5. 《传热学》王厚华笔记和课后习题答案
  6. 0x01 0x 代表什么。DNS class 值
  7. CiteSpace的使用(一)——热点图的绘制
  8. HDU 2504 JAVA
  9. 【报错】route config “component“ for path: /test cannot be a string id. Use an actual component instead.
  10. mysql 建库与授权