codeforces educational round25

A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
    int n,num=0;
    string s;
    cin>>n;
    cin>>s;
    for(int i=0;i<n;i++){
        if(s[i]!='0') num++;
        if(s[i]=='0'){ cout<<num;num=0;} 
    }
    cout<<num;
    return 0;
}
View Code

B

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;
string ss[100];
int main(){
    for(int i=0;i<10;i++){
        cin>>ss[i];
    }
    for(int i=0;i<10;i++){
        for(int j=0;j<6;j++){
            int num=0;
            bool flag=false;
            for(int k=0;k<5;k++){
                if(ss[i][j+k]=='X') num++;
                if(ss[i][j+k]=='O') flag=true;
            }
            if(num==4&&flag==false){
                cout<<"YES\n";
                return 0;
            }
            if(i<6){
            num=0;
            flag=false;
            for(int k=0;k<5;k++){
                if(ss[i+k][j+k]=='X') num++;
                if(ss[i+k][j+k]=='O') flag=true;
            }
            if(num==4&&flag==false){
                cout<<"YES\n";
                return 0;
            }
                num=0;
                flag=false;
                for(int k=0;k<5;k++){
                    if(ss[i+k][j]=='X') num++;
                    if(ss[i+k][j]=='O') flag=true;
                }
                if(num==4&&flag==false){
                    cout<<"YES\n";
                    return 0;
                }
            }
            if(i>=4){
                num=0;
                flag=false;
                for(int k=0;k<5;k++){
                    if(ss[i-k][j+k]=='X') num++;
                    if(ss[i-k][j+k]=='O') flag=true;
                }
                if(num==4&&flag==false){
                    cout<<"YES\n";
                    return 0;
                }
            }
        }
    }
    for(int i=0;i<10;i++){
        for(int j=6;j<10;j++){
            int num=0,flag=false;
            for(int k=0;k<5;k++){
                if(ss[i+k][j]=='X') num++;
                if(ss[i+k][j]=='O') flag=true;
            }
            if(num==4&&flag==false){
                cout<<"YES\n";
                return 0;
            }
        }
    }
    cout<<"NO\n";
    return 0;
    
}
View Code

 C

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 int a[10002];
 5 int main(){
 6     int n,k,num=0,temp;
 7     cin>>n>>k;
 8     temp=2*k;
 9     for(int i=0;i<n;i++) cin>>a[i];
10     sort(a,a+n);
11     for(int i=0;i<n;i++){
12         if(a[i]>temp){
13             while(temp<a[i]){
14                 num++;
15                 temp*=2;
16             }
17         }
18         temp=max(temp,2*a[i]);
19     }
20     cout<<num<<endl;
21 }
View Code

D

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 int a[26],ss[1000006];
 5 int main(){
 6     string s,t;
 7     cin>>s>>t;
 8     int k=0;
 9     for(int i=0;i<s.size();i++){
10         if(s[i]=='?') ss[k++]=i;
11         else a[s[i]-'a']++;
12     }
13     for(int i=0;i<k;){
14         for(int j=0;j<t.size();j++){
15             if(a[t[j]-'a']>0) a[t[j]-'a']--;//复杂度只有O(k+n)不是n*m 
16             else{
17                 s[ss[i]]=t[j];
18                 i++;
19                 if(i==k)    break;
20             }
21         }
22     }
23     cout<<s;
24     
25 }
View Code

 

待更

 

posted @ 2017-07-24 03:02  Elpsywk  阅读(130)  评论(0编辑  收藏  举报