- 博客(14)
- 资源 (10)
- 收藏
- 关注
原创 复杂状态的动态规划
最优配对问题:空间里有n个点P0,P1,…,Pn-1,你的任务是把它们配成n/2对(n是偶数),使得每个点恰好在一个点对中。所有点对中两点的距离之和应尽量小。 dp方程:d[i][S] 点0~i 的最优匹配,S为状态集合。d[i][S] = min(d[i][j],dist(i,j)+d[i-1][S-{i}-{j}]); 集合 S 和 j
2016-11-11 20:01:10 294
原创 dp uva1218
题目链接一共有三种状态: 1、d[u][0]:u是服务器,每个子结点可以是也可以不是。 2、d[u][1]:u不是服务器,但u的父亲是,u的子结点都不是服务器。 3、d[u][2]:u和u的父亲都不是服务器,u的子结点恰有一个是服务器。 三种状态的转移: d[u][0]=∑min(d[v][0],d[v][1])+1d[u][1]=∑d[v][2]d[u][2]
2016-11-11 19:03:06 171
原创 dp uva1220
题目链接树的最大独立集问题d(u,0) 表示以u为根的子树中,不选u点能得到的最大人数 f(u,0)=1表示唯一,否则不唯一d(u,1)--------------------------------选u f(u,1)=1表示唯一,否则不唯一#include using namespace std;const int maxn = 200+5;
2016-11-11 11:23:44 342
原创 dp uva12186树上的动态规划
题目链接d(u)表示让u给上级发信最少需要多少工人#include using namespace std;const int maxn = 1e5+10;int N,T,f;vector sons[maxn];int dp(int u){ if(sons[u].empty()) return 1; int k = sons[u].size(); vec
2016-11-10 23:44:24 199
原创 dp uva1626 括号序列
题目链接状态转移d(i,j)表示子串S[i~j]至少需要加几个括号递推写法 快#include using namespace std;const int maxn = 100+5;char S[maxn];int n,d[maxn][maxn];bool match(char a, char b){ return (a=='(' && b==')'
2016-11-10 21:22:38 378
原创 dp uva1025
题目链接#include <bits/stdc++.h>using namespace std;const int INF = 1<<30;const int maxn = 50+5;const int maxt = 200+5;int N,T,a[maxn],t[maxn],M1,d,M2,e,dp[maxt][maxn],kase;bool has_train[maxt][maxn][
2016-11-10 18:04:31 233
原创 dp uva10003
题目链接状态转移 d(i,j) 为切割小木棍i~j的最优费用d(i,j) = min{d(i,k)+d(k+j)|i<k<j}+a[j]-a[i]#include <bits/stdc++.h>using namespace std;const int maxn = 50+5;int L,n,vis[maxn][maxn],d[maxn][maxn],a[maxn];int dp(int
2016-11-08 19:46:07 226
原创 dp最优矩阵相乘poj1651
题目链接#include <stdio.h>#include <iostream>#include <algorithm>using namespace std;const int INF = 1e9;const int maxn = 1000+5;int dp[maxn][maxn],n,p[maxn];int solve(int i,int j){ if(dp[i][j] !=
2016-11-08 18:35:37 291
翻译 dp uva11584
题目链接#include <bits/stdc++.h>using namespace std;const int maxn = 1000+5;int n,kase,vis[maxn][maxn],p[maxn][maxn],d[maxn];char s[maxn];int is_palindrome(int i,int j){ if(i>j) return 1; if(s[i
2016-11-08 16:18:08 312
原创 动态规划uva11400
题目链接#include <bits/stdc++.h>using namespace std;const int maxn = 1000+5;struct Lamp{ int v,k,c,l; bool operator<(const Lamp& rhs)const{ return v<rhs.v; }}lamp[maxn];int n,s[maxn]
2016-11-08 15:52:40 268
原创 动态规划uva12563
题目链接#include <bits/stdc++.h>using namespace std;const int maxn = 50+5;int T,n,t,a[maxn],dp[180*maxn];int main(int argc, char const *argv[]){ scanf("%d",&T); for(int cas=1; cas<=T; cas++){
2016-11-08 15:35:05 234
原创 动态规划uva1347
题目链接#include <bits/stdc++.h>using namespace std;const int maxn = 50+5;double x[maxn],y[maxn],dist[maxn][maxn],d[maxn][maxn];int main(){ int n; while(scanf("%d",&n) == 1){ for(int i=1;
2016-11-08 07:47:04 206
原创 ch9uva437 The Tower of Babylon
#include <bits/stdc++.h>using namespace std;const int maxn = 30+5;int n,blocks[maxn][3],d[maxn][3];void get_dimensions(int* v,int b,int dim){ int idx=0; for(int i=0; i<3; i++) if(i!=dim)
2016-11-08 07:40:14 246
转载 BZOJ2957
#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <cmath>using namespace std;const int maxn = 1e5+10;int block,belong[maxn],num,l[500],r[500],n,m,x,h;double Max[max
2016-11-06 12:35:55 280
GaaihoReader_CHS_ALL_4.20.tar
2020-02-11
操作系统实验八 文件管理
2018-06-13
操作系统实验七 磁盘调度
2018-06-13
操作系统实验六 页面置换算法
2018-06-13
操作系统实验五 内存管理
2018-06-13
操作系统实验四 设备管理
2018-06-13
操作系统实验三 作业调度
2018-06-13
操作系统实验二 银行家算法
2018-06-13
操作系统实验一: 进程调度
2018-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人