zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 26 A B C题

    题目链接

    A. Text Volume

    题意:计算句子中,每个单词大写字母出现次数最多的那个的出现次数(混不混乱QAQ).

    解题思路:注意getchar()就没啥了.

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<ctype.h>
    #include<algorithm>
    using namespace std;
    int main()
    {
        int n;
        char str[205];
        cin>>n;    
        getchar();
        for(int i=0;i<n;i++)    scanf("%c",&str[i]);
        int max_len=0,cnt=0;
        for(int i=0;i<n;i++)
        {
            if(isalpha(str[i])>0)
            {
                if(str[i]>='A'&&str[i]<='Z')    cnt++;
            }
            else    max_len=max(max_len,cnt),cnt=0;
        }
        max_len=max(max_len,cnt),cnt=0;
        cout<<max_len<<endl;
        return 0;
    }
    View Code

      B. Flag of Berland

    题意:色光三原色,RGB,判断这三个字母是否都出现且围成的图案要完全一样(条纹).

    解题思路:暴力模拟,扫扫扫,直接看代码吧.

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    char Map[105][105];
    int n,m,x,y;
    void solve(char ch)
    {
        int flag=1;
        x=y=0;
        for(int i=0;i<n&&flag;i++)
        {
            for(int j=0;j<m&&flag;j++)
            {
                if(Map[i][j]==ch)
                {
                    flag=0;
                    int ii=i+1,jj=j+1;
                    x++,y++;
                    while(Map[i][jj]==ch&&jj<m)
                    {
                        jj++; y++;
                    }
                    while(Map[ii][j]==ch&&ii<n)
                    {
                        ii++;    x++;
                    }
                    for(int _i=i;_i<ii;_i++)
                    {
                        for(int _j=j;_j<jj;_j++)
                           if(Map[_i][_j]!=ch)
                           {
                              x=y=0; return ;
                           }
                    }
                }
            }
        }
    }
    int main()
    {
        
        cin>>n>>m;
        for(int i=0;i<n;i++)    scanf("%s",Map[i]);
        if( (n*m)%3!=0 )
        {
            puts("NO");    return 0;
        }    
        int a=0,b=0,a1=0,b1=0,a2=0,b2=0;
        solve('R');
        a=x,b=y;
        
        solve('B');
        a1=x,b1=y;
        
        solve('G');
        a2=x,b2=y;
        
        if(a&&b&&a1&&b1&&a2&&b2&&a*b+a1*b1+a2*b2==n*m
        &&a==a1&&a1==a2&&b==b1&&b1==b2)    
           puts("YES");
        else  puts("NO");
        return 0;
    }
    View Code

    C. Two Seals

    题意:在n*m纸上,盖两个印章,在不越界前提下要求总面积最大,印章可旋转着盖.

    解题思路:双重for循环,直接暴力枚举,每次取一次max.

    刚开始没注意到是盖两个,用背包写了半天,半路发现GG思密达...

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int x[105],y[105];
    int main()
    {
        int n,a,b,sum=0;
        cin>>n>>a>>b;
        if(a>b)    swap(a,b);
        for(int i=1;i<=n;i++)    cin>>x[i]>>y[i];
        for(int i=1;i<=n;i++)
          for(int j=i+1;j<=n;j++)
          {
              int sumx,sumy;
            sumx=x[i]+x[j],sumy=max(y[i],y[j]);
            if(sumx>sumy)    swap(sumx,sumy);
            if(sumx<=a&&sumy<=b)    sum=max(sum,x[i]*y[i]+x[j]*y[j]);
            
            sumx=x[i]+y[j],sumy=max(y[i],x[j]);
            if(sumx>sumy)    swap(sumx,sumy);
            if(sumx<=a&&sumy<=b)    sum=max(sum,x[i]*y[i]+x[j]*y[j]);
            
            sumx=y[i]+x[j],sumy=max(x[i],y[j]);
            if(sumx>sumy)    swap(sumx,sumy);
            if(sumx<=a&&sumy<=b)    sum=max(sum,x[i]*y[i]+x[j]*y[j]);
            
            sumx=y[i]+y[j],sumy=max(x[i],x[j]);
            if(sumx>sumy)    swap(sumx,sumy);
            if(sumx<=a&&sumy<=b)    sum=max(sum,x[i]*y[i]+x[j]*y[j]);
          }
        cout<<sum<<endl;
        return 0;
    }
    View Code
  • 相关阅读:
    leetcode-000-序
    统计学习方法:支撑向量机(SVM)
    统计学习方法:CART算法
    统计学习方法:最大熵模型
    〖Linux〗关于Linux软件包安装位置、版本查询
    〖Linux〗ltib的使用帮助
    〖Linux〗Debian 7.1.0 Wheezy使用ltib报错的解决办法
    〖Android〗把CM(Android)源代码导入eclipse的正确方法(2013-7-3)
    【Linux】eclipse juno 边框过大的调整方法
    【Android】在build/envsetup.sh中添加自己的命令(函数)
  • 原文地址:https://www.cnblogs.com/weimeiyuer/p/7326316.html
Copyright © 2011-2022 走看看