- 博客(20)
- 收藏
- 关注
原创 HDU 1506 DP 最大完全子矩阵
记录每个#include "stdio.h"int le[100010],ri[100010];__int64 ans,x,a[100010];int main(){ int n,i; while (scanf("%d",&n)!=EOF) { if (n==0) break; for (i=1;i<=n;i++)
2014-05-21 09:40:20 529
原创 HDU 2159 完全背包模板题
#include "stdio.h"#include "string.h"int max(int a,int b){ if (a<b) return b; else return a;}int main(){ int n,m,k,s,i,j,l,ans; int hash[101][101]; int a[101],b[101]; while (
2014-05-20 19:43:24 722
原创 POJ 2081 水
暴力打表#include "stdio.h"#include "string.h"bool hash[3020000];int a[500010];int main(){ int i,x,n; memset(hash,true,sizeof(hash)); a[0]=0; a[1]=1; hash[0]=false; hash[1]
2014-05-20 16:06:51 494
原创 HDU 1508 DP || 记忆化搜索
DP:#include "stdio.h"#include "string.h"__int64 dp[100010],a[100010];char str[100010];int main(){ int n,i; while (gets(str)) { if (str[0]=='0') break; n=strlen(str
2014-05-19 16:21:05 568
原创 HDU 1208 DP || 记忆化搜索
DP:#include "stdio.h"#include "string.h"int main(){ int i,j,n; char ch; __int64 dp[101][101],a[101][101]; while (scanf("%d",&n)!=EOF) { if (n==-1) break; for (
2014-05-19 13:51:30 553
原创 HDU 2476 区间DP
先是考虑将所有与目标字符串不相同的刷成目标串:dp[i][j]表示刷i-j区间,初始条件:dp[i][j]=dp[i+1][j]+1;对于k=(i+1...j )如果str[k]==str[i],则dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k+1][j]),,因为刷i的时候可以与k同时刷。上面是对初始串与目标串完
2014-05-18 17:44:51 476
原创 HDU 4283 区间DP
#include "stdio.h"#include "string.h"#define inf 2000000000;int min(int a,int b){ if (a<b) return a; else return b;}int main(){ int ii,t,n,i,j,k,s,e; int dp[101][101],a[101],sum[10
2014-05-16 16:43:01 532
原创 HDU DP 简单题
横竖分别求一下 最大不连续字段和即可#include "stdio.h"#include "string.h"int dp[200001];struct comp{ int no,yes;}b[2];int Max(int a,int b){ if (a<b) return b; else return a;}int main(){ int
2014-05-13 11:04:12 592
原创 HDU 2577 DP || 贪心
DP:#include "stdio.h"#include "string.h"int Min(int a,int b){ if (a<b) return a; else return b;}int main(){ int n,i,le; int a[1001],b[1001]; char str[1001]; while(scan
2014-05-13 09:49:00 569
原创 POJ 2761 离线线段树
题意:给出每只狗的pretty value,然后多次询问,每次输出区间[i,j](狗站成一排,从第i只到第j只)的第k小的值是多少。区间之间有交叉,但是没有完全包含。
2014-05-12 15:29:43 746 2
原创 FZU 2136 线段树+思路
对于每个数,我们可以求出以当前这个点为最大值能够向左右两边扩展的范围,假设每个数的左边和右边扩展到l[i] , r[i]的位置。接下来我们只要枚举这n个数,然后枚举1~这个数的区间长度,并更新ans数组即可。#include "stdio.h"#include "string.h"int Min(int a,int b){ if (a<b) return a; else r
2014-05-05 16:18:20 498
原创 FZU 2092 记忆化搜索 || BFS
BFS:#include "queue"#include "iostream"#include "algorithm"using namespace std;int dir[5][2]={1,0,-1,0,0,1,0,-1,0,0};int value[12][12][211];int hash[11][11][11][11][210];struct node{ in
2014-05-04 09:29:13 601
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人