上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页
摘要: 题意:(这题没图不好说……大家还是自己去看吧) 题解: 首先有一点需要注意,就是题面中a和b数组搞混了…… 像势能分析那样,我们每花费一定金额b[i][j]就相当于得到了a[i][j]的势能,这样我们建图,图中每一个点均由花费(边权)、横纵坐标、势能四个量决定,显然转移的时候有: 势能==0:向下一 阅读全文
posted @ 2017-02-27 22:44 WDZRMPCBIT 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题意:给定限制条件(a,b)表示a必须在b之前,求所有合法序列中,小的数尽量在前面的方案 题解:首先我们根据限制条件建反向图,然后在反向图上求字典序最小的拓扑序(队列改为堆),逆序输出即可。 #include <queue> #include <functional> #include <cstdi 阅读全文
posted @ 2017-02-27 22:42 WDZRMPCBIT 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题意:给定两种限制:1、编号为i的航班必须在ki+1之前起飞 2、(a,b)表示a必须在b之前起飞。求:1、一个合法起飞序列 2、每个航班在所有合法起飞顺序中,最早的起飞时间。问题保证有解 题解:首先按照第二个限制条件建图,那么第一问随便跑一个拓扑序就好,关键在第二问,我们枚举每一个飞机,假定该飞机 阅读全文
posted @ 2017-02-27 22:37 WDZRMPCBIT 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题意:给定N个有A C G T组成的字符串,求长度为L的仅由A C G T组成的字符串中有多少个是不含给定的N个字符串的题解: 首先我们把所有的模式串(给定的DNA序列)建Trie,假定我们有一个匹配串,并且在匹配过程到S[i]这个字符时匹配到了Trie上的某个节点t,那么有两种可能: 匹配失败:t 阅读全文
posted @ 2017-02-27 22:28 WDZRMPCBIT 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题意:给定三个操作:1、在当前字符串的末尾添加一个字符c 2、在当前字符串的末尾删除一个字符 3、记录当前字符串并对其标号。再给出N组询问,每组询问需回答第x个字符串在第y个字符串中出现的次数 题解: 首先按照如下规则建Trie,设当前节点为t,第i个字符串的结尾在Trie中的位置为mark[i]: 阅读全文
posted @ 2017-02-27 22:24 WDZRMPCBIT 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题意:给定N个字符串,设S为N个字符串首尾相连组成的字符串,查询每个字符串在S中出现的次数。 题解: 首先我们在构造Trie的时候,将构造过程中经过的节点的cnt全部++,此时cnt中记录该模式串被多少个模式串包含。 如果A为B的子串,B为C的子串,显然A也是C的子串,因此我们从下往上回溯,每回溯到 阅读全文
posted @ 2017-02-27 22:03 WDZRMPCBIT 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个字符串,维护:1、修改某个位置的字符 2、查询从p、q位置开始相同字串的长度 3、在某个位置后面插入一个字符 题解:因为需要支持修改所以很容易想到用平衡树,每个节点维护该节点子树所构成的字串的Hash值,修改和插入不用多说,查询我们二分答案,然后在Splay上查询即可。 #includ 阅读全文
posted @ 2017-02-27 21:58 WDZRMPCBIT 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题意:给定N个字符串,求这N个字符串中有几对字符串有且仅有一位不同 题解:首先双哈希存下来,枚举删除哪一位,枚举每一个字符串删除后的哈希值,对哈希值排序之后看有多少个相同的,每组大小为n的相同字符串集对答案的贡献为$C_n^2$ #include <cstdio> #include <cstring 阅读全文
posted @ 2017-02-27 21:50 WDZRMPCBIT 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 请不要吐槽为什么这么快刷了这么多题……我最近只是在复习以前做过的题,所以把以前的解题报告转移过来QAQ,所以有些图片会有CSDN的水印,毕竟我快要懒死了 这个blog应该长期使用了,欢迎各位神犇莅临指点本蒟蒻。原博客 阅读全文
posted @ 2017-02-27 00:49 WDZRMPCBIT 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个字符串,求最短的循环节使之循环后能构成这个字符串 题解: 根据next的性质,如果长度为L的字符串next[L]=i,则S[i+k-1]==S[i-(L-i+1)+k-1],同时我们不断的拆分下去,直到最小的一部分,这最小的一部分一定是和L-i+1到L相同的,也就是说如果最小的那一部分 阅读全文
posted @ 2017-02-27 00:46 WDZRMPCBIT 阅读(171) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页