zoukankan      html  css  js  c++  java
  • Codeforces Round #522 Div2C(思维)

    #include<bits/stdc++.h>
    using namespace std;
    int a[200007];
    int b[200007][7];
    int ans[200007];
    int main(){
        for(int i=1;i<=5;i++)
            b[1][i]=1;//第一个可以从1选到5
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        for(int i=2;i<=n;i++){
            for(int j=1;j<=5;j++){//遍历a[i]
                for(int k=1;k<=5;k++){//遍历a[i-1]
                    if(j<k&&a[i]<a[i-1]&&b[i-1][k])//前一位可以选k,这一位才可以选j
                        b[i][j]=k;
                    else if(j>k&&a[i]>a[i-1]&&b[i-1][k])
                        b[i][j]=k;
                    else if(a[i-1]==a[i]&&j!=k&&b[i-1][k])
                        b[i][j]=k;
                }
            }
        }
        int flag=0;
        int x=0;
        for(int i=1;i<=5;i++){
            if(b[n][i]==0)
                continue;
            x=i;//i是a[n]的答案
            flag=1;
            for(int j=n;j>=1;j--){
                ans[j]=x;
                x=b[j][x];//b[j][x]装的上一位的答案,x是这一位的答案
            }
        }
        if(!flag)
            printf("-1");
        else{
            for(int i=1;i<=n;i++)
                printf("%d ",ans[i]);
        }
        return 0;
    }

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    图片推理1
    asp.net优化方案
    将word转换成其它文件
    兼容在安装linux系统过程中不支持非原装的光模块的命令
    linux上关于网卡的操作
    SQL事务
    delphi中获取汉字的拼音首字母
    [转]SQL Server中获得EXEC后面的sql语句或者存储过程的返回值的方法
    游标写法
    DBGridEh导出EXCEL
  • 原文地址:https://www.cnblogs.com/ldudxy/p/9984368.html
Copyright © 2011-2022 走看看