清北学堂提高组突破营游记day5
长者zhx来啦。。
(又要送冰红茶了。。。)
zhx一上来就讲动态规划。。。是不是要逼死人。。。。
动态规划:
最简单的例子:斐波那契数列。因为他是递推(通项公式不算)的,所以前面的已经确定的项不会影响后面的,满足无后效性,为最简单的动态规划。
3种写法:用算好的自己来算别人,或者用别人更新自己,记忆化搜索。
计算斐波那契数列f[n]=f[n-1]+f[n-2]。
如果用dfs来计算的话,在dfs函数里return dfs(n-1)+dfs(n-2);
由于没有记忆化,(没有把每一个阶段记录下来,)复杂度达到了f[n]级别而线性地推可以O(n)。
这就是为什么记忆化。
(zhx:我课件只有130页,没什么东西。。)
动态规划过程图
画成图就是dag有向无环图。
背包问题:洛谷p1048采药。
代码:
#include<iostream>
#include<cstring>
using namespace std;
const int maxn = ;
const int maxm = ;
int main()
{
int N,W;
int w[maxn],v[maxn],value[][];
cin>>W>>N;
for(int i=;i<=N;i++)
cin>>w[i]>>v[i];
memset(value,,sizeof(value)); //value数组注意要清空 for(int i=;i<=N;i++)
for(int j=W;j>=;j--)
{
if(j>=w[i])
value[i][j]=max(value[i-][j],value[i-][j-w[i]]+v[i]);
else value[i][j]=value[i-][j];
} cout<<value[N][W]<<endl;
return ;}
然后是无限背包,有限背包。
然后是区间dp,
例题为合并石子。
满足只能合并相邻的两个元素的题为区间dp。
代码:
状压dp:洛谷p1171
如果一个题数据n<=20||22,考虑状压dp。
洛谷p1879玉米田,状压dp;
P1896 [SCOI2005]互不侵犯,状压dp;
然后是数位dp:
P2657 [SCOI2009]windy数
。
树形dp:
题目:对于一棵有n个点的树,求它有多少个点。
(题目无锅)。
要求用树形dp做。
原理:处理子树。我们设f[i]表示i节点以及他的子树一共有多少个节点。那么转移方程为f[i]=Σf[j](子树)+1(自己);
最后输出f[1];
博弈论dp: 明天再讲。
清北学堂提高组突破营游记day5的更多相关文章
- 清北学堂提高组突破营游记day3
讲课人更换成dms. 真的今天快把我们逼疯了.. 今天主攻数据结构, 基本上看完我博客能理解个大概把, 1.LCA 安利之前个人博客链接.之前自己学过QWQ. 2.st表.同上. 3.字符串哈希.同上 ...
- 清北学堂提高组突破营游记day6
还有一天就结束了..QWQ 好快啊. 昨天没讲完的博弈论DP: 一个标准的博弈论dp,一般问的是是否先手赢. 博弈论最关键的问题:dp过程. 对于一个问题,一定有很多状态,每个状态可以转移到其他的一些 ...
- 清北学堂提高组突破营游记day4
今天主攻图论. 对于这道题,30分做法是暴力搜索全部来判断是否有异样. 对于满分做法,利用带权并查集.? 又带我们串了一边LCA 安利个人LCA博客. spfa代码.原理:循环队列. 然后是floyd ...
- 清北学堂提高组突破营考试T1
题目如下: (想要作弊的后几届神仙们我劝你们还是别黈了,这个题如果你们不会只能证明你们上错班了). 好,题目看完了,发现是一道大模拟(%你)题,于是我们按照题目说的做: #include<ios ...
- 清北学堂提高突破营游记day1
上午7点半到的国防宾馆,8点开始的培训. 讲课人林永迪. 没错就是这个人: 他推荐的教辅:刘汝佳紫书,算法导论(也就看看..),刘汝佳白书 先讲模拟.(貌似就是看题论题. 然后贪心. 贪心没有固定的模 ...
- 清北学堂提高突破营游记day2
先水了一下昨天没讲完的贪心. 然后今天讲的分治. 安利自己水的二分与三分. 二分一定要满足有序.三分适合解决单峰函数问题. 第一道题借教室.运用差分和二分查找. 三分: P1731 [NOI1999] ...
- <知识整理>2019清北学堂提高储备D2
简单数据结构: 一.二叉搜索树 1.前置技能: n/1+n/2+……+n/n=O(n log n) (本天复杂度常涉及) 2.入门题引入: N<=100000. 这里多了一个删除的操作,因此要 ...
- <知识整理>2019清北学堂提高储备D1
一.枚举: 枚举是最简单最基础的算法,核心思想是将可能的结果都列举出来并判断是否是解. 优点:思维简单,帮助理解问题.找规律.没头绪时 缺点:时空复杂度较高,会有很多冗余的非解(简单的枚举几乎没有利用 ...
- <知识整理>2019清北学堂提高储备D3
全天动态规划入门到入坑... 一.总概: 动态规划是指解最优化问题的一类算法,考察方式灵活,也常是NOIP难题级别.先明确动态规划里的一些概念: 状态:可看做用动态规划求解问题时操作的对象. 边界条件 ...
随机推荐
- python3使用ltp语言云
text="我爱自然语言处理." text=str(text) #text=urllib.quote(text) text=urllib.parse.quote(text) def ...
- adb自动化农药金币
本贴仅为记录贴 记录adb 的环境配置及python脚本的交互 1.adb 的下载 通过搜索adb工具即可下载,这里提供一个共享地址https://pan.baidu.com/s/103ix26tZy ...
- Jmeter(六)事务
事务是性能测试之必不可少的关注点, Jmeter默认把每一个请求都统计成了一个事务, 但有时候我们根据业务需求, 会把多个操作统计成一个事务, Jmeter当然也考虑到了这个需求, 因此我们可以通过逻 ...
- WPF 使用Task代替ThreadPool和Thread
一:Task的优势 ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便.比如: 1: ThreadPool不支持线程的取消.完成.失败通知等交互 ...
- hash模块MD5加密
MD5加密:获取32位加密字符串: 示例(MD5加密'123456')import hashlibhashObject=hashlib.md5(b'123456') #实例化,加密字符串不能直接加密, ...
- Centos 搭建DNS服务器
1:安装DNS服务 yum install bind -y 2:修改/etc/named.conf 配置文件 listen-on port 53 { any; }; listen-on-v6 port ...
- IDEA工具创建项目并提交码云和一些基本使用
https://blog.csdn.net/autfish/article/details/52513465https://blog.csdn.net/zsyoung/article/details/ ...
- harbor无法登陆解决
添加如下内容 [root@bogon ~]# vi /etc/docker/daemon.json { "registry-mirrors": ["https://wb2 ...
- 【ABAP系列】SAP ABAP 动态指针
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 动态指针 ...
- 项目连接oracle报错:listener does not currently know of SID given in connect descriptor
今天练习用IDEA搭建了一个ssm框架,数据库是oracle,在执行mybatis-generator时,一直报错listener does not currently know of SID giv ...