自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HDU 5046 Airport DLX多重覆盖

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5046题意:有n个城市在二维平面上,任意两个城市间的距离为曼哈顿距离,现在在n个城市中选出k个设置机场,要求覆盖全部n个城市,问覆盖半径最小为多少思路:跟hdu 3656基本一样,只需要变换一下计算距离的公式即可,注意会爆int#include <bits/stdc++.h>using namespace s

2017-08-21 14:56:46 220

原创 HDU 3656 Fire station DLX多重覆盖

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3656题意:有n个城市在二维平面上,要选一些城市建消防站,不超过m个,消防站要把所有城市覆盖住,那么覆盖半径最小为多少?如果某个城市有消防站,那么这个城市和消防站的距离为0思路:明显的思路是二分半径用DLX判断是否可行,但是这样会超时,我们发现,答案一定是某两个城市之间的距离,因此预处理出所有城市之间的距离并

2017-08-21 14:18:16 302

原创 HDU 2295 Radar DLX重复覆盖

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2295题意:有n个城市在二维平面上,还有m个地点,从这m个地点中选出不超过k个放置雷达,雷达有一定的覆盖半径,问半径最小为多少时雷达可以覆盖所有城市思路:二分枚举半径,用DLX重复覆盖判断能否选出不超过k个雷达覆盖所有城市#include <iostream>#include <cstdio>#inclu

2017-08-21 14:03:10 225

原创 FZU 1686 神龙的难题 重复覆盖问题

题目:http://acm.fzu.edu.cn/problem.php?pid=1686题意:Problem Description 这是个剑与魔法的世界.英雄和魔物同在,动荡和安定并存.但总的来说,库尔特王国是个安宁的国家,人民安居乐业,魔物也比较少.但是.总有一些魔物不时会进入城市附近,干扰人民的生活.就要有一些人出来守护居民们不被魔物侵害.魔法使艾米莉就是这样的一个人.她骑着她的坐骑,神龙

2017-08-21 10:04:03 294

原创 ZOJ 3209 Treasure Map DLX精确覆盖

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3209题意:有一个n*m的矩形,现在有p个碎片,每个碎片精确的覆盖某个区域,问最少需要多少碎片可以恰好覆盖这个矩形,要求任意碎片之间不能有重叠的部分思路:可以发现矩形的范围比较小,那么把矩形内的点都抽象出来,碎片内的点都抽象出来,碎片内的覆盖对应的矩形中的点,就是精确覆盖

2017-08-21 09:58:20 275

原创 HDU 3498 whosyourdaddy DLX重复覆盖

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3498题意:有nn个敌人,其中有mm对敌人互为邻居,当你攻击杀死一个敌人时,同时会杀死它所有的邻居,问最少需要多少次攻击才能杀死所有敌人思路:DLXDLX重复覆盖,题很裸,很容易建图,对于第ii个敌人,如果它和jj互为邻居,则有matrix[i][j]=matrix[j][i]=1matrix[i][j] =

2017-08-20 19:57:40 270

原创 POJ 1724 ROADS bfs || dfs || A*

题目:http://poj.org/problem?id=1724题意:有nn个城市,这些城市之间有mm条道路,每条道路有长度和价格两种属性,问从11到nn在花费不超过kk的情况下的最短路径思路:直接dfsdfs可以过。bfsbfs+优先队列也可以,到达一个点时只要价格不超过kk就入队,路径最短的优先出队,等到终点出队时,路径一定是最短的。用A∗A*的话,其实和kk短路差不多,从小到大求出从11到n

2017-08-20 11:36:07 282

原创 HDU 1043 && POJ 1077 Eight bfs || 双向bfs || A*搜索

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1043 http://poj.org/problem?id=1077题意:经典8数码问题,求出任意一个操作过程思路:首先进行逆序数判断,可以发现,在八数码中,交换两个相连的位置,整个八数码中逆序数的数量的奇偶性不变,而终态的逆序数的奇偶性是偶,所以开始时检查初始状态逆序数的奇偶性,为奇的话则无解。然后求解操

2017-08-18 10:56:51 230

原创 POJ 2243 Knight Moves bfs || 双向bfs

题目:http://poj.org/problem?id=2243题意:给定一个8∗88*8的棋盘,编号为1−8和a−h1-8和a-h,按照给定的走法, 求从起点到终点需要的最少步数思路:直接bfsbfs或者双向bfs双向bfs都可以,在这题中,双向bfs双向bfs终于展现了比bfsbfs高的多的效率 bfs:bfs://700ms#include <iostream>#include <cs

2017-08-18 10:25:09 290

原创 POJ 1915 Knight Moves bfs || 双向bfs

题目:http://poj.org/problem?id=1915题意:给定一个n∗n的棋盘,给定起点和终点,按照题目给定的跳跃方式,求起点到终点的最小步数给定一个n*n的棋盘,给定起点和终点,按照题目给定的跳跃方式,求起点到终点的最小步数思路:水题一道,直接bfs即可,学习双向bfs的练习题。所谓双向bfs,就是起点和终点开始进行bfs,直到两者在搜索过程中相遇,这样可以减少一些搜索量,值得一提的

2017-08-17 20:13:07 351

原创 POJ 1975 Median Weight Bead floyd求传递闭包 || bfs

题目:http://poj.org/problem?id=1975题意:有n个珠子,n是奇数,每个珠子都有一个重量,有m个一对珠子之间的大小关系,问通过当前已知信息,有多少珠子一定不是重量为中位数的珠子有n个珠子,n是奇数,每个珠子都有一个重量,有m个一对珠子之间的大小关系,问通过当前已知信息,有多少珠子一定不是重量为中位数的珠子思路对于一个珠子,只需要求出重量大于它的珠子数量和重量小于它的珠子数量

2017-08-17 09:04:59 251

原创 HDU 1704 Rank floyd求传递闭包 || bfs

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1704题意:有n个人m条胜负关系,胜负是可以传递的,即x−>y且y−>z则有x−>z,问任意选两人有多少对不能确定胜负关系有n个人m条胜负关系,胜负是可以传递的,即x->y且y->z则有x->z,问任意选两人有多少对不能确定胜负关系思路:floyd求传递闭包,统计没有关系的数量即可。bfs也可以floyd求传

2017-08-17 08:55:58 376

原创 bzoj 2002 弹飞绵羊 分块

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2002题意:Description某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若

2017-08-16 20:30:45 189

原创 POJ 3265 Cow Picnic bfs

题目:http://poj.org/problem?id=3256题意:有k只奶牛在n个牧场,牧场间有一些单向道路相连,现在这些奶牛想聚集到一个牧场中,问有多少个这样的牧场可以使所有的牛都到达思路:从每个奶牛所在的牧场出发,进行bfs,把能到达的牧场计数+1,最后统计一下被访问k次的牧场个数即可。用floyd算法求传递闭包1930ms卡过。。。从每个奶牛所在的牧场出发,进行bfs,把能到达的牧场计数

2017-08-16 19:07:58 201

原创 POJ 3275 Ranking the Cows floyd求传递闭包 || bfs

题目:http://poj.org/problem?id=3275题意:有n个奶牛,有m个关系,形式如x y即x > y,现在给出的关系可能是不全的导致无法排出所有奶牛的名次,问最少添加再添加多个关系可以在任何情况都能排出所有奶牛的名次思路很明显的传递闭包,用邻接矩阵实现的floyd超时了,然后就写了一个bfs,300ms过了,然后看了一下大家的写法,基本都是用邻接表优化的floyd实现的,快的飞起

2017-08-16 16:19:07 292

原创 POJ 3660 Cow Contest floyd求传递闭包 || bfs

题目:http://poj.org/problem?id=3660题意:有n个奶牛在比赛,有m个比赛结果,形式如a,b代表a战胜了b,同时比赛关系是可以传递的,例如a战胜了b、b战胜了c,那么可以得到a战胜了c。问有多少只奶牛可以确定在这n只奶牛中的名次有n个奶牛在比赛,有m个比赛结果,形式如a,b代表a战胜了b,同时比赛关系是可以传递的,例如a战胜了b、b战胜了c,那么可以得到a战胜了c。问有多少

2017-08-16 10:50:49 395

原创 POJ 2449 Remmarguts' Date 第k短路 A*搜索

题目:http://poj.org/problem?id=2449题意:给定一个图,求从一点到另一点的第k短路思路:用A∗A*搜索写的。我们知道,对于A∗A*搜索,有估价函数f(n)=g(n)+h(n)f(n) = g(n) + h(n),其中f(n)f(n)是当前点的估值,通过估值大小我们决定搜索进行的次序,g(n)g(n)是走到当前点已经有的花费,h(n)h(n)是当前点到目标点的花费的估值,是

2017-08-16 09:02:08 324

原创 HDU 2899 Strange fuction 牛顿迭代法 || 二分

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2899题意:给定方程 F(x)=6∗x7+8∗x6+7∗x3+5∗x2−y∗x(0<=x<=100)F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100),求解F(x)F(x)在定义域内的最小值思路:牛顿迭代法可解,求出导函数的零点。用二分法求的话,求导之后可以

2017-08-14 21:10:19 408

原创 HDU 2199 Can you solve this equation? 牛顿迭代法 || 二分

题目http://acm.hdu.edu.cn/showproblem.php?pid=2199题意:给出方程如下:8∗x4+7∗x3+2∗x2+3∗x+6==Y8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y,求这个方程在[0,100][0,100]这个区间内的最小解思路:由于给定的方程和定义域可知,函数在定义域内是单调的,因此可以二分答案判断是否可行。另外更通用的一种方式

2017-08-14 20:09:17 375

原创 HDU 6115 Factory LCA求树上距离

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6115题意:Problem Description 我们将A省简化为由N个城市组成,某些城市之间存在双向道路,而且A省的交通有一个特点就是任意两个城市之间都能通过道路相互到达,且在不重复经过城市的情况下任意两个城市之间的到达方案都是唯一的。聪明的你一定已经发现,这些城市构成了树这样一个结构。现在百度陆续开了

2017-08-14 19:35:21 543

原创 牛顿迭代法

今天粗略看了一下牛顿迭代法。。。 这篇生动形象简单易懂:https://www.zhihu.com/question/20690553 这篇用牛顿迭代法求平方根:http://blog.csdn.net/wumuzi520/article/details/7026808 牛顿迭代法求平方根:#include <bits/stdc++.h>using namespace std;const do

2017-08-14 16:30:15 585

原创 HDU 6118 度度熊的交易计划 最小费用可行流

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6118题意:Problem Description 度度熊参与了喵哈哈村的商业大会,但是这次商业大会遇到了一个难题:喵哈哈村以及周围的村庄可以看做是一共由n个片区,m条公路组成的地区。由于生产能力的区别,第i个片区能够花费a[i]元生产1个商品,但是最多生产b[i]个。同样的,由于每个片区的购买能力的区别,

2017-08-14 15:26:35 380

原创 POJ 3076 Sudoku 精确覆盖问题DLX

题目:http://poj.org/problem?id=3076题意:16宫格,用大写字母A~P填充,输出一种方案思路跳舞链。注意建列约束的时候,按照存在性、行、列、块的顺序比行、列、块、存在性的顺序建约束快了差不多10倍,很迷。。。#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#incl

2017-08-14 10:51:26 374

原创 POJ 2676 Sudoku 跳舞链 || dfs

题目:http://poj.org/problem?id=2676题意:数独。。。思路:跳舞链水过,用dfs也可以过 跳舞链(15ms):#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int X = 100

2017-08-13 21:11:42 265

原创 POJ 3074 Sudoku 转化精确覆盖问题DLX

题目:http://poj.org/problem?id=3074题意:每次给出一行8181个字符,代表一个9∗99*9的数独矩阵,其中".""."代表没有填数字,要求把这个数独矩阵填满,并输出出来,输出同样是一行思路:大概我学跳舞链的初衷就是为了解数独问题?之前用dfs写过超时了,然后百度了一个思路很难想的dfs才给过,效率还是不怎么样,然后今天用跳舞链,真是快的飞起。可以发现,数独问题有以下四个

2017-08-13 20:41:45 398

原创 POJ 3740 Easy Finding 跳舞链模板

题目:http://poj.org/problem?id=3740题意:给出一个n∗mn*m的0101矩阵,问能不能够选出来若干行,使每列恰好只有一个11思路:跳舞链模板题。代码中其实把方案记录在ans数组中,要方案的话打印ans数组即可#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using

2017-08-13 19:37:05 280

原创 ZOJ 2859 Matrix Searching 二维线段树 || 二维RMQ

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1859题意:给定一个n*n的矩阵,有m个询问, 每个询问给出一个子矩阵的左上角和右下角坐标,问这个子矩阵内的最小值。思路:用二维线段树和二维RMQ都可以,没什么好说的。另外这个题数据少时限长,直接建n棵线段树都可以轻松水过,更暴力的方法也许也能过,大力出奇迹 二维线段树:#

2017-08-08 20:51:54 390

原创 HDU 1823 Luck and Love 二维线段树

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1823题意:Problem Description 世界上上最远的距离不是相隔天涯海角 而是我在你面前 可你却不知道我爱你 ―― 张小娴前段日子,枫冰叶子给Wiskey做了个征婚启事,聘礼达到500万哦,天哪,可是天文数字了啊,不知多少MM蜂拥而至,顿时万人空巷,连扫地

2017-08-08 20:40:16 304

原创 POJ 1195 Mobile phones 二维线段树

题目:http://poj.org/problem?id=1195题意:给出一个s*s的矩阵,有以下四种操作:0 S 把一个S*S的矩阵全初始化为0,这个操作仅在最初执行一次1 X Y A 把(X, Y)处的元素加上A2 L B R T 查询以(L, R)为左上角、(B, T)为右下角的矩阵内元素的和3 结束操作思路:二维线段树,很裸的题目了。。。不裸的话,有二维线段树写起来很麻烦,而且空

2017-08-08 20:26:03 252

原创 HDU 2888 Check Corners 二维RMQ模板

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2888题意:给一个n*m的矩阵,对于每次询问,给出左上角和右下角坐标,求这个子矩阵内的最大值,并判断最大值是否在子矩阵的四角上,是则输出yes,否则no思路:二维RMQ裸题,在一维RMQ上进行扩展,先求出所有一维RMQ,再去求二维,算法过程很清晰#include <bits/stdc++.h>using na

2017-08-08 20:02:09 267

原创 HDU 4819 Mosaic 二维线段树

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4819题意:初始给出一个n∗nn*n的矩阵,每次一个操作:给出x y Lx\ y\ L,意思是以(x y)(x\ y)为中心,以L/2L/2为长,向四周扩展成一个L∗LL*L矩形,若扩展的矩形超出了n∗nn*n矩形的范围,那么只取在范围的值,求出这个矩形内的最大值和最小值,最大值与最小值的和的一半作为(x y

2017-08-07 20:09:42 290

原创 POJ 2155 Matrix 二维线段树

题目:http://poj.org/problem?id=2155题意:有一个初始元素均为0的n∗n矩阵,有下面两种操作:有一个初始元素均为0的n*n矩阵,有下面两种操作:C x1 y1 x2 y2 以x1 y1为左上角,以x2 y2为右上角,把在这个范围内的矩阵元素取反,0变1,0变0C\ x_1\ y_1\ x_2\ y_2\ 以x_1\ y_1为左上角,以 x_2\ y_2为右上角,把在这个

2017-08-07 16:40:09 250

原创 HDU 2682 Tree 最小生成树 prim模板

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2682题意:有n个城市,每个城市有一个幸福值,对任意两个城市,如果两个城市中任意一个城市幸福值为素数或者两者之和为素数,那么这两个城市是可以连接的,代价是min(min(vi,vj),|vi−vj|)min(min(v_i, v_j), |v_i-v_j|),求把所有城市连接再一起的最小花费,不能连通输出-1

2017-08-07 10:02:32 328

原创 POJ 2796 Feel Good 单调栈或者笛卡尔树

题目:http://poj.org/problem?id=2796题意:给定一个长度为nn的数组,一个区间的值为这个区间的中所有值的和与最小值的乘积,求区间的最大值,并输出区间的左右端点思路:明显的单调栈,笛卡尔树也可以做#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespa

2017-08-04 19:51:13 470

原创 ZOJ 2243 & POJ 1785 Binary Search Heap Construction 笛卡尔树 || 单调栈

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1243 http://poj.org/problem?id=1785题意:给一个数nn,然后有nn对形如label/prioritylabel/priority的二元组,用这nn对二元组建一个treaptreap,对labellabel满足二叉搜索树的性质,对priorit

2017-08-04 17:04:25 429

原创 poj 2559 & hdu 1506 Largest Rectangle in a Histogram 笛卡尔树

题目:http://poj.org/problem?id=2559题意:有n个高度不等的矩形,问这些矩形的所能组成的新矩形的最大面积思路:单调栈,dp都可以做,笛卡尔树也可以做。按出现的次序做val,矩形高度做pri,然后O(n)建小顶堆的笛卡尔树,可以惊奇的发现,对于树上的每个节点,以它作为高的新矩形的面积就是以它为根的子树大小乘以它的高,为什么会这样?仔细想想构建小顶堆的笛卡尔树过程,就明白了#

2017-08-04 15:07:06 295

原创 POJ 2201 Cartesian Tree 笛卡尔树裸题加讲解

题目:http://poj.org/problem?id=2201题意:给出一个n,在给出n对数(且命名为x,y),构建一棵树,满足以下条件:对树上任意一个节点,有x > leftson_x 且x > rigthson_x对树上任意一个节点,有y > father_y构建完成后,输出每个点的父节点,左子节点,右子节点,没有的以0代替思路:笛卡尔树模板题。笛卡尔树每个节点有两个值,且称为val和

2017-08-04 10:29:31 595

原创 POJ 1442 Black Box treap || 树状数组 || 优先队列

题目:http://poj.org/problem?id=1442题意:给定n和m,表示有n个数往集合中插入,和m个输出。接下来是要插入的n个数,再然后是m个查询,对于某个查询b[i],意思是等到往集合中插入b[i]个数后查询第i小的数思路用treap直接一个一个插入就好,然后直接查询第i小,这是平衡树的看家本领,代码如下:#include <iostream>#include <cstdio>

2017-08-03 20:36:06 340

原创 HDU 6033 Add More Zero 简单数学

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6033题意:求2m2^m中有多少个10k(k>=1)10^k(k>=1)这样的数思路:其实就是求2m2^m的位数减去1,即log102m−1log_{10}2^m-1就是答案,2m2^m太大无法直接算位数,可以用对数去算: log102m−1log_{10}2^m-1 =log22mlog210−1=\f

2017-08-03 11:06:21 298

原创 SPOJ ORDERSET Order statistic set 简单平衡树 或 树状数组

题目:http://www.spoj.com/problems/ORDERSET/en/题意:有下面四种操作:I x 往集合中插入x,若存在则不操作D x 从集合中删除x,若不存在则不操作K x 求集合中第x大的数,若x大于集合的大小输出invalidC x 统计集合中小于x的数的个数思路:简单的平衡树题目,用treap很容易实现,另外学了一波pb_ds试着用了一下 treap:#inc

2017-08-03 09:57:40 411

空空如也

空空如也

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

TA关注的人

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