首页 > 其他分享 >C. Removal of Unattractive Pairs

C. Removal of Unattractive Pairs

时间:2023-12-06 10:37:27浏览次数:34  
标签:字符 Pairs int len Removal 消掉 Unattractive 字符串 最长

原题链接

不知道这个思想叫什么,应该叫结果思想

导论
如果存在一个最长的字符串,我又没有可能把他消掉?
答案是,只要其他字符的长度大于等于最长字符串的长度,就一定能把他消掉。
所以我们不考虑字符串是怎么消除的,直接看结果。

原因解释如下
1.该最长字符串一定和其他字符相连,则消除操作显然。
2.如果在执行某个消除操作后遇到了与最长字符串同一字符,则更新最长字符串,情况又回到了1。
3.执行多个2后,这道题就成了找一个字符出现的最多次数。

特判考虑
1.如果n为奇数,至少剩一个字符
2.设最长字符串(即一个字符出现的最多次数)为len,如果len<=n/2,则能全部消掉,但如果是奇数还会剩一个
3.如果2*len>n 则一定剩2*len-n个字符

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n;
        char s[1000005];
        scanf("%d%s",&n,s);
        int a[30]={0};
        for(int i=0;s[i];i++)a[s[i]-97]++;
        int len=0;
        for(int i=0;i<26;i++)len=max(len,a[i]);
        if(2*len<=n)   printf("%d\n",n%2==0?0:1);
        else printf("%d\n",2*len-n);
    }
    return 0;
}

标签:字符,Pairs,int,len,Removal,消掉,Unattractive,字符串,最长
From: https://www.cnblogs.com/pure4knowledge/p/17878952.html

相关文章

  • [Codeforces] CF1703F Yet Another Problem About Pairs Satisfying an Inequality
    时间限制\(2s\)|空间限制\(250M\)题目描述给你一个序列$a_1,a_2,\dotsa_n$。请计算出满足下面条件的$(i,j)(1\leqi,j\leqn)$个数。$a_i<i<a_j<j$.输入格式第一行包含一个整数$t$($1\leqt\leq1000$)—测试数据的个数每一个......
  • IOI 2007 Pairs
    IOI2007Pairs可以考虑三个情况:若B=1:这其实好像没什么好说的?lower_bound就可以轻轻松松30分code:voidsolve1(){for(inti=0;i<N;i++){std::cin>>a[i];}sort(a,a+N);i64ans=0;for(inti=0;i<N;i++){intlst=lower_bound......
  • CF1542E2 Abnormal Permutation Pairs (hard version) 题解
    怎么会有这么离谱的题目啊。【模板】前缀和优化dp。思路考虑一个基本的东西。由于要求字典序的限制。我们可以枚举最长公共前缀计算。考虑如何求长度为\(i\)的排列有\(j\)个逆序对的数量。设\(dp_{i,j}\)。\[dp_{i,j}=\sum_{k=0}^{i-1}dp_{i-1,j-k}\]就是枚举新的......
  • CF1542E2 Abnormal Permutation Pairs (hard version) 题解
    AbnormalPermutationPairs(hardversion)两个限制:字典序小、逆序对大,一个显然的想法就是确保一对关系,统计另一对关系。确保哪一对呢?我们想了想,决定确保字典序小,因为字典序是可以贪心的。具体而言,我们考虑两个排列自第\(i\)位开始出现了不同。这样子,我们便将两个排列各自划......
  • 【前缀和优化 dp】CF1542E2 Abnormal Permutation Pairs (hard version) 题解
    CF1542E2首先时间复杂度肯定是\(\mathcal{O}(n^3)\)的。容易想到先枚举最长公共前缀,然后枚举\(p_{len+1}\)和\(q_{len+1}\),再枚举逆序对数进行统计。令\(f_{i,j}\)表示有\(j\)个逆序对的\(i\)阶排列的个数。易得转移\(f_{i,j}=\sum\limits_{k=\max(j-i+1,0)}^{j}f......
  • 1820BThe BOSS Can Count Pairs[分块]
    Problem-B-Codeforces题意是给n个a和b,1<=a,b<=n,问有多少ai*aj==bi+bj,i<j,2e5的数据规模看一眼数据规模,a,b都是小于等于n的,意味着如果ai*aj>n那么就对答案无贡献,或者说,对于一个ai,剩下数中可能能对答案产生影响的aj,一定是小于等于n/ai的。那么我们可以以ai为依据升序排序,......
  • CF1542E1 Abnormal Permutation Pairs (easy version) 题解
    CF1542E1AbnormalPermutationPairs(easyversion)题解不会Hardversion对于第一个限制字典序,我们可以考虑枚举前\(i\)位相同,然后考虑后\(n-i\)位。我们只需要保证\(p_{i+1}<q_{i+1}\)即可。我们设\(len=n-i\)。由于前\(i\)位完全相同,所以前\(i\)位内部......
  • 【题解】CF1830B The BOSS Can Count Pairs
    你考虑,我们观察数据范围,发现可以是\(O(n\sqrtn)/O(n\logn)\)的,我们又看到乘法,便有几个大概的想法:数论分块\(O(\sqrtn)\)枚举其中一个乘数还有什么……(笔者学识浅陋,读者可以帮忙补充)我们可以找到两种\(O(n^2)\)做法:\(O(n^2)\)枚举数对\((i,j)\)然后进行判断。......
  • All Pairs Maximum Flow题解
    前置知识:1.P3376【模板】网络最大流2.P4897【模板】最小割树(Gomory-HuTree)Ebola有一句很著名的话如果你乱搞过了我请你抽烟那么这道题肯定不能普通的dinic直接水过去,不然就不是紫题了,那么直接祭出最小割树,复杂度\(O(Tn^3m)\),但是因为dinic跑不满,所以是可以过的。......
  • 1360C - Similar Pairs
    C.SimilarPairshttps://codeforces.com/problemset/problem/1360/C"""思路:1.因为n为偶数,所以偶数如果有偶数个的话,那么奇数也有偶数个,正好可以两两配对2.如果偶数为奇数个,那么奇数也是有奇数个,内部消化后多一个奇数和偶数3.剩下的奇数和偶数按相差是1计算,如......