![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
文章平均质量分 66
qq_30478929
这个作者很懒,什么都没留下…
展开
-
高楼扔鸡蛋
将题目抽象一下,就是如何获取某个元素在有序数组中的位置。这样就很容易的想到用二分法去解决。但考虑到扔鸡蛋这个问题是寻找元素位置的异化,鸡蛋的数量是有限。在某种情况下鸡蛋的数量会小于logN所以不能全使用二分法进行解决。所以可以考虑使用动态规范来进行解决问题:动态规划一般需要考虑两个问题1 是找到能代表问题的状态在这个题目中很明显当前拥有的鸡蛋数 K 和需要测试的楼层数 N 就是问题所代表的状态2 是找到问题之间的递推公式而每在第i层扔一个鸡蛋,状态都会发生相应的转移容易根据dp公式得出递归原创 2022-04-13 21:14:15 · 123 阅读 · 0 评论 -
Anniversary party POJ - 2342
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int vis[6003],father[6003],dp[6003][2],num;void dfs(int par){ vis[par]=1; for(int i=1;i<=num;i++) if(!vis[i]&&f原创 2017-03-06 18:53:25 · 172 阅读 · 0 评论 -
Strategic game POJ - 1463
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int vis[1510],father[1510],dp[1510][2],num;void dfs(int node){ vis[node]=1; dp[node][1]=1; for(int i=0;i<num;i+原创 2017-03-06 19:34:46 · 189 阅读 · 0 评论 -
Tree Cutting POJ - 2378
#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<algorithm>using namespace std;int dp[10005][2],num;vector<int>p[10005]; vector<int>vec;void dfs(int node,int fa){原创 2017-03-06 21:12:09 · 212 阅读 · 0 评论 -
Godfather POJ - 3107
#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <cstring>using namespace std;const int INF = 0x3f3f3f3f;const int MAXN = 50010;int tot[MAXN],f[MAXN], minx,size转载 2017-03-07 12:08:13 · 187 阅读 · 0 评论 -
Corn Fields POJ - 3254
#include<cstdio> #include<cstring>#include<iostream>#define mod 100000000 using namespace std;int M,N,top=0;int state[600],num[110];int dp[20][600];int cur[20];inline bool ok(int x){ if(转载 2017-03-07 14:26:11 · 168 阅读 · 0 评论