摘要:
1、hdu 1166 敌兵布阵(★☆☆☆☆) 题意:有n个营地,每个营地初始各有若干人,每次询问[l,r]营地的总人数,或者对某个营地加上或减去若干人数。 思路:线段树单点更新,区间查询 1 //线段树单点更新,区间查询 2 #include<iostream> 3 using namespace 阅读全文
摘要:
1、LA 4329 Ping pong 题意:若干个乒乓球选手住在一条街上,每两个人可以选择一个居住在他们中间的且乒乓球段位在他们中间的人作为裁判,来进行一场比赛。问可以进行多少种不同的比赛。 思路:找出a[i]左侧比a[i]段位低的人数,a[i]右侧比a[i]段位第的人数,则以a[i]作为裁判的比 阅读全文
摘要:
1、LA 3977 Summits 题意:如果一点是山顶的话,其走高度大于h-d的地形不能到达另外一个比其高的地方。问有多少个d型山顶。 思路:按照高度从高到低BFS: ①如果该点高度大于h-d并且没有访问过,则压入。 ②如果该点大于h-d并且有更高的地形能够BFS到达这里,则说明此次BFS到的所有 阅读全文
摘要:
1、LA 5908/UVA1517 Tracking RFIDs 题意:给出s个传感器的位置,以及其感应范围。如果某个方向上有墙,则该方向上感应距离减1.现在有w个墙,给出p个物品的位置,问其能被几个传感器探测到。 思路:传感器用set保存。之后传感器和物品之间是否有墙用线段是否相交来判断。 1 # 阅读全文
摘要:
1、uva 11988 Broken Keyboard 题意:给出键盘打字的顺序,遇到[到句首,遇到]倒句末。求最后输出的句子。 思路: ①单向链表数组模拟 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using nam 阅读全文
摘要:
1、poj 2236 Wireless Network 题意:一张图上分布着n台坏了的电脑,并知道它们的坐标。两台修好的电脑如果距离<=d就可以联网,也可以通过其他修好的电脑间接相连。给出操作“O x”表示修好x,给出操作“S x y”,请你判断x和y在此时有没有连接上。 思路:简单并查集。 1 # 阅读全文
摘要:
1、UVALive 3135 Argus 题意:有若干注册信息,每个id每经过一个周期返回一个id信息。求前k个返回信息的id。如果两个信息返回的时间点相同,则小的那个先返回。 思路:优先队列简单应用。 1 #include<iostream> 2 #include<queue> 3 #includ 阅读全文
摘要:
————————————转自:http://www.cnblogs.com/Ash-ly/p/5536796.html 定义: 设G = (V, E)是一个有向图,如果具有下述性质 (1)G中不包含有向环; (2)存在一个顶点vi,它不是任何弧的终点,而V的其它顶点都恰好是唯一的一条弧的终点.则称 阅读全文
摘要:
1、POJ 1251 Jungle Roads 题意:给出个村庄之间的道路及其维修费;从中选取一些路使道路的维修费最小且保证各村庄之间道路畅通。 思路:最小生成树模板。 ①Kruskal 1 #include<iostream> 2 #include<vector> 3 #include<algor 阅读全文
摘要:
1、POJ 3974 Palindrome 题意:求一个长字符串的最长回文子串。 思路:Manacher模板。 1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 const int maxn = 1000010; 阅读全文