• D. Kill Anton 题解(思维构造)


    题目链接

    题目思路

    还是要靠猜

    结论就是相同的字符放在一起必定有一种答案最优不会证明

    然后再用逆序对搞下即可

    我的复杂度是(O(24n))标程为(O(n))

    标程就是预处理了一下

    代码

    #include<bits/stdc++.h>
    #define debug printf("
     I am here
    ");
    #define fi first
    #define se second
    #define pii pair<int,int>
    typedef long long ll;
    const int maxn=1e5+5,inf=0x3f3f3f3f,mod=1e9+7;
    const ll INF=0x3f3f3f3f3f3f3f3f;
    using namespace std;
    int n;
    char s[maxn];
    char t[10],ans[10];
    int pre[10];
    int main(){
        int _;scanf("%d",&_);
        while(_--){
            ll rev=-1;
            scanf("%s",s+1);
            n=strlen(s+1);
            t[1]='A',t[2]='N',t[3]='O',t[4]='T';
            do{
                map<char,int> mp;
                for(int i=1;i<=4;i++){
                    pre[i]=0;
                    mp[t[i]]=i;
                }
                ll temp=0;
                for(int i=1;i<=n;i++){
                    temp+=pre[mp[s[i]]+1];
                    for(int j=1;j<=mp[s[i]];j++){
                        pre[j]++;
                    }
                }
                if(temp>rev){
                    rev=temp;
                    for(int i=1;i<=4;i++){
                        ans[i]=t[i];
                    }
                }
            }while(next_permutation(t+1,t+1+4));
            for(int i=1;i<=4;i++){
                for(int j=1;j<=n;j++){
                    if(s[j]==ans[i]){
                        printf("%c",ans[i]);
                    }
                }
            }
            printf("
    ");
        }
        return 0;
    }
    
    
    卷也卷不过,躺又躺不平
  • 相关阅读:
    微信小程序购物商城系统开发系列-目录结构
    微信小程序购物商城系统开发系列-工具篇
    如何用js获取浏览器URL中查询字符串的参数
    Search for a Range
    Search in Rotated Sorted Array
    permutation递归方法
    Permutations
    next permutation
    4Sum
    3Sum Closest
  • 原文地址:https://www.cnblogs.com/hunxuewangzi/p/14850188.html
Copyright © 2020-2023  润新知