zoukankan      html  css  js  c++  java
  • Color the Fence

    Codeforces Round #202 (Div. 2) B:http://codeforces.com/problemset/problem/349/B

    题意:给你一些颜料,然后你可以用这些颜料画一些数字,画每个数字的颜料是不一样的,然后问你用这些颜料可以画出的最大的数。

    题解:和容易想到,直接用贪心,数字最大,首先要使得数字的位数最多,所以要选择需要颜料最少的数字来话,此题有一个好处就是,就是不用考虑前导零的情况,数的位数确定之后,就可以用剩余的颜料来调整数字,从高位到低位,每一次把把尽可能大的数字放在高位。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 using namespace std;
     6 int a[23],v;
     7 int minn,pos,ct;
     8 int ans[1000002],top;
     9 int main(){
    10    while(~scanf("%d",&v)){
    11         minn=1e7;
    12        for(int i=1;i<=9;i++){
    13           scanf("%d",&a[i]);
    14           if(minn>=a[i]){
    15             minn=a[i];
    16              pos=i;
    17           }
    18        }
    19        if(v<minn){
    20           printf("-1
    ");continue;
    21        }
    22        ct=v/minn;
    23        int temp=v-ct*minn;
    24        for(int i=1;i<=ct;i++)
    25           ans[i]=pos;
    26           top=0;
    27          // printf("%d %d %d
    ",ct,temp,minn);
    28        while(temp>0){
    29              int tp=0;
    30              top++;
    31              if(top>ct)break;
    32           for(int i=1;i<=9;i++){
    33             if(a[i]-minn<=temp)
    34                tp=i;
    35           }
    36            if(tp==0)break;
    37            else {
    38               ans[top]=tp;
    39               temp-=(a[tp]-minn);
    40            }
    41        }
    42       for(int i=1;i<ct;i++){
    43         printf("%d",ans[i]);
    44     }
    45     printf("%d
    ",ans[ct]);
    46    }
    47 }
    View Code
  • 相关阅读:
    libevent(十)bufferevent 2
    libevent(九)bufferevent
    maven本地库更新失败
    IDEA常用快捷键
    ELASTIC SEARCH 安装
    Hbase建模选择
    ElasticSearch关键概念
    Nginx+tomcat 负载均衡
    MapReduce (MRV1)设计理念与基本架构
    Kafka安装验证及其注意
  • 原文地址:https://www.cnblogs.com/chujian123/p/3895972.html
Copyright © 2011-2022 走看看