poi2012专题

P3535 [POI2012] TOU-Tour de Byteotia

[P3535 POI2012] TOU-Tour de Byteotia - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 用并查集进行判环。先将 u ≥ k u \ge k u≥k且 v ≥ k v \ge k v≥k的边进行合并。之后再遍历一遍全部边,若边中点存在小于等于 k k k的,如果两点父结点指向不同不用删除并进行合并,否则需要进行删除。 代码如下: #inclu

P3531 [POI2012]LIT-Letters

求逆序对怎么能少了线段树呢. 建一棵权值线段树,倒着将每个数放入,每放入一个数之前先查询这颗线段树内有多少比它小的数,最后统计起来(注意用long long),废话不多说,直接上代码. #include<bits/stdc++.h>#define rap(i,first,last) for(int i=first;i<=last;++i)#define sing(i,first,last)

POI2012 PRE-Prefixuffix

P3546 [POI2012] PRE-Prefixuffix 题目大意 对于两个字符串 S 1 , S 2 S_1,S_2 S1​,S2​,如果将 S 1 S_1 S1​的一个后缀移动到开头后这个字符串变成了 S 2 S_2 S2​,则称 S 1 , S 2 S_1,S_2 S1​,S2​循环同构。 给定一个长度为 n n n的字符串 S S S,求满足下面条件的最大的 L L L:

P3545 [POI2012] HUR-Warehouse Store

Portal. 反悔贪心。 想满足尽量多的天数,就要让时间尽可能的长。考虑顺次在每一天满足要求,如果有一天不能满足要求了,就查找前面满足的天里有没有要求比它高的,若有可以放弃那一天的选择而选择当前天,这样可以使时间尽可能地延长。 考虑为什么这样是正确的。首先,放弃之前天选择当前天这一决策一定不会更劣。同时还可以不断增加存货量,增大了后面满足要求的可能性。因此该决策是优的。 #include

『逆序对问题』「POI2012」Letters

Problem 给出两个长度相同且由大写英文字母组成的字符串A、B,保证A和B中每种字母出现的次数相同。 现在每次可以交换A中相邻两个字符,求最少需要交换多少次可以使得A变成B。 题解 这是多么奇妙的一道题目啊!! 我们先在换一个问题:如果问你一串数字,至少交换多少次才能使结果升序排列。 答案是:逆序对的个数。 此时我们把B看成升序的数,把对应的数字赋值到A中求逆序对即可。 细节问