摘要:
有一个箱子容量为 VV,同时有 nn 个物品,每个物品有一个体积。 现在从 nn 个物品中,任取若干个装入箱内(也可以不取),使箱子的剩余空间最小。输出这个最小值。 #include <iostream> #include <vector> #include <cstring> using name 阅读全文
摘要:
这里的图染色问题 : 用最少的颜色给一个无向图的点染色,且相邻节点颜色不同 f[s] = min{ f[s-s2]+1 } ,s2为s的子集 值得注意集合S 的子集如何枚举? for(j=S; j ;j=(j-1)&S) #include <iostream> #include <vector> u 阅读全文
摘要:
树上的点可以涂成黑色或白色,求最少的黑色点,使得任意白点只和一个黑点相连 白点只和一个黑点相连,所以对于节点x, 不仅考虑 x ,son[x] 的情况,还有 x,father[x] f[x][3] 黑点个数 0: x 为 黑点 1:x为白点,且father[x] 为黑点 2:x 白点,father[ 阅读全文
摘要:
1.树的最大独立集 任选一个点作为根,有了以下得状态 f[i][0/1] f[i][0] += max(f[y][0], f[y][1] f[i][1] += f[i][0] #include <iostream> #include <vector> using namespace std; con 阅读全文
摘要:
#include <iostream> #include <cstring> using namespace std ; const int N=60,inf=1<<30; int n,L,a[N],vis[N][N],f[N][N]; int dp(int l,int r){ if(l>=r-1) 阅读全文
摘要:
f[i][j] 在 i 车站,当前经过的时间 j ,所需最小等待时间 f[i][j]= f[i][j+1] +1; //等待 f[i][j]= min{ f[i-1][j+t[j]] } //向右 f[i][j] =min{ f[i+1][j+t[j-1]] } // 向左 #include <io 阅读全文