![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Acm--数据结构
zzti_xiaowei
xxx
展开
-
幼儿园的战争
题目描述幼儿园的孩子们正在做游戏,每个人都有自己的帮派,帮派之间打架,然后赢者吞并弱者扩大自己的势力。最开始每个孩子的帮派中只有自己,然后接下来有会有两个人打架,这两个人会集结自己所属的势力开始打架,打赢的一方就会吞并输的一方,当然如果x,y是一个势力就不会打起来。有些聪明的小朋友会将自己的糖分给其他小朋友引诱他离开所属势力加入到自己势力。又有一些小朋友会对现在的势力不满,然后反叛出去自立门户。作...原创 2017-12-19 16:47:08 · 400 阅读 · 0 评论 -
关于线段树开4倍空间的探讨
声明:线段树维护的区间范围也是[1,x],根节点从1开始(1,2,3…)建树过程参数记录当前节点rt,同时记录当前节点所对应的区间[l,r],而不是用一个结构体维护。#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1void build(int l,int r,int rt){ //建树过程(参见网上大部分线段...原创 2018-11-23 15:38:51 · 1658 阅读 · 2 评论 -
线段树题记
hdu-1166 敌兵布阵#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;cstdio&amp;amp;gt;#include&amp;amp;lt;cstring&amp;amp;gt;#include&amp;amp;lt;algorithm&amp;amp;gt;using names原创 2018-11-07 10:59:31 · 202 阅读 · 0 评论 -
QS Network
[题目链接]思路:你到底懂不懂最小生成树算法,两点距离到底为多少?为d[i][j]+c[i]+c[j],一定要先加上再用模板啊!代码:// Prim算法#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;t...原创 2018-09-30 20:53:54 · 195 阅读 · 0 评论 -
Aoj- 2224 Save your cat
[题目链接]思路:最大生成树,最大生成树,最大生成树…真是没想出来啊~ 代码:#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>using namespace std;const int Max_n...原创 2018-08-28 16:10:08 · 202 阅读 · 0 评论 -
poj-2155 Matrix
[题目链接]思路:很详细的 二维数组讲解+本题 题解,orz~代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long ll;const int Max_n=1e3...原创 2018-07-15 15:06:24 · 250 阅读 · 0 评论 -
彻底弄懂二维树状数组
当要频繁的对数组元素进行修改,同时又要频繁的查询数组内任一区间元素之和的时候,可以考虑使用树状数组. 通常对一维数组最直接的算法可以在O(1)时间内完成一次修改,但是需要O(n)时间来进行一次查询.而树状数组的修改和查询均可在O(log(n))的时间内完成. 一、回顾一维树状数组 假设一维数组为Ai,则与它对应的树状数组Ci是这样定义的: C1 = A1 C2 = A1 + A2...转载 2018-07-15 14:57:28 · 8924 阅读 · 1 评论 -
poj-3928 Ping pong
[题目链接]思路:很简单的一道树状数组题,和逆序数对很像。但是他喵Each player has a unique skill rank.这个没看到,一直在考虑相同等级的情况,凉凉~~ 思路emmm….还是不说了,还是先做逆序对这道题,然后看这题,感觉你就会秒懂,相信自己完全ojbk。代码:#include&lt;iostream&gt;#include&lt;cstdio&g...原创 2018-07-14 16:24:15 · 139 阅读 · 0 评论 -
Hdu-2353 Stars
[题目链接]思路:刚看树状数组,以为这题需要二维维护,当看到评论区大佬提醒y坐标可以不要的!就明白啦~代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int Max_n=1e5+1...原创 2018-07-04 15:53:56 · 172 阅读 · 0 评论 -
51nod-1019 逆序数
[题目链接] 很经典的一道题,解法也很多,学会其它解法不断补充ing~思路1:归并排序是将数列s[l,r]分成两半s[l,mid]和a[mid+1,r]分别进行归并排序,然后再将这两半合并起来。在合并的过程中(设l&amp;amp;lt;=i&amp;amp;lt;=mid,mid+1&amp;amp;lt;=j&amp;amp;lt;=r),当s[i]&amp;amp;lt;=s[j]时,并不产生逆序数;当s[i原创 2018-06-28 11:37:06 · 165 阅读 · 0 评论 -
Hdu-1556 Color the ball
[题目链接]思路1:对区间首尾做标记。 如涂区间[a,b],令c[a]=1,c[b+1]=-1,然后对c数组一遍遍历即可。代码:#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace std;ty原创 2018-06-29 17:07:50 · 134 阅读 · 0 评论 -
Poj-1703 Find them, Catch them
[题目链接] 相同思路进阶题目:食物链解法1:对每个顶点x,用x表示属于A帮派,x+n表示属于B帮派(数组大小2*n)。当x和y属于不同帮派时,则x+n和y属于同一个帮派,x和y+n属于同一个帮派。三种情况: 1. 当x和y在同一集合时(即x和y所在集合根节点相同),则x和y在同一帮派。 2. 当x和y+n或x+n和y在同一集合时,则x和y不在同一帮派。 3. 其他情况(...原创 2018-04-12 17:33:23 · 344 阅读 · 0 评论 -
Poj-1182 食物链
[题目链接]感悟:很经典的一道并查集题,做两遍了,收获满满的~~(强烈建议只看一点点思路) 思路:对每个节点维护其到根节点的偏移量(偏移量代表种类关系)。par[x]表示x的根节点,rel[x]表示x与根节点的偏移量。rel[x]=0表示x与根节点为同类,1表示根节点吃x,2代表x吃根节点。同类/不同类时,如何判断关系是否矛盾以及如何合并两顶点所在的集合(真的值得自己想好几...原创 2018-04-11 21:19:38 · 339 阅读 · 0 评论 -
Hdu-1213 How Many Tables
[题目链接]思路::中规中矩的并查集模板题,没有丝毫变形哦~ 代码::#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int Max_n=1e3+10;int t,n,m;int...原创 2018-04-11 12:51:37 · 108 阅读 · 0 评论 -
Poj-1611 The Suspects
[题目描述]题意: 有一个学校,有N个学生,编号为0-N-1,现在0号学生感染了非典,凡是和0在一个社团的人就会感染,并且这些人如果还参加了别的社团,他所在的社团照样全部感染,求感染的人数。感想:一道简单的并查集,活活了好些天,还是~,看着讨论区大佬们的各种1A,崩溃ing~ 这题就不写题解了,哭哭~代码:#include<iostream>#include...原创 2018-04-11 11:53:34 · 148 阅读 · 0 评论 -
Poj-2236 Wireless Network
[题目链接]题意: 现在有n台损坏的电脑,目前可以一个一个地进行维修。由于硬件的限制,修好了的电脑想要直接相连,那么它们之间的距离必须≤dist。但是如果A与C连接,C与B又连接,那么A与B就间接连接。在修电脑的过程中,工作者随时可以进行两种操作,修电脑或者是测试两台电脑是否已经连接。你的任务是对于每一次测试,如果成功连接,输出SUCCESS,否则输出FAIL。思路: 还不错的并查集题,先...原创 2018-04-10 14:42:10 · 118 阅读 · 0 评论 -
Hdu-3038 How Many Answers Are Wrong
[题目链接]题解: 没看出来要用并查集做,很不错的一道题~ 区间[Ai,Bi]可以理解为前缀和相减sum(Bi)-sum(Ai-1),用每个顶点记录前缀和。如一条数据Ai Bi Ci,如果Ai,Bi不在同一个集合,则合并Ai,Bi所在集合并更新关系rel。关系rel[a]记录的是顶点a到根节点x的区间和。代码:#include<iostream>#include&l...原创 2018-04-14 13:50:27 · 223 阅读 · 0 评论 -
哈夫曼树及哈夫曼编码的实现
所有数据结构实验中唯一一个值得我记下的,但是感觉自己被指针的指针玩疯了,特此留念~~#include<iostream>#include<cstring>#include<cstdio>using namespace std;const int inf=0x3f3f3f3f;char str[1100]; //电文char code[1100]; /...原创 2017-12-28 19:33:07 · 437 阅读 · 0 评论 -
Bzoj-2023 小Z的袜子(hose)
莫队算法经典题莫队算法学了三天多,才总算看懂,网上的资料真是太少了,论文也找不到,网上大佬们都说1h就看懂了,超简单的,简直泪奔~~前车之鉴,附上辛辛苦苦找到的优秀博客!!!http://foreseeable97.logdown.com/posts/158522-233333https://blog.csdn.net/hnshhslsh/article/details/50582926#...原创 2018-12-03 16:07:15 · 499 阅读 · 0 评论