自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟成长ing

得之我幸,失之我命、

  • 博客(33)
  • 收藏
  • 关注

原创 HDU-2955 Robberies 01背包 + 概率

题目链接#include #include #include #include#include #include #include #include using namespace std;const int maxn = 106;const int inf = 1<<30;typedef __int64 LL;int n,V;float P,dp[maxn*

2014-04-29 22:02:51 377

原创 HDU-1074 Doing Homework 状态压缩DP

#include #include #include #include#include #include #include #include using namespace std;const int maxn = 16;const int inf = 1<<30;typedef __int64 LL;int n;struct node{ string name;

2014-04-29 10:25:50 400

转载 状态压缩动态规划

引入 首先来说说“状态压缩动态规划”这个名称,顾名思义,状态压缩动态规划这个算法包括两个特点,第一是“状态压缩”,第二是“动态规划”。 状态压缩: 从状态压缩的特点来看,这个算法适用的题目符合以下的条件: 1.解法需要保存一定的状态数据(表示一种状态的一个数据值),每个状态数据通常情况下是可以通过2进制来表示的。这就要求状态数据的每个单元只有两种状态,比如说棋盘上的格子

2014-04-28 19:07:26 572

原创 HDU-1501 Zipper 简单DP

#include #include #include#include #include using namespace std;const int maxn = 215;const int inf = 1<<30;typedef __int64 LL;int len1,len2;bool dp[maxn][maxn];char str1[maxn],str2[maxn],st

2014-04-28 19:02:58 386

原创 hdu-1227 Fast Food DP

#include #include #include#include #include using namespace std;const int maxn = 205;const int inf = 1<<30;typedef __int64 LL;int n,m;int pos[maxn],dis[maxn][maxn],dp[35][maxn];//dp[i][j]代表前

2014-04-27 17:00:10 340

原创 HDU-1693 Eat the Trees 插头DP

题目链接#include #include #include#include #include using namespace std;const int maxn = 13;const int inf = 1<<30;typedef __int64 LL;int n,m;int map[maxn][maxn];LL dp[maxn][maxn][1<<13];

2014-04-25 11:53:16 390

原创 Uva-116 Unidirectional TSP DP

#include #include #include#include #include using namespace std;const int maxn = 105;const int inf = 1<<30;int n,m;int dp[maxn][maxn],Path[maxn][maxn];int Min( int a,int b,int c ){ a = a<b

2014-04-23 18:09:33 530

原创 Uva-10131 Is Bigger Smarter?

s#include #include #include#include #include using namespace std;const int maxn = 1005;const int inf = 1<<30;int dp[maxn],Path[maxn];struct node{ int id,w,s;}ele[maxn];bool cmp( node a

2014-04-23 10:15:24 377

原创 Uva-437 The Tower of Babylon DP

题目链接

2014-04-22 10:38:11 392

原创 Uva-10130 SuperSale 01背包

#include #include #include#include #include using namespace std;const int maxn = 1005;const int inf = 1<<30;int n,m;int val[maxn],w[maxn];int dp[maxn];int ZeroOnePacc( int v ){ memset( dp

2014-04-21 18:49:58 385

原创 HDU-1907 John

全是1的时候,特判#include"stdio.h"int main(){ int temp,t,n,s,x,i; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=s=temp=0;i<n;i++) { scanf("%

2014-04-21 10:18:50 382

原创 博弈模板

首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。例如mex{0,1,2,4}=3、mex{2,3,5}=0、mex{}=0。对于一个给定的有向无环图,定义关于图的每个顶点的Sprague-Grundy函数g如下:g(x)=mex{ g(y) | y是x的后继 },这里的g(x)即sg[x]例如:取石子问题,

2014-04-21 10:08:50 418

原创 HDU-2147 kiki's game 简单博弈(*)

#include #include #include#include #include using namespace std;const int maxn = 150;const int inf = 1<<30;int n,m;int main(){ #ifndef ONLINE_JUDGE //freopen("data.txt","r",stdin);

2014-04-20 13:19:14 345

原创 HDU-1846 Brave Game 简单博弈 (*)

题目链接#include #include #include#include #include using namespace std;const int maxn = 100050;const int inf = 1<<30;int n,m;int main(){ #ifndef ONLINE_JUDGE //freopen("data.txt","

2014-04-19 15:28:15 397

原创 2-Sat

#include #include #include#include #include using namespace std;const int maxn = 100050;const int inf = 1<<30;struct TwoSAT{ int n;; vectorG[maxn<<1]; bool mark[maxn]; int S[maxn<<1],c;

2014-04-19 15:07:36 326

原创 数位DP模板

找13int dp[maxn][3],digit[maxn];int dfs( int pos,int st,bool flag ){ if( !pos ) return st == 2; if( flag && dp[pos][st] != -1 ) return dp[pos][st]; int ans = 0; int u = flag?9:digit[pos]; for(

2014-04-16 12:00:46 557

原创 HDU-3652 B-number 数位DP

#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 20; typedef __int64 Int64;int n;int dp[maxn][maxn][3];int digit[maxn];int df

2014-04-16 11:51:04 373

原创 HDU-2089 不要62 数位DP 模板题

#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 15; int n,m;int dp[maxn][3],digit[maxn];int dfs( int pos,int st,bool flag ){

2014-04-15 22:54:17 478

原创 HDU-3555 Bomb 数位DP

题目链接#include #include #include #include #include using namespace std;const int maxn = 25;typedef unsigned __int64 Int64;Int64 N, dp[maxn][3];int digit[maxn];/*dp[len][0] 表示前len位没有49

2014-04-15 17:27:01 348

原创 Ustc-1280 Finding shortest path 网络流

#include #include #include#include #include using namespace std;const int maxn = 2005;const int inf = 1<<30;int n,m,pos,Pos;int Start,End;struct node{ int to,w,c,next;}edge[maxn*20];stru

2014-04-14 21:50:08 415

原创 POJ-2492 A Bug's Life 并查集

题目链接

2014-04-13 16:47:39 369

原创 POJ-1703 Find them, Catch them 经典并查集

#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 100005;const int inf = 1<<29;int n,m;int p[maxn],g[maxn]; //g 0表示相同 1表示不同in

2014-04-13 16:11:17 403

原创 POJ-1182 食物链 经典并查集

题目链接

2014-04-13 12:40:49 415

原创 Uva-10069 Distinct Subsequences DP

#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 155;const int inf = 1<<29;const int mod = 100000000;int n;char Str[maxn*maxn

2014-04-10 22:59:58 373

原创 POJ-Rebuilding Roads 树形DP

#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 155;const int inf = 1<<29;typedef __int64 LL;int n,p;int dp[maxn][maxn]; //d

2014-04-09 21:21:33 389

原创 POJ-2288 Islands and Bridges 状态压缩DP TSP

#include #include const int maxn = 13;typedef __int64 LL;int n,m,S;bool map[maxn][maxn];int v[maxn];LL dp[maxn][maxn][1<<13],way[maxn][maxn][1<<13];void GetDp(){ memset( dp,-1,sizeof(dp) );

2014-04-07 19:47:33 502

原创 POJ-2411 Mondriaan's Dream 状态压缩DP

题目#include #include int n,m;__int64 dp[12][1<<12],tmp;void dfs(int p,int s,int pos){ if( pos == m ){ dp[p][s] += tmp; return; } dfs( p,s,pos+1 ); if(( pos <= m-2 ) && !(s&(1<<po

2014-04-07 16:37:01 356

原创 POJ-1141 Brackets Sequence 经典区间DP

题目链接状态转移方程: dp[i][j] = min( dp[i][j], dp[i+1][j-1]  );            //(  str[i] == '(' && str[j] == ')' ) || ( str[i] == '[' && str[j] == ']' )                              dp[i][j] = min( dp[i][j],

2014-04-03 21:01:18 396

原创 Uva-825 Walking on the Safe Side 水DP

题目链接简单DP就输入比较麻烦点 #include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 1030;const int inf = 1<<30;int n,m;int dp[maxn][maxn],vis

2014-04-03 18:19:27 404

原创 Uva-111 History Grading 裸最长公共子序列

题目链接#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 30;const int inf = 1<<30;int n;int str1[maxn],str2[maxn],dp[maxn][ma

2014-04-02 22:58:22 433

原创 KMP

#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 1005;const int inf = 1<<30;//0x7f;typedef __int64 LL;int ans;int Next[maxn];

2014-04-02 20:11:41 353

原创 FAFU-1398 面积 矩形面积并 线段树+扫描线

题目链接HDU1255加强版#include "stdio.h"#include "algorithm"using namespace std;const int maxn = 2110;int n;double y[maxn];struct node{ double x,y1,y2; //x 边的位置 y边的区间大小 int f;

2014-04-02 19:15:41 400

原创 POJ-2528 Mayor's posters 线段树+离散

题目链接题意:在墙上贴海报,海报可以互相覆盖,问最后可以看见几张海报思路:这题数据范围很大,直接搞超时+超内存,需要离散化:离散化简单的来说就是只取我们需要的值来用,比如说区间[1000,2000],[1990,2012] 我们用不到[-∞,999][1001,1989][1991,1999][2001,2011][2013,+∞]这些值,所以我只需要1000,1990,2000,20

2014-04-01 14:29:52 386

空空如也

空空如也

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

TA关注的人

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