自定义博客皮肤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的博客

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

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

原创 poj 1018 dp

#include#include#define INF 0x3f3f3f3f#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))int dp[120][400];int main(){ int T; scanf("%d",&T); while(T--) { int n; scanf("

2017-04-30 22:04:18 243

原创 扩展欧几里德 求最小整数解 a,b,c可以为负数

我们先讨论a,b,c都大于0的情况 (都为整数)int exgcd(int a,int b,int &x,int &y){ int d=a; if(b!=0) { d=exgcd(b,a%b,y,x); y-=(a/b)*x; } else { x=1; y=0; } return d;}可以用扩展欧几里德算出 一个特解 x0 , y0; 满

2017-04-30 17:08:53 3481

原创 TaoSama Becomes the God of Stocks dp

H. TaoSama Becomes the God of StocksTime Limit: 1000msMemory Limit: 65536KB64-bit integer IO format: %lld      Java class name: MainSubmit StatusSample Input18 2

2017-04-30 11:25:56 301

原创 不再孤独的HandsomeHow 状压dp

G. 不再孤独的HandsomeHowTime Limit: 1000msMemory Limit: 65536KB64-bit integer IO format: %lld      Java class name: MainSubmit StatusSample Input220 22 040 2 4

2017-04-30 08:35:22 342

原创 孤独的数列

尺取法

2017-04-30 07:01:31 311

原创 hdu 4044

敌人从树根(1号节点)出发,叶子节点是你的基地,敌人的路线不固定,经过每个节点的塔后受到伤害问你在总的花费下,你选择建一些塔,敌人的血量至多是多少才能保证不伤害到你的基地。

2017-04-29 18:45:15 443

原创 poj 3345 树形dp

选了父节点,就代表获得了其所有子节点的权值,求选最少节点达到或超过特定的值

2017-04-29 07:40:36 428

原创 poj 2486 树形dp(给定步数 走一棵树,获得的节点值总和的最大值)

给定步数 走一棵树,获得的节点值总和的最大值)

2017-04-28 20:31:02 466

原创 hdu 1561 选某个物品前必须选特定的其它物品,求最大价值

选某个物品前必须选特定的其它物品,求最大价值

2017-04-28 14:11:18 289

原创 hdu 4003 求用k个机器人遍历一棵树的所有节点所需的最小花费

求用k个机器人遍历一棵树的所有节点所需的最小花费

2017-04-28 09:42:46 778

原创 poj 1947 树形dp(求一颗树最少经过几次剪枝,可以得到特定大小的子树)

#include#include#define MIN(x,y) ((x)>(y)?(y):(x))struct node{ int to,next;}e[200];int head[200],cnt;int dp[200][200];int f[200],n,p,num[200],flag[200];void add_edge(int from,int to){ e[cn

2017-04-28 07:16:11 337

原创 hdu 1011 树形dp

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))struct node{ int to,next;}e[240];int cnt,head[120];int n,m,dp[120][120],num[120];int value[120];void add_edge(int from,int to){ e[cnt].to=

2017-04-27 14:59:48 404

原创 poj 1155 树形dp

#include#include#define INF 10000000#define MAX(x,y) ((x)>(y)?(x):(y))struct node{ int to,next,v;}e[3200];int cnt,head[3200],f[3200],n,m,tot,vis[3200]; int dp[3200][3200];void add_edge(int f

2017-04-27 12:48:16 299

原创 hdu 3535 混合背包(一组中最少取一个,最多取一个,可以任意取)

混合背包(一组中最少取一个,最多取一个,可以任意取

2017-04-26 11:48:29 296

原创 hdu 3810 超大容量背包(n=50不是40)

先贴一个挑战上解决n=40时的超大容量背包,不过解决n=50时会TLE和MLE#include#include#include#include#define MIN(x,y) ((x)>(y)?(y):(x))using namespace std;const long long INF=5010000000000;vectorQ[100];pairps[1<<21];int

2017-04-26 09:54:24 491

原创 poj 3211 背包

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))int w[12][120],num[12],sum[12];int dp[11000];int main(){ char s2[100][100],s1[100]; int n,m,x; while(~scanf("%d%d",&n,&m)&&(n+m)) { memset

2017-04-25 06:40:53 337

原创 poj 1837 dp推方案数

#include#includeint dp[25][16000];int lo[30],w[30];int main(){ int n,m; while(~scanf("%d%d",&n,&m)) { for(int i=0;i<n;i++) scanf("%d",&lo[i]); for(int i=1;i<=m;i++) scanf("%d",&w[i]);

2017-04-24 20:23:38 436

原创 hdu 3033 分组背包,每组最少取一个

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))long long int dp[12][11000];int w[12][120],v[12][120],num[12];;int main(){ int m,col,n; while(~scanf("%d%d%d",&m,&col,&n)) { int lo,a,b;

2017-04-24 19:40:00 432

原创 hdu 1712 背包

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))int dp[1000];int v[120][120];int n,col; int main(){ while(~scanf("%d%d",&n,&col)) { if((n+col)==0) break; memset(dp,0,sizeof(dp)); f

2017-04-24 12:25:27 243

原创 poj 1276 (完全背包二进制转化01背包)

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))int dp[100010];int v[1250],m[1250];int main(){ int col,n; while(~scanf("%d%d",&col,&n)) { for(int i=

2017-04-23 21:34:01 915

原创 hdu 2192 (二进制)多重背包

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))int dp[1000];int w[125],v[125],m[125];int main(){ int T; scanf("%d",&T); while(T--) { int col,n; scan

2017-04-23 21:17:12 331

原创 hdu 1059 背包

#include#include#define MIN(x,y) ((x)>(y)?(y):(x))#define MAX(x,y) ((x)>(y)?(x):(y))int dp[42000];int n[8];int main(){ int s=1; while(~scanf("%d%d%d%d%d%d",&n[1],&n[2],&n[3],&n[4],&n[5],&n[6]

2017-04-23 20:37:44 184

原创 hdu 1114 背包

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))#define INF 0x3f3f3f3fint dp[10100];int w[1000],v[1000];int main(){ int T; scanf("%d",&T); while(T--) {

2017-04-23 20:06:19 196

原创 hdu 2571 命运

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))int dp[25][1005];int m[25][1005];int main(){ int T,col,row; scanf("%d",&T); while(T--) { scanf("%d%d",&row,&col); for(int i=1;i<=row;i++

2017-04-23 10:56:26 330

原创 zoj 3662 dp (递推k个数 组成的和为n,最小公倍数为m的所有可能)

#include#include#define MOD 1e9+7int dp[2][1010][1002];int lo[1100][1100],L[110];int gcd(int a,int b){ if(b==0) return a; else return gcd(b,a%b);}int lcm(int a,int b){ return a/gcd(a,b)*

2017-04-22 15:53:59 468

原创 zoj 3623 背包

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))int dp[1000],w[100],v[100];int main(){ int n,life; while(~scanf("%d%d",&n,&life)) { for(int i=0;i<n;i++) scanf("%d%d",&w[i],&v[i]); mems

2017-04-22 11:16:35 246

原创 poj 2063 背包

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))int dp[100000];int w[11],v[11];int main(){ int T,col,t,num,n; scanf("%d",&T); while(T--) { scanf("%d%d",&col,&t); scanf("%d",&n); for(

2017-04-22 08:13:33 214

原创 poj 1787 求达到总钱数的选硬币的最大数量(硬币有个数限制)

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))int dp[10010],path[10010],u[10010];int main(){ int v[]={1,5,10,25}; int n[5],col,ans[26]; while(~scanf("%d%

2017-04-21 20:34:37 794

原创 poj 3181 求各种纸币组成某个特定值的方案数

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))long long dp1[1010];long long dp2[1010];long long MID;int main(){ int n,k; long long ans; scanf("%d%d",&n

2017-04-21 18:05:45 321

原创 hdu 4281 mtsp(多重旅行商问题)

#include#include#include#include#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))#define INF 0x3f3f3f3fusing namespace std;int map[30][30];int tot,dp[1<<17],dp1[20][1<<17],

2017-04-21 16:20:05 8423 1

原创 hdu 2126 求方案数

#include#include#include#define MAX(x,y) ((x)>(y)?(x):(y))using namespace std;int dp[5050][2];int w[1000];int main(){ int n,col,T; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&col); f

2017-04-21 08:43:04 272

原创 hdu 3466 01背包

#include#include#include#define MAX(x,y) ((x)>(y)?(x):(y))using namespace std;int dp[5050];struct node{ int p,q,v;}m[550];bool cmp(const node &a,const node &b){ return a.q-a.p<b.q-b.p;}i

2017-04-21 06:50:58 459

原创 poj 2923 状态压缩dp

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))#define INF 0x3f3f3f3fint dp[1025];int vis[1025],w[105],d[1025];int n,c1,c2;int judge(int x){ int sum=0;

2017-04-20 15:15:34 292

原创 poj 2639 背包的第k最优解

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))int dp[1000][100];int v[200],w[200];int a,b,c,t1[200],t2[200];int main(){ int T,n,col,rank; scanf("%d",&T); while(T--) { scanf("%d%d%d",&

2017-04-20 13:36:14 515

原创 poj 2184 01背包,求体积和重量(有负数)之和最大。

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))#define INF 0x3f3f3f3fint dp[200200],count[200200],ts[200],tf[200];int main(){ int n; scanf("%d",&n); int sum=0; for(int i=1;i<=n;i++) {

2017-04-20 12:03:58 762

原创 hdu 2955

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))double dp[110000],v[110];int w[100];int main(){ int n,T; double col; scanf("%d",&T); while(T--) { int sum=0; scanf("%lf%d",&col,&n);

2017-04-20 06:34:36 269

原创 hdu 2546 01背包(从一堆物品中尽可能组成接近给定重量的方案)

#include#include#include#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))using namespace std;int dp[1010];int c[1010];int main(){ int n,col; while(~scanf("%d",&n)&&n)

2017-04-19 13:00:21 382

原创 poj 3624 01背包

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))long long dp[12888];int v[3480],w[3480];int main(){ int n,col; scanf("%d%d",&n,&col); for(int i=1;i<=n;i++) scanf("%d%d",&w[i],&v[i]);

2017-04-19 11:26:39 354

原创 hdu 2602 01背包

#include#include#define MAX(x,y) ((x)>(y)?(x):(y))long long dp[1010];int v[1010],w[1010];int main(){ int T; scanf("%d",&T); while(T--) { int n,col; scanf("%d%d",&n,&col); for(int i=1;

2017-04-19 11:23:16 526

原创 poj 2528 线段树 离散化()

#include#include#include#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define MAX_N 20001using namespace std;int L[MAX_N],R[MAX_N],d[MAX_N<<3],t[MAX_N<<3];int ans; int flag;void update1(in

2017-04-18 20:54:45 452

空空如也

空空如也

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

TA关注的人

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