自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 POJ3283 Card Hands(字典树)

题目大意: 给定n副牌计算一共有几张牌出现,如果前缀或后缀相同则此前缀或此后缀上的牌只计算一次。题目思路:本题要用到字典树,并且将不同的牌用花色编号*13+牌号来记:#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>int ans=0,p,n;int a[100000][100];char s[4

2016-06-17 14:14:10 561

原创 POJ3630 Phone List(字典树)

题目大意: 输入n个电话号码,如果一个电话号码是另一个的前缀输出”NO”否则输出”YES”题目思路:本题要用到字典树的插入和查询:#include<cstdio>#include<cstring>struct node{//定义结构体 int sum,n[10],e; node(){ sum=0; memset(n,0,sizeof(n));

2016-06-16 11:48:21 399

原创 POJ3345 Bribing FIPA(树形DP)

题目大意: 一个国家想贿赂至少m个国家,给出贿赂每个国家需要的钱及他们的附属关系。如果贿赂了主国,其附属国家也同样视为被贿赂了,且保证关系网没环,和一个国家最多只能被一个国家控制。题目思路:本题要用到树形背包和字符串处理,字符串用普通方法读入特别麻烦且代码繁琐。这里我第一次用到了map:#include<iostream>#include<cstdio>#include<cstdlib>

2016-06-15 09:33:31 457

原创 POJ3254 Corn Fields(状态DP)

题目大意: 给出一个M*N的矩阵,元素为0表示这个地方不能种玉米,为1表示这个地方能种玉米,现在规定所种的玉米不能相邻,即每行或者没列不能有相邻的玉米,问一共有多少种种植方法。思路状态DP:#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>int d[13][8192],p[8192],s[8192]

2016-06-14 10:41:08 264

原创 POJ3342 Party at Hali-Bula(树形DP)

题目大意: 有n个人要一起聚会,规定直接上司不能和他的直接下属一起出席。问最多能去几人是唯一解吗?题目思路:树形DP+链试前向星:#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>int to1[210],begin1[210],next1[210],d[210][2],u[210][2],e;ch

2016-06-13 08:55:52 333

原创 POJ1463 Strategic game(树形DP)

题目大意: 有一棵树,要求找到最少放几个士兵才能将所有点都看守到,每个节点的士兵只能看守临近一个的节点。题目思路:树形DP:#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>using namespace std;int d[1505][2],c[1505],to1[3010],next1[3010

2016-06-11 16:03:58 351

原创 HDU1561 The more, The Better(树形DP)

题目: ACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允许攻克M个城堡并获得里面的宝物。但由于地理位置原因,有些城堡不能直接攻克,要攻克这些城堡必须先攻克其他某一个特定的城堡。你能帮ACboy算出要获得尽量多的宝物应该攻克哪M个城堡吗? 思路:树形DP:#include<iostream>#include<cstdio>#inclu

2016-06-11 14:25:25 348

原创 POJ2486 apple tree(树形DP)

题目大意: 给出一个有n个节点的树,每个节点上有个权值,问不超过k步最多能遍历到的权值。 输入: 输入n和k,然后是n个节点的值,然后是n-1个i j代表了i和j节点相邻。 输出:最多能遍历到的权值。思路:树形dp:d[0][x][j+2] = max(d[0][x][j+2],d[0][v][k]+d[0][x][j-k]); d

2016-06-11 12:35:41 378

原创 USACO Training Section 1.5(八皇后升级)

题目: 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2 4 6 1 3 5来描述,第i个数字表示在第i行的相应位置有一个棋子,如下: 行号 1 2 3 4 5 6 列号 2 4 6 1 3 5 这只是跳棋放置的一个解。请编一个程序找出所有跳棋放置的解。并

2016-06-10 15:03:29 372

原创 POJ3579 Median(二分查找)

题目大意: 给出n(3<=n<=100000)个数,f(i,j)=|a[i]-a[j]| (1<=i小于j<=n)。求所有的f(i,j)里面中位数的值。思路,二分查找中位数:# include<stdio.h># include<stdlib.h>#include<algorithm>using namespace std;int a[100000],o,n;int lily(int

2016-06-05 09:38:13 505

原创 POJ1804 Brainman (逆序对)

题目大意: 给定一个序列,求逆序对。思路:枚举统计逆序对个数:# include<stdio.h># include<stdlib.h>int a[10000];int main(){ int ans,i,j,k,t,n; scanf("%d",&t); for(i=1;i<=t;i++){ ans=0; scanf("%d",&n

2016-06-04 17:13:32 765

原创 POJ1088 滑雪(记忆化搜索)

题目: Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 2

2016-06-03 17:16:03 400

转载 合并果子(优先队列)

#include<bits/stdc++.h>using namespace std;int n,i,m,k,s;int main(){ priority_queue<int>q; cin>>n; for(i=1;i<=n;i++){ cin>>m; q.push(-m); } while(q.size()-1){

2016-06-03 14:11:54 429

原创 POJ2155 Matrix(二维线段树)

题目大意: 有一个n*n的由零组成的矩阵,给定q个操作,C为将x1y1为左下角,x2y2为右下角的矩阵取反值。Q为输出xy的的0,1状态。思路:二维线段树的建造和访问:# include<stdio.h># include<stdlib.h># include<string.h>int a[4010][4010],n,m,ans;char s[1000];void buildy(in

2016-06-03 10:56:22 256

原创 POJ3264 Balanced Lineup(线段树静态)

题目大意: 一位农夫有n头牛,给出每头牛的身高。求q个范围内的牛中最高的和最矮的身高差。思路:线段树求一个序列中的最大值和最小值:# include<stdio.h># include<stdlib.h># include<algorithm>using namespace std;int a[10000000],x,y;struct node{ int b,e,s,c;}

2016-06-02 11:13:59 276

原创 POJ2019 Cornfields(记忆化枚举版)

题目: Description 给出一个N*N (N<=250)的方阵,以及K(<=100000)个询问。每次询问如下:以(Xi,Yi)为左上角,边长为B的子方阵中,最大值和最小值的差是多少? 注意对于所有的询问,B都是一个定值。 Input 第一行N,B(<=N),K。含义如上。 接下来N行N列的一个矩阵,每个数<=250。 接下来K行表示询问,每行两个数X

2016-06-01 15:17:51 569

原创 POJ2352 Stars(树状数组)

题目大意: 给出n个y坐标递减的星星坐标,每个星星都有一个一个等级是这颗星星下边和右边的星星总数(水平垂直也算)。大体思路:用树状数组统计处在下边和左边的星星总数,下边不用算,因为y坐标递减。只要算在第i可星星前输入的有多少颗x坐标小于当前:# include<stdio.h># include<stdlib.h>int a[1000000],p[10000000];int lily3(

2016-06-01 11:50:05 312

空空如也

空空如也

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

TA关注的人

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