自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sky_zdk的博客

相信奇迹的人本身就和奇迹一样了不起

  • 博客(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 1220 树的最大独立集和唯一性的判断

每个点和他相连的点不能同时选中

2017-10-18 07:34:47 247

原创 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 330

原创 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 331

原创 uva 1614 贪心

第i个数 不超过i 则前i个数可以组合成任意1-sum[i]中的数

2017-10-01 12:15:59 201

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除