
数据结构
文章平均质量分 63
Hacker_vision
一件事,你可以不去做,要做,就要全力以赴,做到最完美。
展开
-
【并查集】LA3644 X-Plosives
【并查集】LA3644 X-Plosivesn个元素的集合应用问题——并查集。题目大意装车,把一些两个元素组成的化合物按输入次序往车上装,如果会发生爆炸(存在k个简单化合物,正好包含k种元素),记录,输出不能装车的化合物总数。 说一下思路怎样理解“存在k个简单化合物,正好包含k种元素”?每个化合物在顶点处分摊到1/2个元素,成环!根节点相同!问题都是等价的!想一想并查集的查找和合并操作,在合并过程原创 2015-08-25 12:47:41 · 957 阅读 · 0 评论 -
【Dancing Links舞蹈链】poj 3076 Sudoku
Source : poj 3076 Sudoku http://poj.org/problem?id=3076 Problem Description A Sudoku grid is a 16x16 grid of cells grouped in sixteen 4x4 squares, where some cells are filled with letters from A to原创 2015-09-03 19:30:16 · 963 阅读 · 0 评论 -
【dfs预处理+DLX】hdu 4069 Squiggly Sudoku
Source :hdu 4069 Squiggly Sudoku http://acm.hdu.edu.cn/showproblem.php?pid=4069 Problem Description Today we play a squiggly sudoku, The objective is to fill a 9*9 grid with digits so that each colu原创 2015-09-05 16:06:20 · 549 阅读 · 0 评论 -
【模拟+数据结构】UVA 11995 I Can Guess the Data Structure!
【模拟+数据结构】UVA 11995 I Can Guess the Data Structure!题目大意给出一系列操作,包含操作数和操作码,判断符合这一系列操作返回值的数据结构类型(栈、队列、优先队列) –说一下思路拿这三种数据结构去模拟一下就可以了 【注意】栈顶 stack.top() 队首 queue.front() 堆顶 prior原创 2015-08-21 12:03:08 · 1005 阅读 · 0 评论 -
【dfs】hdu 1175 连连看
【dfs】hdu 1175 连连看题目链接:hdu 1175 连连看题目大意连连看,问能否成功?题意很简单,就是我们平时玩的连连看的游戏规则,貌似dfs和bfs都能做,笔者就做了个dfs(好想),超时了好几次,原因是dfs(int d)与终点的d重载矛盾了,所以还是要小心。说一下思路神器的剪枝:if(t==2&&x!=c&&y!=d) return;这一部剪枝妙笔回春,9000+MS优化到100+原创 2015-07-27 12:12:14 · 739 阅读 · 0 评论 -
【前缀和】hdu 5480 Conturbatio
hdu 5480 Conturbatiohttp://acm.hdu.edu.cn/showproblem.php?pid=5480问题描述:前缀和 前缀和很好理解:s[1] = a[0]s[2] = a[0] + a[1]s[3] = a[0] + a[1] + a[2]s[n] = a[0] + a[1] + a[2] + a[3] +…… + a[n-1]若求任一序列和a[i]+……+a[j]原创 2015-09-29 21:11:54 · 672 阅读 · 0 评论 -
【二维RMQ】hdu 2888 Check Corners
http://acm.hdu.edu.cn/showproblem.php?pid=2888二维RMQ,支持静态查询区间最值(最小或最大)/* hdu 2888 二维RMQ 二维RMQ,支持静态查询,预处理O(n*m*lgn*lgm) 下标从1开始 注意与二维线段树的区别(支持动态更新)*/#include#include#include#include#inc原创 2015-10-18 14:05:58 · 388 阅读 · 0 评论 -
【RMQ问题】poj 3368 Frequent values
poj 3368 Frequent valueshttp://poj.org/problem?id=3368问题描述:给你一个不减的序列,查询区间[L,R]重复次数最多的数的频度思路: RMQ+游标编码RMQ算法解决的是区间最小(大)值的查询问题,预处理O(nlogn),查询时间O(1),总复杂度O(nlogn+q),q为查询总次数这道题参考大白书吧,主要是游标编码写的蛋疼,其实还是很好理解,原创 2015-10-05 22:17:52 · 379 阅读 · 0 评论 -
【二维线段树】hdu 4819 Mosaic
http://acm.hdu.edu.cn/showproblem.php?pid=4819二维线段树,动态查询(与二维RMQ互补)/* hdu 4819 二维线段树 支持动态查询、修改,与二维RMQ互补(只支持静态查询) 套了个模板*/#include#include#include#include#include#include#include#i原创 2015-10-21 21:16:05 · 464 阅读 · 0 评论 -
【RMQ问题】 poj 3264 Balanced Lineup
http://poj.org/problem?id=3264裸的RMQ/* poj 3264 RMQ问题 题意: 一群牛告诉你身高,查询某个区间身高差的最大值 思路: 比较水,用的ST算法*/#include#include#include#include#include#include#include#include#in原创 2015-10-08 18:09:02 · 365 阅读 · 0 评论 -
【优先队列之多路合并】UVA - 11997 K Smallest Sums
Source : UVA - 11997 K Smallest Sums http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18702题意有k个整数数组,各包含k个元素,从每个数组中选取一个元素加起来,可以得到k^k个和,求这些和中最小的k个值。 示例Sample Input 3 1 8 5 9 2 5 10 7 6原创 2015-08-28 15:41:41 · 1013 阅读 · 0 评论 -
【优先队列之多路归并】UVALive 3135 Argus
UVALive 3135 Argus http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18684题意 编写一个系统执行一系列Register命令:Register Q_num Period,每个命令执行周期是Period,执行事件Q_num;如果事件同时发生,优先执行Q_num小的。 示例Sample Input Reg原创 2015-08-28 11:00:46 · 1041 阅读 · 0 评论 -
【RMQ+二分】poj 2637 WorstWeather Ever
http://poj.org/problem?id=2637二分查找到对应区间,然后根据逻辑判断进行RMQ求取区间最值判断输出,题意搞懂是关键。/* poj 2637 RMQ + 二分题意: 给你多组year,rainfall 多组查询,Y、X,查询[Y,X]区间是否满足Y是最大降雨量的要求 (1)降雨量X>=Y (2)[Y-1,X-1]降雨量都已知且严格原创 2015-10-10 15:49:53 · 594 阅读 · 0 评论 -
【线段树I:点修改+区间查询】hdu 1394 Minimum Inversion Number
【线段树】hdu 1394 Minimum Inversion Number题目链接:hdu 1394 Minimum Inversion Number题目大意给你N个数的排列,求包括该序列在内的所有循环序列的最小逆序对数(N<5000) 暴力的话O(n^3)直接超时,线段树一开始还真不好想啊!最关键的是弄明白每个节点中的sum代表什么意思:【lc,rc】区间出现的数的个数,因为这道题n个数大小0原创 2015-08-03 21:56:59 · 722 阅读 · 0 评论 -
【树形dp】hdu 2412 Party at Hali-Bula
分析明天在写,先睡觉!#include #include #include #include #include #include #include #include #include #include #include #define eps 1e-9#define pi acos(-1)#define clr(k,v) memset(k,v,sizeof(k));原创 2015-07-21 00:14:19 · 689 阅读 · 0 评论 -
【并查集】hdu 1272 小希的迷宫
【并查集】hdu 1272 小希的迷宫并查集——并查集森林无环且连通题目大意给你连接关系构造一个图,判断图是否无环且满足连通性。 说一下思路①有无环:(a,b)元素a、b根节点是否相同,相同合并边就会成环,不满足题目要求②连通性:记录之前出现的节点,统计最后根节点==自身的节点个数,正好是1才是一片连通森林!★再以后并查集初始化 i < _max,这道题有等号就WA了,不知道为什么??!!!参考代原创 2015-08-25 23:11:01 · 706 阅读 · 0 评论 -
【并查集】hdu 1856 More is better
【并查集】hdu 1856 More is bettern个元素的集合应用问题——并查集。题目大意n个元素,告诉它们的两两连接关系,求单个连通分支所含元素的最大值 说一下思路经典的并查集求的是所含连通分支的个数,这道题求的是并查集森林最大点集数(元素数),思路是维护一个cnt[ ]数组,初始化元素所在集合为自身cnt[ ] = 1;当要合并时,父节点累加孩子节点,cnt[ y ] += cnt [原创 2015-08-25 20:25:43 · 585 阅读 · 0 评论 -
【并查集】UVALive3027 Corporative Network
【并查集】UVALive3027 Corporative Network并查集——维护到根节点距离的d数组题目大意对n个节点操作,加边 or 询问某节点到根节点的距离 说一下思路之前做过一道求连通分支最大元素个数的题目,维护的是一个cnt[ ]数组(在加边的过程中);比较这道题,可以考虑维护到根节点的距离d[ ]数组。思路:记下每个节点到父亲节点的距离为d[i],然后在路径压缩时维护这个d数组;在原创 2015-08-26 10:24:05 · 769 阅读 · 0 评论 -
【并查集题目总结】
【并查集题目总结】问题一:并查集森林的连通分支数(经典,pre[ i ] == i ?)http://acm.hdu.edu.cn/showproblem.php?pid=1232问题二:并查集森林所有连通分支最大元素个数(维持一个cnt[ ]数组)http://acm.hdu.edu.cn/showproblem.php?pid=1856问题三:构造并查集森林过程中计数不能成环的边数(成环 等价于原创 2015-08-25 23:19:59 · 1364 阅读 · 0 评论 -
【map离散化+打表】 UVA11991 Easy Problem from Rujia Liu?
【map离散化+打表】UVA 11995 I Can Guess the Data Structure!map关联容器:有序 + 映射,查找的复杂度O(nlogn)题目大意给你n个数构成的数组,求数v第k次出现的下标值(下标从1开始) –说一下思路这题很显然要打表预处理,关键是怎么打这张表1.首先我们观察到v很大,开一个二维数组data[v][k]肯定存储不了,所以用map离散化(自动有序编号,避原创 2015-08-21 18:28:49 · 1100 阅读 · 0 评论 -
【树形dp】hdu 1011 Starship Troopers
题目链接我的理解:dfs+dp=树形DP【Key】建树+dfs+更新dp[i][j]dp[i][j] : j个士兵进攻房间i可获得的最大概率,final 我们求dp[1][m]水平有限,不明白为什么要建立无向图,有些细节还是不懂#includeusing namespace std;#define clr(k,v) memset(k,v,sizeof(k)原创 2015-07-21 22:12:25 · 600 阅读 · 0 评论 -
【线段树II:区间修改+点查询】hdu 1556 Color the ball
【线段树】hdu 1556 Color the ball题目链接:hdu 1556 Color the ball题目大意给你N个气球,不断刷新指定区间的颜色,刷新N次,最后输出每一个气球的刷新次数。上一篇文章是线段树的点修改、区间查询; 这篇文章是线段树的区间修改、点查询; 说一下思路线段树的区间修改:利用线段树的区间查询,查询到叶节点segTree[root].sum++,而如果对区间进行多原创 2015-07-30 18:52:28 · 619 阅读 · 0 评论 -
【线段树I:母题】hdu 1166 敌兵布阵
【线段树】hdu 1166 敌兵布阵题目链接:hdu 1166 敌兵布阵题目大意C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若原创 2015-07-30 15:25:06 · 955 阅读 · 0 评论 -
【线段树I:点修改+区间查询】hdu 1754 I Hate It
【线段树】hdu 1754 I Hate It题目链接:hdu 1754 I Hate It题目大意N个学生的初始成绩已知,操作m次,每次要么将第i个学生的成绩更新,要么查找区间【x,y】的最大成绩。很显然这是一道线段树,点修改、区间查询,笔者第三道线段树,完全自己敲的,直接AC~(≧▽≦)/~啦啦啦。 如果单纯查找区间最大值,时间复杂度O(N),而线段树O(logN),当查询的次数非常多时,显然原创 2015-07-30 20:43:22 · 740 阅读 · 0 评论 -
【线段树II:区间修改+点查询】hdu 4031 Attack
【线段树II:区间修改+点查询】hdu 4031 Attack题目链接:hdu 4031 Attack题目大意有位置1-n个防御塔,每次敌人会对一个区间进行攻击。防御塔有一个冷却时间t。问某个时间时,某个位置被成功攻击的次数(没有被防御)这是成都网络预选赛的题目。The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest。 被攻击的原创 2015-08-04 13:24:04 · 807 阅读 · 0 评论 -
并查集:hdu 1232 畅通工程
并查集者,并也,查也,统统归于集合也。即其是关于集合的操作——并,查。所以并查集的关键也就是对集合的合并与对元素的查找,查找某一元素属于哪个集合。关键是find()和join()两个函数的书写。find(int x)函数的功能在于查找到元素x的父节点(树根),join()函数的功能在于如果说两个元素的根节点不同(即位于不同的连通域中),就将两个连通域合并(归于一个集合)。 并查集最后要解原创 2014-12-24 14:38:44 · 691 阅读 · 0 评论 -
【结构体排序】hdu 2409 Team Arrangement
【结构体排序】hdu 2409 Team Arrangement题目链接:hdu 2409 Team Arrangement题目大意给出22个球员的各种信息,要求按照给出的阵形选择球员和队长共11人; 选择球员的规则是:同角色的球员按照编号从小到大选择,直到选够此角色的人数; 选择队长的规则是:在所有已经被选择为某角色的球员中,选择服役时间最长的那个球员, 如果服役时间时间相同,就选择编号较大原创 2015-07-29 14:52:19 · 783 阅读 · 0 评论 -
LeetCode2. Add Two Numbers(链表加法)
题目链接:https://leetcode.com/problems/add-two-numbers/You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a si原创 2016-11-25 11:00:17 · 821 阅读 · 0 评论