• Codeforces Round #294 (Div. 2)


    A. A and B and Chess

    题意:给出8*8的棋盘,大写的字母代表白方,小写的字母代表黑方,比较两方分别的权值多少

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring>  
     4 #include<algorithm>  
     5 using namespace std;
     6 
     7 char s[10][10];
     8 
     9 int main()
    10 {
    11     int a=0,b=0,i,j;
    12     for(i=0;i<8;i++) cin>>s[i];
    13     
    14     for(i=0;i<8;i++)
    15     {
    16         for(j=0;j<8;j++)
    17         {
    18             
    19             if(s[i][j]=='Q') a+=9;
    20             if(s[i][j]=='q') b+=9;
    21             
    22             if(s[i][j]=='R') a+=5;
    23             if(s[i][j]=='r') b+=5;
    24             
    25             if(s[i][j]=='B') a+=3;
    26             if(s[i][j]=='b') b+=3;
    27             
    28             if(s[i][j]=='N') a+=3;
    29             if(s[i][j]=='n') b+=3;
    30             
    31             if(s[i][j]=='P') a+=1;
    32             if(s[i][j]=='p') b+=1;
    33         }
    34     }
    35         
    36     if(a>b) printf("White
    ");
    37     else if(a<b) printf("Black
    ");
    38     else
    39     printf("Draw
    ");
    40 }
    View Code

    B. A and B and Compilation Errors

    题意:给出n个数,再删掉其中的一个数,再删掉一个数,输出第一个被删除的数,第二个被删除的数

    先排序,然后再用删之前的那一列数到新的这一列数中去找,没有找到,则说明被删除了

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring>  
     4 #include<algorithm>  
     5 using namespace std;
     6 
     7 int a[100005],b[100005],c[100005];
     8 
     9 int main()
    10 {
    11     int n,i,j,x,y;
    12     scanf("%d",&n);
    13     for(i=1;i<=n;i++) scanf("%d",&a[i]);
    14     sort(a+1,a+n+1);
    15     for(i=1;i<=n-1;i++) scanf("%d",&b[i]);
    16     sort(b+1,b+n);
    17     for(i=1;i<=n-2;i++) scanf("%d",&c[i]);
    18     sort(c+1,c+n-1);
    19     
    20     for(i=1;i<=n;i++)
    21     {
    22         if(a[i]!=b[i])
    23         {
    24             x=a[i];
    25             break;
    26         }
    27     }
    28     for(i=1;i<=n-1;i++)
    29     {
    30         if(c[i]!=b[i])
    31         {
    32             y=b[i];
    33             break;
    34         }
    35     }
    36     printf("%d
    ",x);
    37     printf("%d
    ",y);    
    38 }
    View Code

    C. A and B and Team Training

    题意:给出n个教练,n个新手,组队是一个教练带两个新手,或者两个教练带一个新手,问最多能组多少个队伍

    自己想的时候= =想到dp去了---后来问到思路是这样的 如果哪一边人多,就出两个人,哪一边人少,就出一个人,两边人数相同,则随便

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring>  
     4 #include<algorithm>  
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     int n,m,ans=0;
    10     scanf("%d %d",&n,&m);
    11     while((n+m>=3)&&n&&m)
    12     {
    13         if(n>=m)
    14         {
    15             n=n-2;m=m-1;
    16         }
    17         else
    18         {
    19             n=n-1;m=m-2;
    20         }
    21         ans++;
    22     }
    23     printf("%d
    ",ans);
    24 }
    View Code

    D

    题意:给出26个字母分别的权值,再给出一个字符串, 求满足这两个条件的子串的个数 1 首尾字母相同 2 除去首尾字母其他字母加起来的和为0

    搜了题解来看= =还是没有明白---占坑---

  • 相关阅读:
    【Linux 编程】进程间通信
    毕设进行时——4.3寸在富士通ARM中实现
    spcomm使用:在编译运行时为什么总出现"unable to open include file 'spcomm.hpp'"?
    Xilinx LVDS
    Xilinx selectIO
    xilinx 原理图输入
    http消息头(转)
    用java语言将数据库中的数据表转换为xml文件的通用程序(转)
    数据字典实例
    Web Service工作原理初探
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4309822.html
Copyright © 2020-2023  润新知