自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HDU 3333 Turing Tree 树状数组离线

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3333题意:给定一个长度为n的数组,有一些询问:[l, r]内元素的和(相同元素只加一次)。思路:之前做过类似的题目,用的莫队算法或者主席树,也是学习这两个的过程中看到了树状数组离线算法,这次用树状数组离线乱搞一下。首先对所有的询问按照右端点从小到大排序,然后开始依次处理每个元素,对于当前元素,若是

2016-09-30 21:06:45 390

原创 HDU 2852 KiKi's K-Number 树状数组

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2852题意:维护一个数据结构,有三种操作:0 e代表把e加入到数据结构中,1 e代表把e从数据结构中删除,2 a k代表求数据结构中大于a的第k大数思路:此题用树状数组可以轻松过,前两种操作也就是直接更新树状数组,第三种操作二分枚举,当树状数组求和sum(mid) - sum(a) = k的时候,m

2016-09-30 19:24:57 436

原创 HDU 2852 KiKi's K-Number 主席树

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2852题意:维护一个数据结构,有三种操作:0 e代表把e加入到数据结构中,1 e代表把e从数据结构中删除,2 a k代表求数据结构中大于a的第k大数思路:用主席树可做。对于前两种操作,就是主席树中增删节点,都通过新建节点来完成,对于第三种操作,可以求出小于等于a的个数cnt,可以用树状数组来维护小于

2016-09-30 19:02:46 623

原创 LightOJ 1094 Farthest Nodes in a Tree 树的直径

题目:http://www.lightoj.com/volume_showproblem.php?problem=1094题意:给定一个由n个点的树,树边都有权值,求树中相距最远的两个点的距离是多少思路:此题求树的直径。首先任选一点做dfs,求出此点到其他点的距离,然后从距离最远的点(此点为树的直径的一个端点)开始再做一次dfs,求出到所有点的距离,此时的最大距离就是树上两点间的最大距离,

2016-09-27 21:43:20 333

原创 UVA 11865 Stream My Contest 二分枚举 + 最小树形图

题目:http://vjudge.net/problem/UVA-11865题意:以0为根构建树形图,其中每条边有两个权值,一个为花费一个为流量,要求构建树形图时花费不超过C且使构建树形图所用到的边中流量的最小值最大思路:构建树形图这个简单,套模板即可,怎么使流量的最小值最大化呢?二分枚举流量的值,流量小于枚举值的边弃用,然后构建树形图,如果无法构建树形图或者花费超过了C,那么就向下调整枚

2016-09-27 19:58:06 449

原创 UVA 11183 Teen Girl Squad 最小树形图裸题

题目:http://vjudge.net/problem/UVA-11865题意:以0为根构建一个最小树形图,求最小花费思路:裸题,没什么好说的#include #include #include #include #include #include #include #include using namespace std;const int N = 1010,

2016-09-27 19:49:36 486

原创 HDU 4009 Transfer water 最小树形图

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4009题意:山上有n户人,均给出三维坐标,这n户人要吃水,可以挖井,花费为所处高度 * X,从别人家引水,若水源处不低于当前人家,那么为两户人的曼哈顿距离 * Y,若低于则额外加上一个水泵的费用Z,然后只有给定的家庭之间才能引水,问能使所有人都用到水的最小花费思路:无定根最小树形图。定0为虚拟根,从

2016-09-25 20:34:01 378

原创 HDU 2121 Ice_cream’s world II 不定根最小树形图

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2121题意:给定n个点和m条有向边,边有权值,选择一个点,从这个点可以到达其他所有点且权值最小,若这样的点有多个,选择编号最小的那一个思路:不定根最小树形图,因为没有给定根,所以虚拟一个根,从虚拟根向所有点连虚拟边,权值设为一个可以和其他边区分的数字,设比其他所有边权值和大1。然后求最小树形图,如果

2016-09-25 17:17:15 391

原创 POJ 3164 Command Network 最小树形图模板

题目:http://poj.org/problem?id=3164题意:有n个点,给出这n个点的坐标。然后有m对点,意为可以在两点之间连一条有向边,花费为两点距离。问能不能连一些边使从1出发可以到达其他所有点,若可以求出最小花费思路:最小树形图模板题。首先为除根之外的每点选定一条权值最小的入边,如果这个入边集不存在有向环的话,该图的最小树形图。如果存在有向环的话,将这个有向环缩成一个人工顶

2016-09-25 14:48:29 323

原创 HDU 5381 The sum of gcd 莫队算法

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5381题意:给定一个数组,每次询问给出l和r,求出 思路:看的大牛的代码,心累#include #include #include #include #include #include #define debug() puts("here")using namespace std;

2016-09-23 17:48:27 768

原创 CodeForces 498C Array and Operations 最大流

题目:http://codeforces.com/problemset/problem/498/C题意:给定一个长度为n的数组,有m对(i, j),i + j一定为奇数,意味着可以从数组中拿出第i个数和第j个数,然后除以它们的公约数(大于1),再放回数组中,持续这样操作,问最多可以操作多少次思路:i + j一定为质数,可以二分偶数奇数建图。想要操作最多,那么肯定每次除以他们的质因子,因为数

2016-09-22 16:37:38 520

原创 CodeForces 375D Tree and Queries 莫队算法

题目:http://codeforces.com/problemset/problem/375/D题意:给定一个以1为根的树,树中每个节点有一个颜色,求以某个节点v为根的子树中颜色出现次数大于等于k的颜色有几种思路:dfs序分块,然后莫队乱搞,统计每种颜色的次数,用树状数组维护次数的前缀和,查询大于等于k次的颜色便是sum(n) - sum(k-1)#include #include

2016-09-22 14:34:03 743

原创 HDU 4358 Boring counting 莫队算法

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4358题意:给定一个以1为根的树,树上每个节点都有权值,然后问以某点v为根的子树中有多少个出现次数等于k的权值思路:首先权值要离散化,对于树结构,用dfs序转换成线性结构,即以v为根的子树线性区间为[in[v], out[v]],这样就可以用莫队算法乱搞了#include #include

2016-09-22 10:58:52 805

原创 CodeForces 86D Powerful array 莫队算法

题目:http://codeforces.com/problemset/problem/86/D题意:给定一个数组,每次询问一个区间[l, r],设某个元素i出现的次数为num[i],求区间内元素num[i] ^ 2 * i的和思路:莫队算法简单题,元素范围为[1, 1000000],要离散化一下, 不然会超时。。。#include #include #include #incl

2016-09-20 19:13:25 665 1

原创 CSU 1515 Sequence 莫队算法

题目:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1515题意:给定一个数组,每次询问一个区间,问区间中|a[i] - a[j]| == 1的组合有多少个。思路:莫队算法。每当增加一个元素时就往答案中加上它左右临近元素的个数,减少一个元素就在答案中减去它左右临近元素的个数,思路很简单,但本题中数据范围较大,需要离散化,但是离散化之后|a

2016-09-20 10:33:08 399

原创 HDU 3874 Necklace 莫队算法

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3874题意:给定一个数组,每次询问一个区间[l, r],求区间内所有数字的和,出现多次的数字只加一次思路:莫队算法扫一遍即可,注意会爆int。我数组开小了不少RE而是TLE,蛋疼。。。#include #include #include #include #include #inclu

2016-09-19 14:24:43 773

原创 HDU 4638 Group 莫队算法

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4638题意:给定一个长度为n的数组,数组中元素为1~n,每次询问一个区间[l, r],求这个区间内可以划分成多少个元素连续的序列思路:莫队算法。增加一个元素时,如果它左边和右边的元素都已经存在,那么添加当前元素会把两个连续序列合并为1个,所以计数-1,若是都不存在,说明增加了一个只有一个元素的连续序

2016-09-19 13:47:51 376

原创 CodeForces 220B Little Elephant and Array 莫队算法

题目:http://codeforces.com/problemset/problem/220/B题意:给定一个数组,每次询问一个区间[l, r],问这个区间内元素出现个数等于元素本身的出现了几次思路:莫队算法很容易搞定,因为元素区间较大所以要离散化,离散化之后元素的值就变了,不能用来判断是不是满足元素出现个数等于元素本书,所以再用一个数组保存初始元素#include #includ

2016-09-19 13:19:44 707

原创 POJ 2914 Minimum Cut 全局最小割

题目:http://poj.org/problem?id=2914题意:给定一个无向图,两点之间可以有很多边连接,问至少去掉多少条边可以把图分成两个不相连的子图思路:可以把边数直接看成一条带权边,全局最小割模板题。转自大牛博客:算法基于这样一个定理:对于任意s, t   V ∈ ,全局最小割或者等于原图的s-t 最小割,或者等于将原图进行 Contract(s, t)操作所得的

2016-09-16 16:50:23 2312

原创 HDU 3472 HS BDC 混合图的欧拉路径

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3472题意:给定n个单词,有些单词可以倒置,如果一个单词的尾部和另一个单词的首部一样,则可以把两个单词连在一起,问能不能把n个单词连在一起思路:把每个单词看做一条边,单词的首尾看做两个点,可以得到一个图,于是问题就变成遍历这个图当且仅当经过每条边一次,就是一个欧拉路径问题,可以倒置的单词视为双向边,

2016-09-16 13:28:55 395

原创 POJ 1637 Sightseeing tour 混合图的欧拉回路

题目:http://poj.org/problem?id=1637题意:有n个点和m条边,边分为单向边和双向边两种,问能不能从一点出发且每条边只能走一次遍历整个图再回到起点。思路:混合图的欧拉回路,看的大牛思路,代码倒是很简单。转自牛人博客:  把该图的无向边随便定向,计算每个点的入度和出度。如果有某个点出入度之差为奇数,那么肯定不存在欧拉回路。因为欧拉回路要求每点入度 = 出度,

2016-09-15 17:55:50 382

原创 LightOJ 1350 Aladdin and the Grand Feast 最大流(难)

题目:http://www.lightoj.com/volume_showproblem.php?problem=1350题意:要举办宴会,时长为e,有t个桌子,每个桌子可以坐c个人。每个宾客吃饭的时间为[a, b),要吃f单位的食物,没人每个单位时间只能吃一单位食物。问能不能满足所有宾客的需求。若能,则输出每个单位时间桌子上的宾客,多解任意输出一个思路:常规思路是把宾客和每个时间单位作为

2016-09-15 16:10:11 452

原创 LightOJ 1367 Pizza and Inner Peace 有源汇有上下界的可行流

题目:http://www.lightoj.com/volume_showproblem.php?problem=1367题意:题意很复杂的样子。。。大意就是从1运送一些物品到n,这n个点之间有m条单向边,物品通过每条边时要求数量在一个区间[L, C]内,否则不能通过,问能不能从1运送物品到n,如果能,输出每条边上通过的物品数量,多解的话输出任意一个结果思路:典型的有源汇有上下界的可行流,

2016-09-13 19:41:39 712

原创 LightOJ 1330 Binary Matrix 最大流

题目:http://www.lightoj.com/volume_showproblem.php?problem=1330题意:假定有n * m的矩阵,矩阵中元素只有0和1,现在给定矩阵的每一行的和与每一列的和,复原出这个矩阵,有多个的话输出字典序最小的那个思路:首先判断行和与列和是否相等,不相等的话肯定不可能存在满足条件的矩阵。然后把行和列作为点,从源点向所有行连边,容量为行和,从每一列

2016-09-13 11:08:08 545

原创 LightOJ 1262 Diagonal Sum 最大流

题目:http://www.lightoj.com/volume_showproblem.php?problem=1262题意:有n * m的矩阵,给出所有的斜对角线之和,且所有元素在[1, 100]之间,复原这个矩阵思路:看得zjbztianya聚聚的代码,,,好菜啊。。。#include #include #include #include #include #defin

2016-09-11 23:01:26 741

原创 POJ 2396 Budget 有源汇有上下界的可行流

题目:http://poj.org/problem?id=2396题意:假定有一个n * m的数字矩阵,现在给出矩阵的每一行的和与每一列的和,且给出了一些矩阵中元素需要满足的条件,即某个元素应该在某个范围内,问有没有满足条件的矩阵,若有输出这个矩阵思路:有源汇有上下界的可行流。记录每个元素的最大下界,最小上界,元素就在这个范围内,没被限制的就是无穷大。从源点向每一行连边,容量为每一行的和,

2016-09-11 18:39:52 299

原创 LightOJ 1164 Horrible Queries 线段树区间更新求和

题目:http://www.lightoj.com/volume_showproblem.php?problem=1164题意:给定一个数组初始全为0,有两种操作,一种是把区间[l, r]内的元素全都加上某个值,一种求区间[l, r]元素和思路:经典线段树题目#include #include #include #include #include #include #inc

2016-09-11 11:43:00 499

原创 LightOJ 1111 Best Picnic Ever 简单bfs

题目:http://www.lightoj.com/volume_showproblem.php?problem=1111题意:有n个城市k个人,城市间有m条单向路,现在k个人想到集中到某一个城市,问这样的城市有多少个思路:分别从k个人所在的城市进行一个bfs,记录每个城市被访问的次数,把访问到的城市均加1,最后被访问次数等于k的城市就是满足条件的#include #include

2016-09-11 11:38:35 425

原创 LightOJ 1113 Discover the Web 栈模拟

题目:http://www.lightoj.com/volume_showproblem.php?problem=1113题意:用栈模拟浏览器思路:用两个栈直接模拟即可,水题。。。#include #include #include #include #include #include using namespace std; const int N = 110;in

2016-09-11 11:32:16 639

原创 LightOJ 1138 - Trailing Zeroes (III) 二分

题目:http://www.lightoj.com/volume_showproblem.php?problem=1138题意:找到一个最小的数n,使n!末尾0的个数等于要求的个数,找不到输出impossible思路:因为2 * 5 = 10,可以发现,某个数n阶乘末尾0的个数等于从1到n内所有数字含有因子5的个数,因此二分枚举n,求含有因子5的个数,找到一个最接近题目要求的n,向下减成5

2016-09-11 11:30:19 456

原创 LightOJ 1136 Division by 3 水题

题目:http://www.lightoj.com/volume_showproblem.php?problem=1136题意:有序列1,12,123,...12345678910,1234567891011...,问序列中从第a个到第b个有多少个数能被3整除思路:手算一下可以发现规律:每三个数为一组,每组中第一个数不被3整除,第二三个数可以被整除。于是可以把a向前移动到一组的开端,把b向

2016-09-09 19:24:25 477

原创 LightOJ 1072 Calm Down 几何

题目:http://www.lightoj.com/volume_showproblem.php?problem=1072题意:给一个半径为R的大圆,里面有n个小圆,把这些小圆放置成和大圆均内切且相邻两个小圆相切的形式,问每个小圆的半径是多少思路:首先小圆肯定放置的和大圆内切,二分枚举小圆半径,然后求出大圆圆心到小圆圆心的距离(设为len),那么相邻两小圆的圆心距,两条len边构成一个三角

2016-09-09 18:46:00 549

原创 LightOJ 1003 Drunk 拓扑排序判有向环

题目:http://www.lightoj.com/volume_showproblem.php?problem=1003题意:有很多种饮料,有如下条件:要喝一种饮料前必须喝给定的另外一种饮料。问在给定的条件中能不能喝完所有饮料思路:饮料名是英文字母,首先映射成数字。不能喝完所有的饮料的原因必定是因为两种饮料互为先决条件(不一定是直接的),也就是出现了环,因为有向图,所以用拓扑排序排一下序

2016-09-09 15:52:39 606

原创 LigthOJ 1043 Triangle Partitioning 几何水题

题目:http://www.lightoj.com/volume_showproblem.php?problem=1043题意:给出两个位置有特定关系的相似三角形,大三角形由小三角形加一个梯形构成。现在给出小三角形和梯形的面积之比,求小三角形的其中一边的长度,精确到1e-6思路:二分枚举要求的边长,因为是相似三角形,可以根据比例求出小三角形的其他边长,算出小三角形的面积,进而用大三角形减去

2016-09-09 15:44:28 320

原创 LightOJ 1080 Binary Simulation 线段树区间更新

题目:http://www.lightoj.com/volume_showproblem.php?problem=1080题意:给定一个01串,有两种操作,第一种I l r,把区间[l,r]内的1变0,0变1,第二种 Q i询问位置i的数字思路:明显的线段树区间更新题目,注意当一个位置被更新偶数次,其实保持不变,那么lazy标记可以用异或操作,还有对于每个位置上数字的更新,也可以用异或,更

2016-09-09 15:37:16 355

原创 LightOJ 1035 Intelligent Factorial Factorization 因子分解水题

题目:http://www.lightoj.com/volume_showproblem.php?problem=1023题意:给一个数n,把n!写成因子相乘的形式,* a (b)意味a是n!的因子,b是n!中a的个数思路:数据范围很小,直接暴力分解因子即可#include #include #include #include #include using namespace

2016-09-08 19:04:52 433

原创 LightOJ 1035 Intelligent Factorial Factorization 全排列

题目:http://www.lightoj.com/volume_showproblem.php?problem=1023题意:给出数字n k,输出前n个大写字母的前k个排列思路:为了省事用next_permumation函数写的,改天自己写个全排列#include #include #include #include #include using namespace std

2016-09-08 18:52:50 391

原创 LightOJ 1019 Brush (V) 最短路裸题

题目:http://www.lightoj.com/volume_showproblem.php?problem=1019题意:求从1到n的最短路。。。#include #include #include #include #include using namespace std;const int N = 110, INF = 0x3f3f3f3f;struct edge

2016-09-08 15:59:08 414

原创 LightOJ 1016 Brush (II) 思路

题目:http://www.lightoj.com/volume_showproblem.php?problem=1016题意:有n个点,有一把刷子,宽度为w。用刷子在水平方向上移动,每次可以把长度无限宽度为w的矩形覆盖掉,问需要几次可以覆盖所有的点思路:因为在水平方向移动且长度无限,所以不用管x坐标,求y坐标能被几个长度为w的线段覆盖完即可#include #include #i

2016-09-08 15:40:37 376

原创 LightOJ 1014 Ifter Party 分解因子

题目:http://www.lightoj.com/volume_showproblem.php?problem=1014题意:有C个人和P个食物(不知道C),每人吃Q个食物还剩余L个食物(Q>L),从小到大输出所有Q的取值思路:可以知道总共吃了P - L个食物,如果P - L 总结:最近变的好傻逼啊。。。这么个水题由于粗心wa了几次。。。#include #include #

2016-09-08 11:59:54 684

空空如也

空空如也

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

TA关注的人

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