![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
乐哥不焦虑
这个作者很懒,什么都没留下…
展开
-
HDOJ1022 Train Problem I 栈模拟
#include"stdio.h"#include"string.h"main(){ char in[10],out[10],stack[10],str[2][4]={"out","in"}; int n,i,top,ans[20],j,rear,flag,k; while(scanf("%d %s %s",&n,in,out)!=EOF) {原创 2012-02-28 00:16:58 · 416 阅读 · 0 评论 -
poj 3740 Easy Finding//Dancing Links 或 状态压缩Dp
对Dp还不是很熟悉,偶然看到Discuss上有人说Dp可解,我便试着实现了一下。#include #include #include using namespace std;const int inf = (-1u>>1); int n, m; #define N 16#define M 300int a[N][M]; int fbd[N];bool done[1原创 2012-09-07 11:31:51 · 490 阅读 · 0 评论 -
poj 3076 Sudoku //Dancing Links
#include #include #include using namespace std;const int inf = (-1u>>1); #define m 4#define n 16#define N n*n*n#define M 4*n*nchar s[20][20];struct node{ int r,c; node *L,*R,*U,*D;};nod原创 2012-09-07 11:18:30 · 449 阅读 · 0 评论 -
poj 2750 Potted Flower(线段树#8)
这个题关键是这一段代码struct node{ int l, r; int lmaxs, rmaxs, maxsum; int lmins, rmins, minsum; int max, min; int sum; }Tree[N * 4];分别表示左起连续最大值,右起连续最大值,最大连续值原创 2012-08-16 21:17:44 · 463 阅读 · 0 评论 -
poj 3580 SuperMemo(伸展树splay)
伸展树挺复杂的,而且还有各种版本,这里找到一种教高效率的版本http://wenku.baidu.com/view/b9cc2c75a417866fb84a8ee4.html它的意思是在查找节点x的同时就自顶向下地伸展。我写不出代码,有些地方还暂时没看懂,先留着吧。这个代码是抄网上的,750ms#include #include #include using namespac原创 2012-08-16 20:57:18 · 393 阅读 · 0 评论 -
poj 3667 Hotel(线段树 # 7)
维护一个左起连续空房间的长度ls,右起连续空房间的长度rs,以及一个最大连续空房间数sum。注意更新子节点后,要更新父节点的cov即lazy值1032 ms#include #include #include #define L(t) t << 1 #define R(t) t << 1 | 1 //#define /2 >> 1 //影响时间效率? usi原创 2012-08-16 20:50:18 · 410 阅读 · 0 评论 -
poj 3468 A Simple Problem with Integers(线段树#6 / 树状数组)
线段树,维护一个add域和lazy2672ms也可以用树状数组来做:http://kenby.iteye.com/blog/962159这里给出线段树代码#include #include #include #include using namespace std;#define N 100005 typedef long long ll; struct原创 2012-08-16 20:34:41 · 401 阅读 · 0 评论 -
poj 2892 Tunnel Warfare(线段树#5/树状数组)
维护一个表,能够插入和删除,并且能够对某一点求前驱和后继。方法一:线段树 422ms#include #include #include #include #include #define N 50010using namespace std; stack st; int n, m; int main(){原创 2012-08-16 20:16:08 · 348 阅读 · 0 评论 -
poj 2352 Stars (线段树#4/树状数组)
本质上是维护一个表,每次改变一个元素的值,然后求前i个元素的和。法一:线段树 我本来是想每个叶节点表示从1到该节点位置的元素和,插入一个元素,那么它后面的节点的值都要加一,这便是操作区间。可是我这样是复杂化了,无限WA。 其实就是简单的求和问题,每个节点维护一个sum值就好了。 代码:454ms #include #include using原创 2012-08-16 11:43:42 · 442 阅读 · 0 评论 -
poj 2886 Who Gets the Most Candies?(线段树#3)
因为孩子们总要跳出圈子,所以计算出的要删除的索引应该是相对目前的孩子总数而言的,这里用Delete函数删除并返回删除的那个孩子的初始标号。还有关于一个整数的约数的个数的的问题,这里我采用了打表的方法。1750ms#include #include #include #include using namespace std;#define N 500005 int原创 2012-08-16 11:29:08 · 426 阅读 · 0 评论 -
POJ 2777 Count Color(线段树#1)
第一次了解到线段树的lazy思想422ms#include #include using namespace std;#define N 100010struct node{ int l, r; int col; int lazy;//延迟标记 }Tree[N * 4];///int L, T, O;void b原创 2012-08-16 10:57:43 · 347 阅读 · 0 评论 -
poj 3277 City Horizon(线段树#2----离散化)
需要离散化数据;219ms#include #include #include #include using namespace std;#define N 100010typedef long long ll; struct node{ int l, r; int height; }Tree[N * 5];///原创 2012-08-16 11:16:35 · 387 阅读 · 0 评论 -
POJ 1733 Parity game
黑书上的题,刚开始看不会,找结题报告,网上一大堆用什么异或思想,完全把问题复杂化,纠结了一下午加一个晚上,最后终于找到一种好理解的思想,如果i, j 间的1个数为偶数, 那么1 ~ i - 1, 和 1 ~ j的1的个数的奇偶性是相同的,否则相反,此外如果某个判断的两个端点含有以前未出现的端点,那么这两个端点间的奇偶性是无法断定的。问题退化到了分组的问题,简单的并查集就可以解决。此外还有用ha原创 2012-08-09 20:34:18 · 395 阅读 · 0 评论 -
POJ 1988 Cube Stacking
类似黑书并查集一节“银河战舰”一题,不过觉得黑书叙述起来跳跃性还真是大,当时看得云里雾里的。b[i] 为i之前的方块数(不包括本身),c[i]表示 i 之后的方块(包含本身, 且当i为开头时有效); #include #include #include #include using namespace std;#define N 30009int p[N], c[N],原创 2012-08-09 20:23:35 · 530 阅读 · 0 评论 -
POJ 2236 Wireless Network(并查集)
简单的并查集, 不过真佩服那些几十毫秒AC的。我用了1000ms+ #include #include #include #include using namespace std;#define N 1009struct POINT{ int x, y;}; int p[N];POINT a[N];vector adj[N];bool good[N]原创 2012-08-09 20:38:24 · 479 阅读 · 0 评论 -
POJ 1703 1182 2492 一类并查集题目-(类别偏移量)
转自http://blog.chinaunix.net/space.php?uid=23709303&do=blog&id=2388866poj 1182题意为有三类动物,他们的食物链是环,即 A 吃 B, B 吃 C, C 吃 A。给出一些动物的食物链关系,根据以前的关系,判断当前关系是否正确。因为并查集是一棵森林,我们用一个数组 dist[i] 记录并查集的树中转载 2012-08-09 20:18:32 · 640 阅读 · 0 评论