zoukankan      html  css  js  c++  java
  • 洛谷P2192HXY玩卡片

    题目大意

    给你n个数,只包括5和0.

    从中取一些数,要求组成的数是90的倍数。

    如:

    4

    5 0 5 0

    结果是0

    题解

    90=9*10,如果一个是90的倍数一定末尾有0,那么这个

    数一定是10的倍数了。我们只要保证这个数也是9的倍数。

    一个数是9的倍数的特点:

    各个位数的和是9的倍数。

    如981的各个位数和为9+8+1=18;

    18为9的倍数所以981是9的倍数。

    那么需要几个5才能是9的倍数呢?

    5*9=45,最少需要9个5.

    所以我们以9个5为一组输出,0全放到后面。

    这样才最大。

    代码

    40暴力

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    
    int n;
    
    long long ans;
    
    int c[6];
    
    void dfs(int now,long long x){
        if(now==n+1){
        //    cout<<x<<endl;
            if(x%90==0){
                if(x>ans)ans=x;
            }
            return;
        }
        if(c[5]){
            c[5]--;
            if(x==-1)dfs(now+1,5);
            else dfs(now+1,x*10+5);
            c[5]++;
        }
        if(c[0]){
            c[0]--;
            if(x==-1)dfs(now+1,0);
            else dfs(now+1,x*10);
            c[0]++;
        }
        dfs(now+1,x);
    }
    
    int main(){
        scanf("%d",&n);ans=-1;
        for(int i=1;i<=n;i++){
            int x;
            scanf("%d",&x);
            c[x]++;
        }
        if(c[0]==0){
            printf("-1
    ");
            return 0;
        }
        dfs(1,-1);
        cout<<ans<<endl;
        return 0;
    }

    AC

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    
    int n,m;
    
    int c[6];
    
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            int x;
            scanf("%d",&x);
            c[x]++;
        }
        if(!c[0]){
            printf("-1
    ");
            return 0;
        }
        m=c[5]/9;
        for(int i=1;i<=m;i++){
            printf("555555555");
        }
        if(!m){
            printf("0
    ");
            return 0;
        }
        for(int i=1;i<=c[0];i++)printf("0");
        return 0;
    }
  • 相关阅读:
    jQuery的版本兼容问题
    web页面锁屏初级尝试
    mvc5之文件上传
    魔方基础入门教程
    XCube和X组件的入门级使用教程
    蔬菜大棚监控与管理 1.0版本(未完善)
    蔬菜大棚 数据库设计 0.5版本()
    记录一段存储过程
    MPU9250九轴陀螺仪--读接口数据
    MPU9250九轴陀螺仪--连接MPU9250
  • 原文地址:https://www.cnblogs.com/zzyh/p/9426119.html
Copyright © 2011-2022 走看看