自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Little_boy_z的博客

↖(^ω^)↗

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

原创 hdu 1728 逃离迷宫 剪枝DFS

有两点需要注意。第一点是转弯问题,准备一个数组来存放到达每个点最小的转弯数。第二点就是剪枝了剪枝1:如果求出来了,直接return剪枝2:如果当前已经大于最大转弯数了,直接return剪枝3:第二次到达某个点时,如果转弯数大于之前到达的一次,直接return剪枝4:同样第二次到达某点,如果方向不一样我们还要+1,判断+1之后是否大于之前到达的那一次,如果大于了直接retur

2017-10-31 19:48:02 302

原创 hdu1072 Nightmare

Problem DescriptionIgnatius had a nightmare last night. He found himself in a labyrinth with a time bomb on him. The labyrinth has an exit, Ignatius should get out of the labyrinth before the bomb

2017-10-31 18:44:20 179

原创 POJ 1573 Robot Motion 搜索找一个循环

Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 12845 Accepted: 6234DescriptionA robot has been programmed to follow the instructions in its path. Instr

2017-10-31 17:44:37 197

原创 hdu1518 Square

Problem DescriptionGiven a set of sticks of various lengths, is it possible to join them end-to-end to form a square? InputThe first line of input contains N, the number of test ca

2017-10-31 17:03:27 251

原创 poj 1564 Sum It Up

Language:DefaultSum It UpTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 8123 Accepted: 4149DescriptionGiven a specified total t and a list of n i

2017-10-31 13:26:56 160

原创 poj1010 Tempter of the Bone DFS花式剪枝...

题目注意点:要t时刻恰好到达!各种剪枝。①时间超了,直接return②求出结果了,以后的全部直接return③题目一开始,如果可走区间小于要求时间,直接return④奇偶剪枝:对于每次的dfs,剩余时间减去当前点到达目的地的直接距离 所得到的那个值如果是偶数,继续运行。如果是奇数return。  因为那个数是留给我们乱走绕远路的,如果是奇数的话,我们走不回来了。#i

2017-10-30 21:46:45 218

原创 poj 1376 Robot BFS 块状的

DescriptionThe Robot Moving Institute is using a robot in their local store to transport different items. Of course the robot should spend only the minimum time necessary when travelling from one

2017-10-30 20:44:12 227

原创 POJ - 2074 Line of Sight 射线遮盖

An architect is very proud of his new home and wants to be sure it can be seen by people passing by his property line along the street. The property contains various trees, shrubs, hedges, and other o

2017-10-30 18:24:14 230

转载 POJ1584-A Round Peg in a Ground Hole

转载请注明出处:優YoU  http://user.qzone.qq.com/289065406/blog/1309142308大致题意:按照顺时针或逆时针方向输入一个n边形的顶点坐标集,先判断这个n边形是否为凸包。再给定一个圆形(圆心坐标和半径),判断这个圆是否完全在n变形内部。 解题思路:题意已经很直白了。。就是那个思路。。。

2017-10-30 13:45:34 224

原创 POJ - 1039 Pipe

The GX Light Pipeline Company started to prepare bent pipes for the new transgalactic light pipeline. During the design phase of the new pipe shape the company ran into the problem of determining how

2017-10-30 12:50:52 479

原创 POJ - 1410 Intersection 线段关系

/******************************************#include #include #include #include #include #include #include #include #include #include using namespace std;const double

2017-10-29 18:53:36 218

原创 POJ - 1556 The Doors

You are to find the length of the shortest path through a chamber containing obstructing walls. The chamber will always have sides at x = 0, x = 10, y = 0, and y = 10. The initial and final points of

2017-10-29 18:08:26 216

原创 POJ - 1269 Intersecting Lines 两直线的位置关系

#include #include const double T = 1e-8;struct Node{    double x, y;}p1, p2, p3, p4;double ChaJi(Node a, Node b, Node c){    return (c.x-a.x)*(b.y-a.y)-(c.y-a.y)*(b.x-a.x);} void Sol

2017-10-29 13:22:27 257

原创 POJ - 2318 TOYS 二分+叉积

给出n条线段把一个区域分割成不同的地区,之后给你m个点,求每个地区有几个点。线段是从左到右给出的,所以不用做什么处理。对于每一个点我们直接二分,即可。#include#include#includeusing namespace std;struct point{int x,y;};struct Node{point a,b;}A[5010];

2017-10-29 12:23:50 242

原创 POJ - 1873 The Fortified Forest 二进制+凸包

Once upon a time, in a faraway land, there lived a king. This king owned a small collection of rare and valuable trees, which had been gathered by his ancestors on their travels. To protect his trees

2017-10-29 10:39:05 586 2

原创 POJ - 1113 Wall 凸包周长

#include#include#include#includeusing namespace std;const int MAXN=1000;const double PI=acos(-1.0);struct point{    int x,y;};point list[MAXN];int stack[MAXN],top;int

2017-10-28 20:19:01 228

转载 hdu 1024 从一个序列中选择m个序列不交叉,就最大值

hdu 1024(最大和连续子序列增强版)题意:最大和连续子序列的增强版,要求从一序列中取出若干段,这些段之间不能交叉,使得和最大并输出。分析:用dp[i][j]表示前j个数取出i段得到的最大值,那么状态转移方程为dp[i][j]=max(dp[i][j-1]+a[j],dp[i-1][k]+a[j])  i-1这个状态转移方程表达了两种不同的选择:第一个就是第j个连在第j-1

2017-10-28 18:23:37 513

原创 HDU - 1078 FatMouse and Cheese 记忆化搜索

#include #include #include #include #include #include #include #include #include #include #define INF 99999999#define MAX 100000#define INF 100000000using namespace std;int

2017-10-28 16:06:34 185

原创 poj3186(区间dp)

题意:给一行n个数,每次可以取出行首或者行末的数,如果第ai是第i次取出的,可以得到ai*i的收益,求最大的总收益;我们设dp[i][j],表示从i到j的最大收益。最后输出dp[1][n]即可。那么对于dp[i][j],我们上一次拿出的肯定是i个或者第j个。那么dp[i][j]=max( dp[i-1][j]+a[i]*(i+j)  ,  dp[i][j-1]+a[n-j+1]

2017-10-28 11:20:40 311

原创 POJ 1661 Help Jimmy 最短路或者dp

Help Jimmy" 是在下图所示的场景上完成的游戏。场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落。Jimmy每次下落的高度不能超过MA

2017-10-28 11:06:48 192

原创 HDU - 1176 G - 免费馅饼

都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现实中运动神经特别迟钝

2017-10-28 10:45:35 231

原创 HDU - 1074 Doing Homework HDU - 1074

利用二进制才实现dpn个作业,一共有1枚举每一种情况,之后遍历每一个作业,如果当前情况下这个作业还没做,我们就不做任何处理。如果当前作业做了,我们就让当前情况变成当前作业没做的那个情况下,之后没做的情况的值加上当前作业的值再减去当前作业需要扣除的分数(注意最低为0)。就是我们枚举的那个情况的值了#include  #include  #inclu

2017-10-28 10:01:26 348

原创 HDU - 1069 C - Monkey and Banana

对于每一个盒子,我们保存6分,分别表示不同的xyz。之后就类似求最长子序列了#include #include #include#include using namespace std;struct nodee{    int a,b,c;}node[1000];int dp[1000];bool cmp(nodee

2017-10-27 21:58:51 840

原创 HDU - 1029 B - Ignatius and the Princess IV

"OK, you are not too bad, em... But you can never pass the next test." feng5166 says. "I will tell you an odd number N, and then N integers. There will be a special integer among them, you have to

2017-10-27 21:41:41 490

原创 运用map来给坐标赋值。

#include #include #include #include #include #include #include #include #include #include using namespace std;const int MAXN=400010;struct Point{    int x,y;    bool frie

2017-10-27 21:40:56 674

原创 51nod 1412 AVL树的种类

平衡二叉树(AVL树),是指左右子树高度差至多为1的二叉树,并且该树的左右两个子树也均为AVL树。 现在问题来了,给定AVL树的节点个数n,求有多少种形态的AVL树恰好有n个节点。dp[i][j]  由i个节点组成深度为j的。那么dp[i][j]= dp[i][j] +dp[k][j-1]*dp[i-k-1][j-1]  + dp[k][j-1]*dp[i-k-1]

2017-10-23 20:20:39 305

原创 51nod 1021 石子归并

N堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一堆的最小代价。例如: 1 2 3 4,有不少合并方法1 2 3 4 => 3 3 4(3) => 6 4(9) => 10(19)1 2 3 4 => 1 5 4(5) => 1 9(14) => 10(24)

2017-10-23 20:18:29 150

原创 51nod 1270 数组的最大代价 绝对值取极值问题

数组A包含N个元素A1, A2......AN。数组B包含N个元素B1, B2......BN。并且数组A中的每一个元素Ai,都满足1   (公式表示所有两个相邻元素的差的绝对值之和)给出数组B,计算可能的最大代价S。就是极值的问题。条件1 仔细想想对于每一位我们有两种状态,一种是取1,一种是取n。

2017-10-23 20:13:53 180

原创 51nod 1270 数组的最大代价 绝对值取极值问题

数组A包含N个元素A1, A2......AN。数组B包含N个元素B1, B2......BN。并且数组A中的每一个元素Ai,都满足1   (公式表示所有两个相邻元素的差的绝对值之和)给出数组B,计算可能的最大代价S。就是极值的问题。条件1 仔细想想对于每一位我们有两种状态,一种是取1,一种是取n。

2017-10-23 20:10:28 209

原创 51nod 1101 换零钱 完全背包

N元钱换为零钱,有多少不同的换法?币值包括1 2 5分,1 2 5角,1 2 5 10 20 50 100元。例如:5分钱换为零钱,有以下4种换法:1、5个1分2、1个2分3个1分3、2个2分1个1分4、1个5分(由于结果可能会很大,输出Mod 10^9 + 7的结果)完全背包,统计个数问题。就是完全背

2017-10-23 20:04:04 241

原创 51nod 1007 正整数分组 分组问题转换为背包问题

将一堆正整数分为2组,要求2组的和相差最小。例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。01背包问题。他要求把这些数分成两部分,两部分的差值最小。差值最小就代表接近相等。也就是让两边都尽可能的接近sum/2.我们把这些数尽可能的填入一个容量为sum/2的背包当中,看

2017-10-23 20:01:22 205

原创 51nod 1050 循环数组最大子段和 !!!!巧妙

N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1],a[n],a[1],a[2]这样的序列)。当所给的整数均为负数时和为0。例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。很巧妙的一

2017-10-23 19:49:03 186

原创 51nod 1183 编辑距离

编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如将kitten一字转成sitting:sitten (k->s)sittin (e->i)sitting (->g)所以kitten和sittin

2017-10-23 19:40:17 144

原创 51nod 1049 最大子段和

N个整数组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续子段和的最大值。当所给的整数均为负数时和为0。例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。这个很简单了,我们就是枚举一直加,如果当前sum#include#includeusing names

2017-10-23 19:33:24 202

原创 51nod 1134 最长递增子序列 DP

给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的)例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10。DP【i】表示以i结尾的最长公共子序列长度是多少。我们枚举1-N,变量为i。对于每个i,我们再遍历1-i,变量为j。如果啊a[i]>a[j],dp[i]=max(dp[i],dp[

2017-10-23 19:29:57 163

原创 poj 1990 MooFest 树状数组

题意就是有N头牛,每头牛都有一个坐标和声调值(x, v),两头牛之间通讯要花费的能量是他们的距离乘以最大的一个音调值,现在要任意两头牛之间都相互通讯一次,求总共需要花费多少能量?准备两个树状数组,并且正反进行两次。分别找左边还有右边,两个数组存别存放个数和长度、#include  #include  #define lowbit(x) (x&(-x)

2017-10-21 17:55:51 147

原创 HOJ 2275 Number sequence(树状数组) 大于小于问题

题意:给定一个n个元素的数列,令Ai, Aj, Ak,使得 Ai Ak 且 i 要建立两次树状数组。首先,我们插入数据进入树状数组时,用一个tmp1数组来记录每个数前面有几个小于它的。这样就保存了 Ai 之后我们清空数组,再倒着插入一次,用tmp2数据记录每个数前面有几个小于它的。这样保证了Aj > Ak的数量了。我们一乘即可#incl

2017-10-21 13:41:18 251

原创 hdu 2688 树状数组求 序列对

R表示k1--k2依次向左循环1位 Q:查询多少升序序列#include   #include   using namespace std;  #define maxn 3000005  int arr[10005],a[maxn];  int lowbit(int x)  {      return x&(-x);  }  void upd

2017-10-21 10:50:13 179

原创 hdu 1892 See you 二维树状数组,很好的一道题

题目给定4种操作:  S x1 y1 x2 y2 询问以(x1 , y1) - (x2 , y2)为对角线的矩形的面积,但是这个对角线不一定是正对角线。A x1 y1 n 把点(x1 , y1)加上n。D x1 y1 n点(x1 , y1)减去n如果不足n就全部删除即可。M x1 y1 x2 y2 n 把点(x1 , y1)点值中扣除n加到(x2 , y2),如果不过n则把(x1 , y1)值

2017-10-21 10:39:27 198

原创 POJ1195:Mobile phones二维树状数组 单点更新,区间查询

题意:给出一个全0的矩阵,然后一些操作0 S:初始化矩阵,维数是S*S,值全为0,这个操作只有最开始出现一次1 X Y A:对于矩阵的X,Y坐标增加A2 L B R T:询问(L,B)到(R,T)区间内值的总和3:结束对这个矩阵的操作思路:使用二维树状数组进行操作[cpp] view plain

2017-10-20 12:45:24 185

空空如也

空空如也

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

TA关注的人

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