zoukankan      html  css  js  c++  java
  • Codeforces Round #584 C

    题目地址:http://codeforces.com/contest/1209/problem/C

    题意:一个由由0~9组成的字符串,分别赋值1,2。按先后顺序先排1,再排2,实现不递减。

    思路:枚举0~9即可,要注意枚举的这个值可以同时为1和2,可用是否有在2数列的大于它来判断。

    一开始以为不递减就可以直接排1,2,一直W在样例一。。。后面又超时,定义的数组大小变为n+5之后就行了,有点懵。

    AC代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 using namespace std;
     5 typedef long long ll;
     6 int main(){
     7     int t;
     8     cin>>t;
     9     while(t--){
    10         int n,a[200005];
    11         cin>>n;
    12         char s;
    13         for(int i=0;i<n;i++){
    14             cin>>s;
    15             a[i]=s-'0';
    16         }
    17         bool flag=false;
    18         int j;
    19         int d[n+5]={0};
    20         for(j=0;j<10;j++){
    21             int b[n+5]={0},c[n+5]={0},num2=0,num1=0;
    22             for(int i=0;i<n;i++){
    23                 if(a[i]>j){
    24                     c[num2++]=a[i];
    25                     d[i]=2;
    26                 }
    27                 else if(a[i]<j){
    28                     b[num1++]=a[i];
    29                     d[i]=1;
    30                 }
    31                 else if(a[i]==j){
    32                     if(num2==0||j==c[num2-1]){
    33                         c[num2++]=j;
    34                         d[i]=2;
    35                     }
    36                     else{
    37                         b[num1++]=j;
    38                         d[i]=1;
    39                     }
    40                 }
    41             }
    42             bool pd=true;
    43             for(int i=1;i<num1;i++)
    44                 if(b[i]<b[i-1]){
    45                     pd=false;
    46                     break;
    47                 }
    48             for(int i=1;i<num2;i++)
    49                 if(c[i]<c[i-1]){
    50                     pd=false;
    51                     break;
    52                 }
    53             if(pd){
    54                 flag=true;
    55                 break;
    56             }
    57         }
    58         if(flag){
    59             for(int i=0;i<n;i++)
    60                 cout<<d[i];
    61             cout<<endl;
    62         }
    63         else cout<<"-"<<endl;
    64     }
    65     return 0;
    66 }
  • 相关阅读:
    DDPG
    Actor Critic
    Policy Gradients
    DQN
    Sarsa
    粘滞键
    Codeforces Round #236 (Div. 2) E. Strictly Positive Matrix 强连通
    hdu 1853 Cyclic Tour KM
    hdu 3435 A new Graph Game KM
    hdu 3488 Tour KM
  • 原文地址:https://www.cnblogs.com/xunzf0402/p/11552539.html
Copyright © 2011-2022 走看看