随笔分类 -  基础数据结构

Sequence
摘要:"POJ" 多组数据,给定$m$个长度为$n$的序列,从每个序列中取出一个数相加可以得到一个和,输出前n小的和.$n2$时,重复做$m 1$次上述操作即可.具体来说,每次得到的答案当做一个新的$a$序列,然后与读入的$b$序列进行上述操作. cpp include include include i 阅读全文

posted @ 2019-10-18 09:44 PPXppx 阅读(235) 评论(0) 推荐(0)

Black Box
摘要:"POJ" 题意:长度为n的序列A,长度为m的查询序列B,对于每个查询B[i],求出序列A中前B[i]个数的第i小的值.$(N,M include include include include include include using namespace std; inline int read 阅读全文

posted @ 2019-07-26 17:31 PPXppx 阅读(140) 评论(0) 推荐(0)

Necklace
摘要:分析:对于第一问判断只需要倍长其中一个字符串(相当于要断环为链),然后哈希两个字符串,最后$O(N)$扫描是否有一段长度为n的字符串的哈希值相同即可.对于第二问需要用到“字符串的最小表示法”,临时在 "博客" 上学了一下,这个算法也是$O(N)$的. cpp // include include i 阅读全文

posted @ 2019-07-26 07:44 PPXppx 阅读(254) 评论(0) 推荐(0)

[CTSC2007]数据备份Backup/[国家集训队]种树
摘要:"BZOJ" "洛咕" 分析:差分数组A求出相邻两个的差,则问题转化为了:在差分数组A中找k个数,满足k个数之和最小且互不相邻.建立一个小根堆把N 1个点都丢进去。有性质:要么选最小值,要么选最小值旁边两个值。因此先选出最小值的点A[i],用权值为A[i 1]+A[i+1] A[i]的一个点代替掉原 阅读全文

posted @ 2019-07-25 15:24 PPXppx 阅读(151) 评论(0) 推荐(0)

Supermarket
摘要:"POJ" 题意:有一个商店有许多批货,每一批货又有N(0 include include include include include include using namespace std; inline int read(){ int x=0,o=1;char ch=getchar(); w 阅读全文

posted @ 2019-07-25 11:50 PPXppx 阅读(336) 评论(0) 推荐(0)

Team Queue
摘要:"POJ" 题意:有t个团队的人正在排一个长队。每次新来一个人时,如果他有队友在排队,那么新人会插队到最后一个队友的身后。如果没有任何一个队友排队,则他会被排到长队的队尾。 输入每个团队中所有队员的编号,要求支持如下3中指令: ENQUEUE x:编号为x的人进入长队 DEQUEUE:长队的队首出队 阅读全文

posted @ 2019-07-24 16:14 PPXppx 阅读(115) 评论(0) 推荐(0)