数据结构
文章平均质量分 70
nooooteY
这个作者很懒,什么都没留下…
展开
-
单调队列模板
#includestruct Node{ int val,index;}que[100];int main(){ int ans[100]; int N,K,i,head,tail,x; scanf("%d %d",&N,&K); head=tail=0;//tail指向队尾元素的下一个位置 for(i=0;i<N;i++){ scanf("%d",&x); if(原创 2013-03-23 22:19:05 · 966 阅读 · 0 评论 -
POJ 3274 Gold Balanced Lineup
题意:FJ 有N头牛,N最多是10^5 ,每头牛最多有30种特征,一头牛所具有的特征可以用一个数来表示,将这个数化成2进制,第i位上权为1,说明它具有第i种特征,如果有一个区间(牛编号连续),使得这个区间的牛的每种特征之和相等,则这个区间为平衡区间。现在告诉你牛的个数n,特征个数k和每头牛的特征值,让你求最大的平衡区间。分析转自:here:这个题目的转化有点困难,看了别人的报告才明白是怎么原创 2013-08-22 12:07:39 · 722 阅读 · 0 评论 -
HDU 4544 湫湫系列故事——消灭兔子
Problem Description 湫湫减肥 越减越肥! 最近,减肥失败的湫湫为发泄心中郁闷,在玩一个消灭免子的游戏。 游戏规则很简单,用箭杀死免子即可。 箭是一种消耗品,已知有M种不同类型的箭可以选择,并且每种箭都会对兔子造成伤害,对应的伤害值分别为Di(1 假设每种箭只能使用一次,每只免子也只能被射一次,请计算要消灭地图上的所有兔子最少需要原创 2013-08-10 16:14:14 · 738 阅读 · 0 评论 -
POJ 2002 Squares
SquaresTime Limit: 3500MS Memory Limit: 65536KTotal Submissions: 14440 Accepted: 5441DescriptionA square is a 4-sided polygon whose sides have equal length and原创 2013-08-23 18:08:25 · 691 阅读 · 0 评论 -
POJ 2503 Babelfish
DescriptionYou have just moved from Waterloo to a big city. The people here speak an incomprehensible dialect of a foreign language. Fortunately, you have a dictionary to help you understand them.原创 2013-08-23 20:16:30 · 1081 阅读 · 0 评论 -
HDU 1075 What Are You Talking About
题意:给出一些火星文及对应的英文翻译,然后给出一些火星文句子,把它翻译成英文。分析:字典树。对火星单词建立字典树,在单词末尾记录对应的英文。Code:#include #include #include #include #include #include #include #include #include #include #define eps原创 2013-08-25 10:33:20 · 788 阅读 · 0 评论 -
HDU 3460 Ancient Printer
Problem DescriptionThe contest is beginning! While preparing the contest, iSea wanted to print the teams' names separately on a single paper.Unfortunately, what iSea could find was only an ancie原创 2013-08-25 15:47:59 · 762 阅读 · 0 评论 -
数据结构--广义表
Code: #include #include #include #include #include #include #include #include #include //exit() #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define I原创 2013-09-24 19:49:16 · 1257 阅读 · 0 评论 -
POJ 1182 食物链
题目链接:http://poj.org/problem?id=1182转自:http://blog.csdn.net/hzyhouzhiyuan/article/details/6272253输入:动物个数n以及k句话,接着输入k行,每一行形式为:d x y, 在输入时可以先判断题目所说的条件2和3,即: 1>若(x>n||y>n):即当前的话中x或原创 2013-07-22 14:23:22 · 1069 阅读 · 0 评论 -
ZOJ 3261 Connections in Galaxy War (并查集)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3261题意:N个星球,编号从0到N-1。每个星球有一个战斗力power,且这N个星球之间建有一些通道,可以相互联系,在星球大战中,一些星球的power不够强,要向power最强且能和自己联通的星球求救且在星球大战中会有一些通道被损坏。然后有一些问题:destro原创 2013-07-25 21:18:40 · 1121 阅读 · 0 评论 -
HDU 4286 Data Handler [栈,双端队列]
转自:http://www.haogongju.net/art/1647260这题比较容易想到的做法是splay,但是splay写起来比较麻烦而且每次操作都有LogN的复杂度,双向链表也是可以实现的,但实践起来比较麻烦,尤其是翻转操作。。。 可以发现每次L或者R都是移动一位的,我们可以用更简单的数据结构来实现,用两个栈分别存L左边和R右边的数据,L和R中间的数据使用一个双端队原创 2013-08-02 14:12:44 · 936 阅读 · 0 评论 -
POJ 1703 Find them, Catch them
题目链接:http://poj.org/problem?id=1703题意:有N个人,分别属于两个帮派。以两种形式给你M个信息①A a b 问a和b是否属于同一个帮派 ②D a b 告诉你a和b属于不同的帮派。(题中”每个帮派至少有一个人“这句话可无视,因为根据题目的输入形式,再考虑这句话的话这题实际上是无法做的)分析:集合问题,并查集经典。这里主要是解决集合的合并问题。因为每次给出的原创 2013-07-22 15:55:55 · 807 阅读 · 0 评论 -
POJ 3250 Bad Hair Day
链接:http://poj.org/problem?id=3250题意:N头牛面向右排成一排,每头牛可以看到它前面的比它身高严格矮的牛。给出每头牛的身高,求出所有牛能看到的牛的总数。分析:单调队列。牛i能看到的牛的数量是j-i-1(设j>i,且牛j是第一个身高大于或等于牛i的牛)。所以每当入队一头牛,就计算它后面比它矮的牛能看到的牛的数量,并将该牛T掉(因为它能看到的牛的数量已经计算出来了原创 2013-03-25 21:03:14 · 809 阅读 · 0 评论 -
HDU 3415 Max Sum of Max-K-sub-sequence
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3415题意:一个共有N个整数的环形串,计算最多有K个整数的连续子串的和。分析:单调队列。用sum[i]存储前i个整数的和,则i+1到j之间的整数和就是:sum[j]-sum[i]。对于环形情况的处理,只要在整数串最后补上前K个数就可以对其进行线性串的处理。单调队列的队首存放当前K+1个SUM值的最小原创 2013-03-26 12:39:46 · 694 阅读 · 0 评论 -
最短路专题
HDU 2544 最短路 http://acm.hdu.edu.cn/showproblem.php?pid=2544题意:计算从1到n的最短时间。最短路模板题。。。 Source Code:(Dijkstra):#include#include#includeusing namespace std;const int inf=0x3f3f3f3f;const原创 2013-04-23 20:04:09 · 863 阅读 · 0 评论 -
输入输出加速外挂
输入:void scan_d(int &num){ char in; bool neg=false; while(((in=getchar()) > '9' || in<'0') && in!='-') ; if(in=='-'){ neg=true; while((in=getchar()) >'9' || in<'0');原创 2013-03-22 23:02:58 · 1175 阅读 · 0 评论 -
HDU 1317 POJ 1932 XYZZY
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1317题意:有N个房间,每个房间有一定的能量,当到达该房间,人的能量就是该房间的能量+原有的能量(房间的能量范围-100到100)。某些房间之间有单向的通道,问能否从房间1到房间N且中间过程中人的能量保持大于0。分析:最长路+正环1.首先可以发现,只要知道到第n个房间时最大可以获得多少能量值原创 2013-04-27 20:34:31 · 925 阅读 · 0 评论 -
POJ 1679 The Unique MST 次小生成树
题意:求次小生成树,如果存在次小生成树则输出“Not Unique!”,否则输出最小生成树的值。分析:次小生成树,可以用prim求出最小生成树,再枚举删除最小生成树中的每条边求最小生成树。也可用Kruskal做。这里要注意几种特殊情况1.图不联通2.不存在次小生成树3.有重边。次小生成树学习见这里:http://www.cppblog.com/MatoNo1/archive/2011/05原创 2013-05-17 09:03:44 · 741 阅读 · 0 评论 -
HDU 1394 Minimum Inversion Number
题意:给出N个整数(0~n-1),问经过循环移位得到的n个序列中最小的逆序对数。分析:归并排序,线段树,树状数组均可解之。 Source Code(线段树):#include#includeusing namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1const int maxn=5005;i原创 2013-05-21 10:37:50 · 675 阅读 · 0 评论 -
HDU 3635 Dragon Balls
题意:N个龙珠(编号1-N)被放在编号对应的N个城市。给出两种操作:T A B :把A龙珠所在城市的所有龙珠转移到B龙珠所在的城市。Q A:问A龙珠所在的城市编号X,城市X所拥有的龙珠数量Y和A龙珠被转移的次数。分析:并查集。用三个数组分别记录龙珠所在的城市(father[]),龙珠被转移的次数(cnt[]),某个城市的龙珠数量(num[])。这里的father[x],num[x]原创 2013-07-21 10:29:07 · 798 阅读 · 0 评论 -
根据二叉树的前序遍历序列和中序遍历序列求二叉树的后序遍历序列
手工模拟过程是:1.由原创 2014-10-25 10:35:33 · 2417 阅读 · 0 评论