自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 POJ 2761 Feed the dogs 主席树(区间第k大)

题目:http://poj.org/problem?id=2761题意:求区间第k大数,很裸思路:很裸的主席树#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 100100;int root[N], lson[N*20], r

2016-10-30 21:50:13 390

原创 HDU 1873 看病要排队 优先队列

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1873题意:Problem Description 看病要排队这个是地球人都知道的常识。 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病。而看病的人病情有轻重,所以不能根据简单的先来先服务的原则。所以医院对每种病情规定了10种不同的优先级。

2016-10-30 20:24:54 559

原创 HDU 5952 Counting Cliques dfs乱搞

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5952题意:给定一个无向图图,问这个图中含有多少个顶点数为s的子图是完全图思路:首先把每个点邻接的点存到相应的数组里,遍历每个点,如果一个是完全图的子图中有当前点,那么子图中的其他点一定全部与当前点邻接,于是在当前点邻接的所有点中枚举出s-1个点,判断枚举出的s个点是否构成完全图。本题数据很强,一直TLE,后

2016-10-30 20:22:08 888

原创 HDU 1865 1sting 斐波那契数列 + 大数加法

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1865题意:给定一个长度不超过200的只有1的字符串,可以把相邻的两个1合并为2,问合并后有多少种不同的字符串思路:很容易发现答案是斐波那契数列,只不过200项会溢出,所以要用大数#include <iostream>#include <cstdio>#include <cstring>#include

2016-10-30 20:14:04 368

原创 HDU 1896 Stones 优先队列

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1896题意:路上有一些石头,给定每个石头所在的位置和石头能扔到的距离。现在从位置较小的石头开始走,若是遇到的第奇数块石头,就捡起来扔到前面去,若是第偶数块,就不管,若一个位置上有一块以上的石头,则优先选择扔的较近的那个,问最后最远的石头位置思路:优先队列简单应用,重载小于号,位置为第一关键字,扔的距离为第二关

2016-10-30 20:08:24 354

原创 HDU 4289 Control 最大流

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4289题意:恐怖份子通过高速公路要从起点城市到目标城市运送武器,高速公路只能在城市中进出,如果所经过的某个城市有特工,恐怖份子就会被抓获,但是与某个城市的特工保持联络需要一些花费,现在挑选一些城市,恐怖份子至少会经过其中一个(也就是会被抓),并且使花费最小,输出最小的花费思路:其实就是求最小割。把每个城市拆点

2016-10-29 18:54:24 288

原创 HDU 3487 Play with Chain 伸展树splay

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3487题意:给定一个数n,代表有一个数列1~n,有下面两种操作: 1. CUT a b c 把区间[a,b]这一段元素切下来接到第c个元素的后面 2. FLIP a b 反转区间[a,b]思路:对于第一种操作,把a-1旋转为根,b+1旋转为根的右儿子,那么区间[a,b]就在根的右儿子的左子树上,然后把c旋

2016-10-27 13:36:06 366

原创 POJ 2828 Buy Tickets 线段树 + 思维

题目:http://poj.org/problem?id=2828题意:有n个人来排队,每次来一个人都会插到当前队伍中某个人的后面,输出最后的排队序列思路:思维题。可以发现,每个人最后的位置,只跟他之后来插队的人有关,于是可以逆序求解,具体可用线段树#include <iostream>#include <cstdio>#include <cstring>#include <algorithm

2016-10-26 21:00:55 302

原创 POJ 3481 Double Queue 伸展树splay + 删除节点

题目:http://poj.org/problem?id=3481题意:有一组操作,有如下三种: 0. 0,结束操作 1. 1 k p,把一个客户k加入到队列中,优先级为p 2. 2, 把队列中优先级最高的客户取出来 3. 3, 把队列中优先级最低的客户取出来思路:此题多种数据结构都可以做,练习splay用,通过此题主要学习到以下东西: 1. 删除节点:首先把此点旋转为根,找到此点的前驱

2016-10-24 22:27:54 921 1

原创 POJ 3468 A Simple Problem with Integers 伸展树splay 区间更新

题目:http://poj.org/problem?id=3468题意:给定一个序列,有两种操作: 1. Q a b询问[a,b]区间内元素和 2. C a b c把区间[a,b]内的元素全部加上c思路:线段树区间更新模板题,用splay来找虐了。。。旋转某个节点前,要把它所有的祖先节点都往下更新,旋转节点时也要让节点向下更新。最后,这个题,用单旋过的很愉快,用双旋卡着时间过。。。#inclu

2016-10-23 19:47:11 462

原创 HDU 1166 敌兵布阵 伸展树splay简单练手题

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1166题意:C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发

2016-10-23 13:47:19 718

原创 HDU 5893 List wants to travel 树链剖分

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5893题意:给定一棵树,树有边权,有两种操作:改变两点之间路径上的边权为某个值查询两点之间路径上的边权序列有多少个连续区间思路:把边权映射到其邻接的两点中深度较大的点上去,树链剖分,线段上维护,线段树维护区间左端点和右端点颜色,合并时较麻烦。此题真正的难点在查询时,合并两个区间要判断端点颜色是否相同#i

2016-10-21 16:53:38 318

原创 POJ 2296 Map Labeler 2-sat + 矩阵相交

题目:http://poj.org/problem?id=2296题意:有n个点,要用n个正方形标签贴住n个点,要求点必须在标签的上边或下边的中点,且标签不能相互覆盖,问标签的最大边长为多少思路:枚举两点,点在边上的位置共有上上,上下,下上,下下这四种情况,然后去判断每种情况下两个标签是否相交,即判断矩形相交,若相交,则不能共存#include <iostream>#include <cstdio

2016-10-21 10:39:32 423

原创 POJ 3905 Perfect Election 2-sat判断可行解

题目:http://poj.org/problem?id=3905题意:n个人参加选举,现在有个民意调查,有m个回复,每个回复有两个选择a b,如果a是正数,代表希望a当选,负数则希望-a不当选,两个选择至少满足一个,问有没有一个选举结果可以满足民意调查思路:建图很简单,只有OR的关系,不再说,具体看代码,跟lightoj有道题基本一样#include <iostream>#include <cs

2016-10-20 20:50:37 457

原创 HDU 4421 Bit Magic 2-sat判断可行解

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4421题意:给定一个矩阵b,问问在题目中给定的伪代码下,是否存在a数组思路:刚开始我把每个数化成31位二进制一起搞了,果断GG了。可以把每次统一只取矩阵中数字的某一位二进制,这个二进制显然是0或1,那么就可以根据三种运算符建图判断是否有可行解,这样判断31次就可以了#include <iostream>#i

2016-10-20 20:10:43 379

原创 POJ 3683 Priest John's Busiest Day 2-sat输出任意一组解

题目:http://poj.org/problem?id=3683题意:有一个牧师,要去主持婚礼,现在这一天有n场婚礼,每场婚礼都有一个时间段和持续时间,每场婚礼只能在其时间段的开端和末尾举行,问牧师能不能主持所有的婚礼,若能输出YES并输出每场婚礼举办的具体时间,否则输出NO思路:每场婚礼时间段的开端和末尾看成点,然后判断任意两场婚礼的开端末尾是否冲突,冲突则建边,主要是判断区间的冲突问题总结:这

2016-10-19 16:45:18 380

原创 POJ 3678 Katu Puzzle 2-sat简单题

题目:http://poj.org/problem?id=3678题意:给定一个有向图,每条边有一个操作符(AND || OR || XOR)和一个值(0或1),问能不能给每个点赋值(0或1),使得任一条边连接的两个点的值通过边上的运算符得到的值等于边上的值思路:明显的2-sat题目AND 当c=0时,连边(a,~b)(b,~a);当c=1时,连边(a,b)(b,a)(~a,a)(~b,b)OR

2016-10-18 12:03:57 433

原创 HDU 4115 Eliminate the Conflict 2-sat

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4115题意:A和B玩剪刀石头布,共n轮,A想要赢得游戏,那么每一轮都不能输给B(即要么每一轮都赢B或者和B平局),现已知B每轮出的结果,然后问A能不能赢得游戏思路:自己写的1A,就是太麻烦了,之后看了网上的代码,果然精简,都说说吧。 我自己写的是这样的: 把每轮的三种结果作为点,那么就有3*n个点,根据B

2016-10-10 13:34:12 354

原创 POJ 2749 || HDU 1815 Building roads 2-sat

题目:[http://poj.org/problem?id=2749](http://poj.org/problem?id=2749)题意:有两个中转站并给出坐标,有n个牛舍并给出n个坐标,要把n个牛舍连接到两个中转站上使任意两个牛舍想通。每个牛舍里有一头牛,然后有A对牛之间是敌对关系,着意味着他们不能连接在同一个中转站上,有B对牛之间是朋友关系,意味着他们必须连在同一个中转站上,问满足上述条件的

2016-10-09 20:15:05 340

原创 LightOJ 1251 - Forming the Council 2-sat输出任意一组解

题目:http://www.lightoj.com/volume_showproblem.php?problem=1251题意:有m个候选人,有n个选民,每个选民投票时有两个选择,问能不能满足所有选民的至少一个选择,如果可以,输出当选的人,多解输出任意一组思路:此题中两个选择是或的关系,简单题#include <iostream>#include <cstdio>#include <cstrin

2016-10-08 20:07:41 562

原创 POJ 3207 Ikki's Story IV - Panda's Trick 2-sat

题目:http://poj.org/problem?id=3207题意:给定一个圆,圆上有按顺序分部的0至n-1共n个点,现在连接m对点,这m对点不会出现重复,连线可以在圆内或者圆外,问连线会不会有相交思路:两条交叉的连线是矛盾关系,只能一条在圆内一条在圆外,于是把连线看成点,连四条边(i, ~j)(j, ~i)(~i, j)(~j, i),判断i和~i和有没有在一个强连通分量内#include <

2016-10-08 12:33:11 501

原创 POJ 2723 Get Luffy Out 二分 + 2-sat

题目:http://poj.org/problem?id=2723题意:有2n把钥匙,分成n对,每对只能使用其中一把,有m扇门,每扇门上有两个锁,每个锁都有对应的钥匙,要打开第i扇门才能去开第i+1扇门,求最多能打开多少扇门思路:二分枚举结果,然后2-sat判定是否可行,每对钥匙只能存在一个,每扇门两个锁,不打开一个,必定打开另一个#include <iostream>#include <cstd

2016-10-07 16:24:45 383

原创 HDU 5927 Auxiliary Set dfs(思维)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5927题意:有一棵n个节点的有根树(1为树根),先定义重要节点x如下:1.x是重要节点。2.x的两个重要节点的lca。每次询问给出m个不重要节点(意味着其余点都是重要节点),问当前树中有重要节点的个数。思路:本题其实是求不重要节点中有多少节点可以变成重要节点。首先对树进行一次dfs,求出每个节点的父亲和儿子的

2016-10-07 14:21:28 754

原创 HDU 3715 Go Deeper 二分 + 2-sat

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3715题意:给定一段递归伪代码,问执行这段伪代码递归的最深层数思路:二分枚举答案用2-sat判定是否可行。具体建图如下:如果c[i] == 0,那么a[i] OR b[i],如果c[i] == 1,那么(a[i] AND b[i]) OR (~a[i] AND ~b[i]),如果c[i] == 2,那么 N

2016-10-07 11:18:04 539

原创 HDU 3622 Bomb Game 二分 + 2-sat

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3622题意:一个游戏有n轮,每轮给出两个点的坐标,表示以这两个点之中的一个为圆心画一个圆,半径自定,但要求n轮后画出的n个圆之间不能相交,求半径最小的那个圆的半径最大是多少思路:首先最大化最小值,这是二分的典型套路,我们二分半径,然后对于不同组的两点,如果他们之间距离小于2倍的枚举值,那么就是两者只能存在一个

2016-10-07 09:53:14 355

原创 HDU 1824 Let's go home 2-sat判断可行解

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1824题意:Problem Description 小时候,乡愁是一枚小小的邮票,我在这头,母亲在那头。 —— 余光中 集训是辛苦的,道路是坎坷的,休息还是必须的。经过一段时间的训练,lcy决定让大家回家放松一下,但是训练还是得照常进行,lcy想出了如下回

2016-10-06 10:47:35 492

原创 POJ 3648 Wedding 2-sat

题目:http://poj.org/problem?id=3648题意:有n对夫妻参加婚礼,新郎新娘分别坐在桌子的两侧,要求新娘看到的那一侧(也就是新郎所在一侧)不能有一对夫妻,而且不能有通奸关系,然后输出新娘所在这一侧的人(没有关系限制)思路:可以发现新郎这一侧就是基础的2-sat问题,于是我们求新郎这一侧的人,连边建图,很简单,求出结果后输出跟新娘染成一个眼神的人。注意一点,因为我们求得这个解必

2016-10-05 16:29:35 538

原创 HDU 3062 Party 2-sat

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3062题意:Problem Description 有n对夫妻被邀请参加一个聚会,因为场地的问题,每对夫妻中只有1人可以列席。在2n 个人中,某些人之间有着很大的矛盾(当然夫妻之间是没有矛盾的),有矛盾的2个人是不会同时出现在聚会上的。有没有可能会有n 个人同时列席?Input n: 表示有n对夫妻被邀请

2016-10-04 11:16:59 355

原创 HDU 1814 Peaceful Commission 2-sat(字典序最小的解)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1814题意:有n个党派每个党派有2人,现在要选n个议员,要使每个党派都入选一人,然后有些人不能同时入选。求一个字典序最小的解思路:直接暴力枚举DFS,首先将所有的点都置为为染色,然后我们从第一个点开始DFS染色,我们先尝试将i染成红色(答案中的颜色1),将~i染成蓝色(2),然后dfs i的所有后继并染色,如

2016-10-03 20:59:50 882

原创 HDU 4607 Park Visit 树的直径

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4607题意:给定一棵树,可以从树的任意一点开始访问树,问访问k个点最少经过边的次数思路:如果树中存在一条链大于等于k,那么只需要沿着这条链走下去不用走重复的边,故答案为k-1,而这条链也就是树的直径,如果树的直径小于k,那么要再访问树直径外的点,走过去再回来,于是额外的次数就是访问的树直径外的点数 * 2

2016-10-02 20:34:31 458

原创 HDU 3078 Network LCA + 排序

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3078题意:给定一棵树,树上每个点都有权值,有两种操作: k a b,k == 0时把a点的权值改为b,k > 0时求a到b路径上第k大的权值思路:k == 0时直接改权值即可,求k大值时求出a到b的LCA,然后分别从a和b出发走到LCA,记录下路径上的权值,排序输出第k大即可总结:数据很菜,这

2016-10-02 17:10:45 695

原创 SPOJ COT Count on a tree 树上第k大(主席树)

题意:http://www.spoj.com/problems/COT/en/题意:给定一棵树,树上每个节点都有一个权值,问两点之间路径上第K大值思路:树上的第k大值,跟区间第k大有些不同,区间第k大每个值在前一个值的基础上新建一棵树,而树上第k大则是在父亲节点的基础上新建一棵树。查询的时候,答案就是root[v] + root[u] - root[lca(v, u)] - root[fa

2016-10-02 15:57:28 1832

原创 HDU 5908 Abelian Period 模拟乱搞

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5908题意:问题描述设SS是一个数字串,定义函数occ(S,x)occ(S,x)表示SS中数字xx的出现次数。例如:S=(1,2,2,1,3),occ(S,1)=2,occ(S,2)=2,occ(S,3)=1S=(1,2,2,1,3),occ(S,1)=2,occ(S,2)=2,oc

2016-10-02 13:03:04 513

原创 HDU 3727 Jewel 主席树简单题

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3727题意:有一个空链,现有如下几种操作:Insert x 把数x插入链中(从右端插入)Query_1 s t k 查询链上区间[s, t]内的第k小值Query_2 x 查询x在链上是第几小Query_3 k 查询整条链上的第k小值思路:首先把所有操作存下来,把要插入的数据离散化,

2016-10-02 10:21:55 517

原创 HDU 4348 To the moon 主席树 + 区间更新

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4348题意:给定长度为n的数组,有四种操作:C l r d把[l, r]内的元素全部加上d并把时间计数器加1,Q l r查询[l, r]内元素的和,H l r t查询t时刻[l, r]内元素的和,B t返回时刻t(保证只向前而不向后跳)思路:跳回之前的某个状态,明显是可持久化数据结构,这题就是明显的

2016-10-01 20:32:13 1049

原创 HDU 4638 Group 树状数组离线

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4638题意:给定一个长度为n的数组,数组中元素为1到n,询问某个区间内有多少段连续的数字思路:之前用莫队算法写的,很简单,今天用树状数组离线搞得,感觉不如莫队好想,但是效率高了将近一倍。把询问按照右端点从小到大排序,对于每个数,我们看成是孤立的,更新到树状数组上,即把这个位置加1,然后判断这个数的左

2016-10-01 12:04:07 422

原创 SPOJ DQUERY D-query 树状数组离线

题目:http://www.spoj.com/problems/DQUERY/en/题意:给定一个数组,每次询问一个区间内有多少不同的元素思路:本题用莫队或者主席树都可以,但是用树状数组离线更快。#include #include #include #include #include using namespace std;typedef long long ll;co

2016-10-01 11:09:37 428

空空如也

空空如也

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

TA关注的人

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