刷题
xbybshd
这个作者很懒,什么都没留下…
展开
-
刘汝佳0-1背包的一些笔记
用d(i,j)表示当前在第i层,背包剩余容量为j时接下来的最大重量和一共有n个物品,i不代表已经选取的物品数量,而是遍历过的物品数量d(i,j)d(i,j)d(i,j)代表剩余背包重量为j时,正在对物品i进行选取时,当前情况所可能达到的最大权重;d(i.j)=max(d(i+1,j),d(i+1,j−w[i])+v[i]))d(i.j)=max(d(i+1,j),d(i+1,j-w[i])+...原创 2019-09-03 06:34:40 · 86 阅读 · 0 评论 -
刘汝佳动态规划 uva11400
两层循环,从0到最大用iii,从0到iii用jjj,设遍历到iii的时候,最小成本为d[i]d[i]d[i],对于如何比较替换,对于每一个新的iii来说,之前的每一个jjj是否需要替换,只依赖于一一比较,这样就是一个类似于找min的过程,iii的成本相对于它前面几个来说要么大要么小,小的话有可能比前1个小,也可能比2个小,这个就是遍历jjj的意义,最后的i,ji,ji,j类似于波峰的两个腰,其上...原创 2019-09-08 08:16:38 · 96 阅读 · 0 评论 -
广搜遍历迷宫最短路径
开两个二维数组class node{public: int r; int c; node(){}\\默认构造函数初始化数组};int d[max][max]={0}node p[max][max];node walk(node u){};\\用来返回下一个遍历节点;\\对于判断条件d[i][j]==0\\可以走d[i][j]>0&&d[i][j]==...原创 2019-09-13 16:49:39 · 229 阅读 · 0 评论 -
拓扑排序的细节问题UVA10305
bool dfs(int u,int maxr){ c[u] = -1;\\开始访问某点及某点之后时,将其设为-1 for (int i = 1; i <= maxr;i++){ if(g[u][i]==1){ if(c[i]==-1)\\u的某后继节点是正在访问的,说明有环 return false;...原创 2019-09-13 21:28:38 · 98 阅读 · 0 评论 -
深搜回溯遍历 UVA524素数环 细节
首先构造素数表,开2n的数组,是素数设为1bool is_prime(int u){ int i; if (u <= 1) return false; if (u == 2) return true; if (u %2 == 0) return false; for (int i = 3; i <= sqrt(u); i+=...原创 2019-09-14 15:03:49 · 105 阅读 · 0 评论