题目大意 题解 一开始想枚举每段的分界再判断,然而不好搞 实际上把每个点到两边的距离设为(x,y),类似https://www.cnblogs.com/gmh77/p/12813589.html,变为用一条折线把所有点分成两个集合 直接dp折线,转移时要么继承上一行位置,要么转移到前面的某个点,线段 ...
分类:
其他好文 时间:
2020-09-17 20:08:07
阅读次数:
22
首先,这是一道经典的期望dp题 因为最终状态 \((所有面都被筛到过)\) 是确定的,所以才用 逆推 ,设状态 \(f[i]\) 表示已经筛到了 \(i\) 个不同的面,有 \(i\over n\) 的概率是由$ f[i] $ 转移而来的, 也就是筛到了之前筛过的面,有 \({n-i\over n} ...
分类:
其他好文 时间:
2020-09-17 19:00:17
阅读次数:
29
https://cs.stanford.edu/people/karpathy/reinforcejs/gridworld_dp.html REINFORCEjs About GridWorld: DP GridWorld: TD PuckWorld: DQN WaterWorld: DQN ...
分类:
Web程序 时间:
2020-09-17 18:20:16
阅读次数:
31
不要被假象迷惑,其实这是一道区间dp,如果过多的考虑怎么放长方形就容易进入误区。 我们考虑一个dp状态表示f[][][][],将一个长方形中所有的点变成”."的最小代价,之后枚举行列进行区间dp,这其中其实已经做好了划分长方形的工作。 #include<bits/stdc++.h> using na ...
分类:
其他好文 时间:
2020-09-17 17:57:11
阅读次数:
24
由于是无向无权图,采用BFS 自环对于最短路无影响 重边和其它边对最短路径数的影响是一样的,不用做特别处理 采用dp思想即可统计出1号点到每个点的最短路径数 const int N=1e6+10; vector<int> g[N]; int dist[N]; bool vis[N]; int cnt ...
分类:
其他好文 时间:
2020-09-17 15:36:22
阅读次数:
25
题意:有一个$n$X$m$的图,"#"表示障碍物,"."表示道路,只能向右或向下走,问从左上角走到右下角的方案数. 题解:这题可以用bfs来搞,但dp更简单点吧~~.首先,只有当向右和向下都能走时,方案数才会增加,我们用dp表示从起点走到某个单位的方案数,这个单位只能从左边或上边走过来,所以它的方案 ...
分类:
其他好文 时间:
2020-09-17 14:17:39
阅读次数:
18
#include <iostream> #include <cstdio> using namespace std; int dp[105][105],dpb[105][105]; int main(){ int n;cin>>n; for(int i=1;i<=n;i++){ cin>>dp[i] ...
分类:
其他好文 时间:
2020-09-17 13:35:44
阅读次数:
20
#include <iostream> using namespace std; const int N = 60; long long dp[N]; int n; void show(){ dp[0]=0;dp[1]=1; dp[2]=2;dp[3]=3;dp[4]=4; for(int i=5; ...
分类:
其他好文 时间:
2020-09-16 12:27:08
阅读次数:
34
题:https://ac.nowcoder.com/acm/problem/19158 题意:给定n个物品和限制m,每次取出的物品分出来的的重量之差的绝对值要小于等于m,问最重的取走多少重量的物品 分析:dp[i][j]表示前i个物品之间差值为j的最大重量,转移dp[i][j]=max(dp[i-1 ...
分类:
其他好文 时间:
2020-09-15 21:23:58
阅读次数:
45
动态规划:时间复杂度是O(N^2) Manacher算法,时间复杂度是O(N) 这篇文章主要是想讲怎么样能正确的填二维动态规划的二维表 动态规划比较简单: 用一个二维数组,dp[ i ][ j ] 表示 下标 i ~ j 字符串是否是回文的,false or true 边界条件是 i - j = 0 ...
分类:
其他好文 时间:
2020-09-15 21:10:06
阅读次数:
24