zoukankan      html  css  js  c++  java
  • Codeforces Round #364 (Div. 2)【A,C】

    啊啊啊啊啊啊啊啊啊,目睹A->CⅠA全过,最终fstwaA,C;23333333
    A题:
    题意:
    就是分成相等的m堆,每堆有两个位置上的值相加。
    思路:
    fst在sum可能不是偶数,先*2/n;。。。。。。。。。。。。。。哭死。。
    code:

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    typedef unsigned long long ULL;
    const double eps=1e-6;
    const double pi=acos(-1.0);
    const int mod=998244353;
    const int INF=0x3f3f3f3f;
    
    const int N=1e2+10;
    
    int a[N];
    bool vis[N];
    int n;
    
    int main()
    {
        cin>>n;
        int sum=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
            sum+=a[i];
        }
        memset(vis,0,sizeof(vis));
        int x=sum*2/n;
        for(int i=1;i<=n;i++){
            if(!vis[i])
            {
                printf("%d ",i);
                vis[i]=1;
                for(int j=1;j<=n;j++)
                {
                    if(!vis[j]){
                        if((a[i]+a[j])==x)
                        {
                            printf("%d
    ",j);
                            vis[j]=1;
                            break;
                        }
                    }
                }
            }
        }
    
    }

    C题:
    题意就是求一个最短连续区间长度包含给定字符串的所有种类。
    思路:写挫了。。。。
    code:

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    typedef unsigned long long ULL;
    const double eps=1e-6;
    const double pi=acos(-1.0);
    const int mod=998244353;
    const int INF=0x3f3f3f3f;
    
    const int N=1e5+10;
    
    char s[N];
    bool v1[N];
    int v2[N];
    int p1,p2;
    
    int main()
    {
        int len;
        scanf("%d",&len);
        scanf("%s",s);
        int sum;
        int x;
        sum=0;
        memset(v1,0,sizeof(v1));
        for(int i=0;i<len;i++){
            x=s[i];
            if(!v1[x]){
                sum++;
                v1[x]=1;
            }
        }
        memset(v2,0,sizeof(v2));
        int ans=INF;
        int num=0;
        int flag=0;
        p1=p2=0;
        num=0;
        while(1)
        {
            flag=0;
            while(num<sum){
                if(p2==len)
                    break;
                x=s[p2];
                if(!v2[x])
                    num++;
                v2[x]++;
                p2++;
                flag=1;
               // printf("p2=%d
    ",p2);
            }
            while(num==sum){
                ans=min(ans,p2-p1);
                x=s[p1];
                v2[x]--;
                if(!v2[x])
                    num--;
                p1++;
                flag=1;
               // printf("p1=%d
    ",p1);
            }
            if(!flag)
                break;
        }
        printf("%d
    ",ans);
        return 0;
    }
    
  • 相关阅读:
    Tomcat建立多个应用(Web Server),多个主机,多个站点的方法
    Spring 注解bean默认名称规则
    spring+springMVC,声明式事务失效,原因以及解决办法
    Spring事务失效的原因
    MySQL 对于千万级的大表要怎么优化?
    前端开发利器: Bootstrap + AngularJS
    scrapy爬取段子
    scrapy安装
    xpath和CSS选择器
    pycharm远程登录mysql
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/5934412.html
Copyright © 2011-2022 走看看