zoukankan      html  css  js  c++  java
  • 51nod 1385 凑数字(贪心+构造)

    分析:写几个就会发现,最优的做法应该是先写1234567890,然后如果不够用,往后面依次加1、2、3……然后就可以过了,这样保证每个数字尽可能多得被用到,题解是另一种构造,原理一样,严格证明看题解。。

    题解:

     1 import java.io.*;
     2 import java.util.*;
     3 import java.math.BigInteger;
     4 public class Main {
     5     public static void main(String[] args){
     6         Scanner cin=new Scanner(System.in);
     7         String s;
     8         s=cin.next();
     9         BigInteger n=new BigInteger(s);
    10         int len=n.toString().length();
    11         BigInteger ans=new BigInteger("0");
    12         ans=BigInteger.valueOf(10*(len-1));
    13         for(int i=1;i<10;i++){
    14             if(i<s.charAt(0)-'0')
    15                 ans=ans.add(BigInteger.ONE);
    16             if(i==s.charAt(0)-'0'){
    17                 for(int j=0;j<len;j++){
    18                     if(s.charAt(j)-'0'>i||(j==len-1&&s.charAt(j)-'0'==i)){
    19                         ans=ans.add(BigInteger.ONE);break;
    20                     }
    21                     if(s.charAt(j)-'0'<i){
    22                         break;
    23                     }
    24                 }
    25                 break;
    26             }
    27         }
    28         System.out.println(ans);
    29         cin.close();
    30     }
    31 }
  • 相关阅读:
    HUST 1017 Exact cover (Dancing links)
    HDU 1160 FatMouse's Speed (DP)
    HDU 1058 Humble Numbers (DP)
    Kubernetes(k8s)
    linux命令
    入侵检测系统
    lynis检测
    CPU死锁
    检测工具lynis
    Linux表面工作
  • 原文地址:https://www.cnblogs.com/7391-KID/p/7210587.html
Copyright © 2011-2022 走看看