自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

原创 HDU 4968 DP||记忆化搜索

给出N个人的平局分X根据GPA规则计算可能的最高平均GPA和最低平均GPA可以DP预处理出来所有结果  或者记忆化搜索DP:#include "stdio.h"#include "string.h"int inf=100000000;double a[11][1100],b[11][1100];double Max(double a,double b){

2014-08-20 11:47:55 688

原创 POJ 1038 状压DP

一个公司生产一种2*3规模的芯片,但是原材料上面有一些地方是不能用来当作芯片材料的,给出原料大小,及上面不能做原料的点,问你怎么分解,可以使生成芯片最大化。对M进行三进制状压last数组存储第i-1行和i-2行状态,cur数组存储i行和i-1行状态cur[k]=2; // 本行k位置和上行k位置都不可用cur[k]=1; // 本行k位置可用,上行k位置不可用c

2014-08-17 16:41:44 734

原创 HDU 4939 DP

给你一段长为n的路,每一个单位长度可以放一种塔,这里有三种塔。红1)对正在经过这座塔的敌人进行 x 每秒伤害的攻击绿2)对于已经经过这塔的敌人进行y每秒的伤害攻击蓝3)对已经经过这个塔的敌人放慢速度,使得原先为 经过一个单位时间为  t的速度变为  t+z对于红塔一定是放在最后面,然后对于前面的绿塔和蓝塔DPdp[i][j]=Max(dp[i-1][j-1]+y*(i-j)*(

2014-08-13 11:27:28 499

原创 POJ 1458 LCS模板

LCS模板 存一个#include "stdio.h"#include "string.h"int main(){ char a[1010],b[1010]; int i,j,Max,dp[1010]; while (scanf("%s",a)!=EOF) { scanf("%s",b); memset(dp,0,s

2014-08-11 15:16:00 667

原创 POJ 1160 DP

用数轴描述一条高速公路,有V个村庄,每一个村庄坐落在数轴的某个点上,需要选择P个村庄在其中建立邮局,要求每个村庄到最近邮局的距离和最小。cost记录每两个村庄之间建一个邮局的最小代价。转移方程: dp[j][i]=Min(dp[j][i],dp[k][i-1]+cost[k+1][j])前j个村庄建i个邮局=前k个村庄建I-1个邮局+第k+1村庄到第j村庄建一个邮局的代价

2014-08-11 14:39:50 684

原创 POJ 1141 区间DP

给一组小括号与中括号的序列,添加最少的字符,使该序列变为合法序列,输出该合法序列。dp[a][b]记录a-b区间内的最小值,mark[a][b]记录该区间的最小值如何得到。#include "stdio.h"#include "string.h"int inf=99999999;char str[110];int dp[110][110],mark[110][110]

2014-08-10 14:16:24 677

原创 POJ 2486 树形DP

有一颗苹果树,每个节点上面有很多苹果,从一个节点到另外一个可以到达的节点花费1步,求k步最多能吃到多少苹果,起始点为1,可以不回到起始点。这是典型的回溯型树状dp。dp[i][j][0]代表以i为根节点的子树最多j步后回到i能吃到的最多的苹果,dp[i][j][1]代表以i为根节点的子树最多j步后不回到i节点最多能吃到的子树。那么状态转移就分三步了。(1)dp[

2014-08-09 20:23:30 951

原创 HDU 4927 大数

题意很简单:对于长度为n的数,做n-1遍,生成的新数列: b1=a2-a1   b2=a3-a2  b3=a4-a3c1=b2-b1   c2=b3-b2ans=c2-c1最后推出公式:  为n所在行的杨辉三角对于样例:31 2 3ans=1*1-2*2+1*3=041 5 7 2ans=-1*1+3*5-3*7+1*2=-5求杨辉三角每个数的时

2014-08-07 16:39:07 1110 1

原创 HDU 4920 水

矩阵乘法因为答案要MOD3,所以矩阵中会有很多值为0,对这些不乘就行了,,,,,,,这样也能水过。。。BUT :这样写会超时: for (int i=1; i<=n; i++) for (int j=1; j<=n; j++) for (int k=1; k<=n; k++)

2014-08-06 14:21:04 785

原创 HDU 4911 水

对于n个数,可以做k次移动,每次移动可以互换相邻位置的两个数,问最少 number of pair (i,j) where 1≤ii>aj.如果不移动的话,ans=’n个数的逆序对数‘,移动k次会减少k个归并排序求逆序对数:#include "stdio.h"#include "string.h"#include "math.h"int b[100010],a[1

2014-08-06 13:37:52 772

原创 HDU 4915 水

’?‘可以任意改变成‘(’ 或者‘)’,问序列有可行解,可行解是否唯一首先先判断是否有解判断是否为Many,记录每个位置的左边和右边各需要多少个‘(’或‘)’左边所需‘(’若正好等于 (i+1)/2,说明若有解则只有唯一解,右边所需‘)若正好等于(len-i)/2,说明若有解则只有唯一解,若均有多解,判断是否相互包含对方例:((()))变为 (()());

2014-08-06 13:18:54 1039 1

转载 POJ 题目分类

初期:一.基本算法:(1)枚举. (poj1753,poj2965)(2)贪心(poj1328,poj2109,poj2586)(3)递归和分治法.(4)递推.(5)构造法.(poj3295)(6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:(1)图的深度优先遍历和广度优先遍历.(2)最短路径算法(d

2014-08-04 16:22:34 484

原创 POJ 1947 树形DP入门题

给出N个点,N-1个关系,建出树形图,问最少减去几个边能得到节点数为P的树。典型树形DP题dp[cur][j] :记录cur结点,要得到一棵j个节点的子树去掉的最少边数转移方程用的背包的思想对当前树的每一个子树进行计算砍掉此子树:   dp[cur][j]=dp[cur][j]+1;不砍掉:           for (l=0;l#include "std

2014-08-04 16:18:56 722

原创 POJ 3342 树形DP入门题

题目意思和POJ2342一样,只是多加了一个条件,如果最大方案数唯一,输出Yes,不唯一输出Nodp的是时候多加一个变量记录答案是否唯一即可#include "stdio.h"#include "string.h"#include "vector"using namespace std;struct node{ int fa; vectorchi

2014-08-04 14:59:41 898

原创 POJ 2342 树形DP入门题

有一个大学的庆典晚会,想邀请一些在大学任职的人来参加,每个人有自己的搞笑值,但是现在遇到一个问题就是如果两个人之间有直接的上下级关系,那么他们中只能有一个来参加,求请来一部分人之后,搞笑值的最大是多少。树形DP入门题。DP部分:dp[i][0]表示职员i不来参加party,以i为根的子树的最大搞笑值,dp[i][1]表示职员i来参加party,以i为根的子树的最大搞笑值。转

2014-08-04 11:05:24 831

原创 POJ 3034 DP

打地鼠游戏中,你有一个锤子,每一秒钟你可以拿着锤子移动d个单位的距离,必须是直线,掠过的鼠洞中露出的地鼠都会被锤打至,而事先知道从开始时各时间段内出现在老鼠的数量和位置,问题是从游戏开始至结束时,你最多能打到多少只地鼠,开始时锤子可以在任何位置。题目有个陷阱,只是说Moles出现的坐标为正,但没说hammer移动的位置要为正,可以为"any position"所以锤子可以移出矩

2014-08-03 15:44:24 751

原创 HDU 4902 线段树||暴力

给定一个序列,两种操作1:把一段变成x。2:把一段每个数字,如果他大于x,就变成他和x的gcd,求变换完后,最后的序列。线段树解法:用lazy标记下即可,优化方法还是很巧妙的,Accepted4902515MS3308K1941 BC++#include "stdio.h"#include "string

2014-08-02 20:25:34 791

原创 HDU 4901 DP背包

给你n个数,问你将数分成两个数组,S,T ,T 中所有元素的需要都比S任意一个大,问你S中所有元素进行 XOR 操作和 T 中所有元素进行 &操作值相等的情况有多少种。DP背包思路dpa[i][j][0]  表示从左开始到i,不取i,状态为j的方案数dpa[i][j][1]  表示从作开始到i,取i,状态为j的方案数dpb[i][j]      表示从右开始到i,状态为j的方案数

2014-08-02 11:14:02 687

空空如也

空空如也

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

TA关注的人

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