--------算法和数据结构--------
文章平均质量分 71
愤怒的北方酱
这个作者很懒,什么都没留下…
展开
-
poj2492解题报告
题目大意:给出N条虫子,然后a和b啪啪啪,给出M对a和b啪啪啪的关系,然后问有没有同性恋的虫子~~解题思路:并查集,按秩合并,rank[i]表示i和他的父亲节点是不是同性,在查找和合并的时候秩需要改变,改变方式具体看代码,这个杭电里我做过的一道题有点像.#include#include#include#includeusing namespace std;const int ma原创 2015-07-21 16:29:09 · 392 阅读 · 0 评论 -
hdu2795解题报告
题目大意:有一个h*w的告示牌,再给你n个1*wi的告示,这些告示优先贴上边,其次是靠左。问每个告示所在在高度,如果不能放,则输出-1。解题思路:线段树,以高度作为区间,每个结点存放此区间最大的容量即宽度,优先访问左子树。#include#include#include#includeusing namespace std;const int maxn=200000;int h原创 2015-09-23 10:58:02 · 347 阅读 · 0 评论 -
hdu1556解题报告
题目大意:N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a 解题思路:线段树,直接弄即可#include#include#include#includeusing namespace std;const int maxn=100000+1000;int n,sumv[maxn*4+1000],addv[maxn*4+1000];int原创 2015-09-22 19:01:02 · 348 阅读 · 0 评论 -
hdu1251解题报告
题目大意:给一个单词表,再给一个前缀表,问每个前缀在单词表中出现的次数?解题思路:前缀树,Trie,字典树,每个结点记录插入单词时经过这个结点的次数。注意点:没说单词的最长的长度,使用静态结构的话开5000005个结点应该够,动态结构则可以忽略这个问题。ac代码如下:#include#include#include#includeusing namespace std;原创 2015-10-19 22:12:09 · 493 阅读 · 0 评论 -
hdu5441&15年长春网赛1005
题目大意:有一n个点,m条边的带边权的图,然后给出q个问题,每个问题会给一个边权的量,在图中,超出这个边权,就算不连通,问在判断不连通之后,图中还有多少对连通的点?解题思路:并查集,此时每个结点的秩为它的子节点的数目~~注意点:1.让边以边权从小到大排序,然问题按照提供的边权的排序。(这两个优化很重要,不用每次都去重新扫)2.两个连通块合并之后,其大小是2*rank_num[u]*原创 2015-09-14 18:30:09 · 633 阅读 · 0 评论 -
poj2051解题报告(优先队列)
题目大意:模拟一个任务管理器队列,优先出来时间小的的,若时间相同,其次是优先级高的。解题思路:优先队列,重载操作符即可。代码:#include#include#include#include#includeusing namespace std;struct task{ int Q_num; int period; int原创 2015-08-07 11:56:16 · 730 阅读 · 0 评论 -
codeforces#314C&567C Geometric Progression
题目大意:有一个长度为n的序列,让你从这之中找到长度为3(三个数)且能成公比为k的序列,问一共有多少组这样的序列。解题思路:map即可搞定注意点:公比为k的意思是除了这三个数之间有k倍的关系,但我没理解到他们本身也必须是k的倍数这一点~~还有a【i】*k的时候会溢出,一定要打个long long符号才行;#include#include#include#include#in原创 2015-08-07 11:27:52 · 519 阅读 · 0 评论 -
UVa11991(map+vector)
题目大意:让你在一个长度为n的序列中,快速找出第b个a的数组下标(比如序列:1 1 2 2,第一个2的下标是2)截图思路:利用map数组和vector,造张“表”出来代码:#include#include#include#include#include#includeusing namespace std;map >table;int n,m,a,b;int mai原创 2015-08-07 11:50:50 · 401 阅读 · 0 评论 -
codeforces#314D&567D One-Dimensional Battle Ships (Set)
题目大意:http://codeforces.com/problemset/problem/567/D点击打开链接有一个n*1的矩形格子,alice可以往里边放k个(1*a)的船,每个船不能交叉和接触比如【1,2】【3,4】不行~~然后bob炮轰格子,问几步可以保证他一定打到船解题思路:二分+Set,每打一次,更新下去区间,看能放下的船数是否为减少~~#include#inclu原创 2015-08-07 11:46:12 · 597 阅读 · 0 评论 -
hdu1232解题报告
题目大意:给你一个图,让你判断有几个连通分量需要几条边?解题思路:使用并查集,把所有的分量都放在分别的集合中(树状数组中)最后在遍历一边所欲结点,看有几个根节点即可~~代码:#include#include#includeusing namespace std;const int maxn=1000+10;int p[maxn],n,m;int Find(int原创 2015-06-22 00:14:24 · 502 阅读 · 0 评论 -
hdu5323&15年多校集训(3)h题
题意:给你一个区间【L,R】如果他是一棵线段树的某一节点,那么求满足输入区间的最小整数n,没有的话输出-1思路:四种情况,直接爆搜即可考虑给定区间分别为左子树结点,右子树结点,一共四种情况。在加上可行性的剪枝即可。#include#include#include#includeusing namespace std;typedef long long LL;const LL原创 2015-07-31 00:32:24 · 392 阅读 · 0 评论 -
hdu1272解题报告
题目大意:小希的迷宫Problem Description上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间原创 2015-06-22 00:05:20 · 301 阅读 · 0 评论 -
poj3522解题报告
题目大意:题意:给点一个无向图,求一个生成树使树中最大边与最小边的差的最小。解题思路;首先按照边权排一次序,然后依次枚举最小的边权,利用kruskal算法生成无根树!!!(利用并查集维护集合关系)#include#include#include#include#includeusing namespace std;const int maxn=1e4;const原创 2015-06-25 00:17:16 · 651 阅读 · 0 评论 -
poj1703解题报告
题目大意:题目大意:在这个城市里有两个黑帮团伙,现在给出N个人,问任意两个人他们是否在同一个团伙输入D x y代表x于y不在一个团伙里输入A x y要输出x与y是否在同一团伙或者不确定他们在同一个团伙里解题思路:这道题真没做出来,参考了别人的思路,感觉别人的思路真实绝妙,最近期末,也没什么时间去想,去思考,真心可惜了,它的思路是除了表示并查集的数组p[x],还有个rank[x]表示原创 2015-06-23 23:40:59 · 571 阅读 · 0 评论 -
hdu1213解题报告
题目大意:太水了,都有点记不清了;解题思路:并查集来做,认识的人都find一发即可,最后在遍历一遍,看有几个p[i]==i的,就有几张桌子#include#include#include#includeusing namespace std;const int maxn=1000+10;int p[maxn];void MakeSet(int n){ for原创 2015-06-27 09:39:17 · 477 阅读 · 0 评论 -
hdu1116解题报告
(转,代码是我自己的,最近考试,感冒发烧,实在写不动了)题意:判断n个单词是否可以相连成一条链或一个环,两个单词可以相连的条件是 前一个单词的最后一个字母和后一个单词的第一个字母一样。分析:有向图的欧拉回路判断 链: 头 入度==出度-1 ;中间 入度==出度 ; 尾 入度==出度+1; 注:欧拉回路的定义:图G的一个回路,若它恰通过G中每条边一次,则称该回路为欧拉(E原创 2015-06-28 18:07:40 · 480 阅读 · 0 评论 -
hdu1166解题报告
题目大意:C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局要研究敌人究竟演原创 2015-09-22 18:58:20 · 656 阅读 · 0 评论