luoguP3531 [POI2012]LIT-Letters】的更多相关文章

(https://www.luogu.org/problem/P3531) 注意编号 #include<cstdio> #include<algorithm> #include<cstring> #include<vector> #include<iostream> using namespace std; const int MAX = 1001001; int n; long long ans; int p[MAX], num[MAX], t…
    这是一道字符串建模+图论的问题. 题目描述 Byteasar breeds hamsters. Each hamster has a unique name, consisting of lower case letters of the English alphabet. The hamsters have a vast and comfortable cage. Byteasar intends to place a display under the cage to visuali…
2789: [Poi2012]Letters Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 278  Solved: 185[Submit][Status][Discuss] Description 给出两个长度相同且由大写英文字母组成的字符串A.B,保证A和B中每种字母出现的次数相同. 现在每次可以交换A中相邻两个字符,求最少需要交换多少次可以使得A变成B. Input   第一行一个正整数n (2<=n<=1,000,000),表示字符串的…
直接求逆序对就行了...时间复杂度O(nlogn) ------------------------------------------------------------------------- #include<bits/stdc++.h>   using namespace std;   #define idx(c) ((c) - 'A') #define lowbit(x) ((x) & -(x))   const int charset = 26; const int ma…
[BZOJ2789][Poi2012]Letters Description 给出两个长度相同且由大写英文字母组成的字符串A.B,保证A和B中每种字母出现的次数相同. 现在每次可以交换A中相邻两个字符,求最少需要交换多少次可以使得A变成B. Input 第一行一个正整数n (2<=n<=1,000,000),表示字符串的长度. 第二行和第三行各一个长度为n的字符串,并且只包含大写英文字母. Output 一个非负整数,表示最少的交换次数. Sample Input 3 ABC BCA Samp…
按照顺序依次找到b串每个字母最后的位置,然后求逆序对. #include<cstdio> #define N 1000010 int n,i,j,k,g[26],nxt[N],bit[N];char a[N],b[N];long long ans; int main(){ for(scanf("%d",&n),gets(a),gets(a+1),gets(b+1),i=1;i<=n;g[a[i]]=i++)nxt[i]=g[a[i]-='A']; for(i=…
题目链接 BZOJ 题解 如果我们给\(A\)中所有字母按顺序编号,给\(B\)中所有字母编上相同的号码 对于\(B\)中同一种,显然号码应该升序 然后求逆序对即可 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<vector> #include<cmath> #include<map> #define R…
处理数组A,A[i]表示字符串a的第i个字符排序后应去的位置,队列可. 对于多次出现的字符,其在a中的顺序和在b中的顺序应该是一一对应的. #include<cstdio> #include<queue> using namespace std; #define N 1000001 typedef long long ll; queue<int>qs[26]; ll ans; int n,A[N]; char a[N],b[N]; int d[N]; void Upda…
题目描述 给出两个长度相同且由大写英文字母组成的字符串A.B,保证A和B中每种字母出现的次数相同. 现在每次可以交换A中相邻两个字符,求最少需要交换多少次可以使得A变成B. 输入 第一行一个正整数n (2<=n<=1,000,000),表示字符串的长度. 第二行和第三行各一个长度为n的字符串,并且只包含大写英文字母. 输出 一个非负整数,表示最少的交换次数. 样例输入 3 ABC BCA 样例输出 2 题解 树状数组求逆序对 一个结论:将序列A通过交换相邻元素变换为序列B,需要的最小次数为A中…
POI2012题解 这次的完整的\(17\)道题哟. [BZOJ2788][Poi2012]Festival 很显然可以差分约束建图.这里问的是变量最多有多少种不同的取值. 我们知道,在同一个强连通分量中的变量的相对大小是限制死了的,即这个强连通分量中的最大值减去最小值不为\(\inf\),而这个区间中的所有数一定都可以被取到(因为这里的边权只有\(0,\pm1\)嘛),所以一个强连通分量对答案的贡献是这个强连通分量中的最长路\(+1\).对于不在同一个强连通分量中的变量,其相对大小不受限制,取…