- 博客(18)
- 收藏
- 关注
原创 uva 10934 有k个气球 用高n层楼来测试气球硬度 求最小扔几次可以测出来
#include#includeusing namespace std;long long dp[160][80],n;int k;int main(){ for(int i=1;i<=100;i++) for(int j=1;j<=64;j++) dp[i][j]=dp[i-1][j-1]+dp[i][j-1]+1; while(scanf("%d%lld",&k,&n) ==
2017-10-31 11:52:32 389
原创 uva 1252 最少看几位数字 就可以分辨出所有的二进制数字
#include#include#includeusing namespace std;const int INF=0x3f3f3f3f;int dp[3600][3600],d[200],n,m;int dfs(int s1,int s2){ if(dp[s1][s2]!=INF) return dp[s1][s2]; int t=0; for(int i=0;i<n;i++)
2017-10-18 10:08:14 401
原创 uva 12186 DP
#include#include#include#includeusing namespace std;int n,t,x;vector g[100010];int dfs(int u){ if(g[u].empty()) return 1; int k=g[u].size(); vectord; for(int i=0;i<k;i++) d.push_back(dfs(g[
2017-10-17 21:46:27 197
原创 区间DP 最大面积最小的三角形划分
#include#include#include#include#define INF 0x3f3f3f3f#define eps 1e-7using namespace std;int n;double x[66],y[66],dp[66][66];double cal(int a,int b,int c){ double x1=x[a]-x[c]; double y1=y
2017-10-16 09:02:09 413
原创 uva 10003 一根木棍上有n个切割点 每次选一个点切割,求总切割费用最小 区间DP
#include#include#includeusing namespace std;int dp[66][66],d[66];int main(){ int l,n; while( scanf("%d", &l) == 1 && l ){ scanf("%d", &n); for(int i=1;i<=n;i++) scanf("%d", &d[i]); d[0]=0
2017-10-16 08:02:59 442
原创 2018网易校园招聘 DP
#include#include#include#includeusing namespace std;long long dp[2020][2020],n,a[2020];int dfs(int x1,int x2){ if(dp[x1][x2]!=-1) return dp[x1][x2]; if(x1==n-1 ) return dp[x1][x2]=min(abs(a[x1
2017-10-14 07:11:07 187
原创 uva 1625 DP 使得所有相同字母最大距离之和最小
#include#include#includeusing namespace std;char s1[5005],s2[5005];int l1[36],l2[36],r1[36],r2[36];int dp[5005][5005];int main(){ int T; scanf("%d",&T); while(T--){ scanf("%s%s",s1+1,s2+1
2017-10-12 08:57:48 230
原创 uva 11400 DP 需要推理
#include#include#includeusing namespace std;struct node{ int v,k,c,l;}a[10100];long long dp[10100],sum[10100];bool cmp(const node &a,const node &b){ return a.v<b.v;}int main(){ int n; whi
2017-10-11 12:47:13 204
原创 平面n个点 求从最左边点到最右边点再返回的最短路长 uva 1347
#include#include#include#include#define INF 0x3f3f3f3fusing namespace std;int x[1010],y[1010],n;double dp[1010][1010],d[1010][1010];double dfs(int t1,int t2){ if(dp[t1][t2]) return dp[t1][t2]
2017-10-11 09:53:05 312
原创 uva437 DAG最长路
#include#include#include#define k1(x) ((x+1)%3)#define k2(x) ((x+2)%3)using namespace std;int dp[36][4],d[36][4],n;int dfs(int lo,int k){// printf("%d %d\n",lo,k); if(dp[lo][k]) return dp[lo]
2017-10-11 07:21:47 224
原创 uva11175
#include#includeusing namespace std;int m,k,g1[310][310],g2[310][310],n1[310],n2[310],to[310];int solve(){ for(int i=0;i<m;i++){ memset(to,0,sizeof(to)); for(int j=0;j<n2[i];j++){ for(int
2017-10-09 20:34:39 331
原创 uva 1623 贪心 数据结构
#include#include#includeusing namespace std;int lo[1000100],d[1000100],ans[1000100];int main(){ int T,n,m; scanf("%d",&T); while(T--){ memset(lo,0,sizeof(lo)); memset(ans,0,sizeof(ans));
2017-10-09 13:19:03 314
原创 uva 1622 贪心
#include#includeusing namespace std;typedef long long LL;LL solve(LL x,LL y,LL N,LL S,LL W,LL E){ LL res=0; if( S > N ) swap(S,N); if( E > W ) swap(E,W); if(N){ res += x * y; y--; N-=S;
2017-10-09 12:49:28 460
原创 uva 1312 一个矩形中的最大的子矩形(其中不能包含某些点)
#include#include#includeusing namespace std;int p,q,l,n,w,h;struct node{ int x,y; node(int a=0,int b=0):x(a),y(b){}}t[160];bool cmpx(const node &a,const node &b){ return a.x==b.x?a.y<b.y:a.x
2017-10-01 20:24:19 542
原创 uva 1619 单调 求一段序列和 和 其中最小值的乘积的最大值
#include#include#define INF 0x3f3f3f3fusing namespace std;int d[100010],l[100010],r[100010];long long sum[100010];int main(){ int n,t=0; while(scanf("%d",&n)==1){ memset(sum,0,sizeof(sum));
2017-10-01 16:01:40 347
原创 uva 11536 尺取法 滑动窗口
#include#include#includeusing namespace std;int vis[1010],d[1000100],n,m,k;bool ok(){ for(int i=1;i<=k;i++) if(!vis[i]) return 0; return 1;} int main(){ int T,t=1; scanf("%d",&T); while(T
2017-10-01 15:23:34 332
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人