帝都Day4(1)——还是dp】的更多相关文章

其实是day4 一.洛谷P1018 乘积最大 f[i][j]表示前i个数 切成j块 用f[i][j]而不用f[i][j][k](i到j切成k块)呢? Luogu1043 前缀和(好算一段里的数的和)+一堆预处理 传进来一个指针(其实指针和数组名差不多,C++的玄学特性),然后处理这个数组 洛谷1063 能量项链 f[i][j]把i-j里的珠子合并起来的最大能量 枚举i<k<j的k:最后和i.j合并的珠子 有点像树形dp 洛谷1077 摆花 可以用前缀和优化 ij 第i种 第j盆,最大值 洛谷1…
可并堆 左偏树中 dist[x]=dist[rs[x]]+1 合并的时候,把权志较大的根作为根节点,把这棵树右子树和另一棵树合并. 说明白点:(上图描述有点问题) 设x表示根权值较大的左偏树,y表示根权值较小的左偏树,合并的时候把x的根节点当做新的树的根节点,把x左子树当做新的左子树,x的右子树和y合并的树作为新的右子树.最后比较dist,如果新的树的左子树的dist小于右子树的,交换. int merge(int x,int y)//x y是要合并的左偏树的两个根 返回值是新树的根 { if(…
黄姓dalao is coming! 一.栈: 基本常识略. 例题:铁轨 模拟,O(n), Usaco2006 Nov 题目略 做法:单调栈(续命栈?) n//数量 a[]//奶牛 for(int i=1 to n) { for(;a[i]>a[stack[top]]&⊤top--);//把所有比他小的元素删掉 c[i]=i-stack[top]-1;//这个数和栈顶的数距离 ans+=c[i];//加答案 stack[++top]=i; } JSOI2008 最大数 m 操作数 n 数列长…
备注:Day1 Day2记得笔记太233,所以就不发了 备注2:Day4~Day7发不发看心情qaq (7.17持续更新中...) 动态规划A 记忆化搜索 & 动态规划初步 8点15: 杨姓dalao唠叨了几句:8点20:上课正式开始 part1 记忆化搜索 数字金字塔:luogu 1216 一.搜索(dfs) 没一个点向左或向右走 void dfs(int x,int y,int val) { val+=a[x][y]; if(x==n-1) { if(val>ans)ans=val; r…
题目链接:https://zhixincode.com/contest/18/problem/G?problem_id=265 题目描述 wls有一个整数 $n$,他想请你算一下有多少 $1...n$ 的排列(permutation)满足:对于所有的 $i(2 \le i \le n)$,若 $i$ 为奇数,则 $a[i−1]<a[i]$,否则 $a[i−1]>a[i]$.请输出答案 $\mod 1e9 + 7$. 输入描述 一行一个整数 $n$. $1≤n≤1000$ 输出描述 一行一个整数…
这个题的搜索可以打到48分…… #include <cstdio> #include <cstring> #include <algorithm> ; bool must[N],in[N]; int cnt; int n,a[N][N],q[N],b[N]; inline bool judge(int len,int lim){ return lim-len>=cnt; } inline bool check(int len){ register int i,j,…
题目链接 https://loj.ac/problem/6502 题解 中间一档部分分提示我们将所有的 \(w_i\) 排序. 考虑如果我们能构造出这样一个 \(w_i\) 的序列,使得该序列满足:对于任意的 \(i(1 \leq i \leq n)\),所有的 \(j(1 \leq j < i)\) 都满足 \(w_i + w_j \geq m\) 或者所有的 \(j(1 \leq j < i)\) 都满足 \(w_i + w_j < m\),那么我们就可以使用动态规划求解. 具体地,…
点此看题面 大致题意: 有\(6\)个人玩大富翁,共有\(n\)块地,进行\(500\)轮,已知每个人掷骰子掷出\(1\sim6\)的概率.当某人到达一块未被占领的地时,他可以占领它.求最后每个人占有地的期望块数. 概率\(DP\) 这应该是一道概率\(DP\)题. 我们可以定义\(Arrive_{i,j,k}\)表示第\(i\)个人在第\(j\)轮到达第\(k\)块地的概率,\(Never_{i,j,k}\)表示第\(i\)个人在第\(j\)轮及之前从未到达过第\(k\)块地的概率. 显然,初…
依然zhx讲. 讲了概率与期望: 期望:事件结果的平均大小.记作E(x). E(x)=每种结果的大小与其概率的乘积的和. 例如,记掷一枚骰子的点数为x E(x)=1*(1/6)+2*(1/6)+3*(1/6)+4*(1/6)+5*(1/6)+6*(1/6)=7/2 若c为常数,那么: E(x+c)=E(x)+c,E(c*x)=c*E(x). 如果记两个事件的结果分别为x,y,那么他们自然满足以下性质: E(x+y)=E(x)+E(y) 例如:E(语文成绩+数学成绩)=E(语文成绩)+E(数学成绩…
版权声明:如需转载请标明出处,未得到本人许可请勿转载. 今天就可以看到传说中的 数据结构 嘿嘿嘿嘿 都有什么呢 链表 队列 栈 st表 hash 线段树 树链剖分 一.栈: 放出来这个看烂了的图 值得一提的是栈的性质是先进后出! 那么: 简单粗暴直接上代码 int main() { r=; while (Q--) { cin>>A; ) { cin>>B; s[++r]=B; m[r]=max(m[r-],s[r]); c[r]=c[r-]+s[r]; mc[r]=max(mc[r…