zoukankan      html  css  js  c++  java
  • Codeforces Round #609 (Div. 2)---C. Long Beautiful Integer

    Long Beautiful Integer

     思路:

    对于n位数来说,全为9一定是beautiful的,所以结果的m一定是等于n的。因为要求第i位于第i+k位相等,所以数的值实际上是取决于前k位的,因为需要大于等于原字符串,所以可以直接取原字符串的前k位,构造出新的字符串b,如果b>=a,就可以直接输出,如果不是,可以将b的前k为取出,然后+1,就可以构造出最小的大于等于a的beautiful串。

    AC_Code

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const int maxn = 200010;
     5 const int mod=1e9+7;
     6 char a[maxn],b[maxn];
     7 
     8 int main()
     9 {
    10     int n,k;
    11     scanf("%d %d %s",&n,&k,a);
    12     for(int i=0;i<k;i++){
    13         for(int j=i;j<n;j+=k){
    14             b[j]=a[i];
    15         }
    16     }
    17     if( strcmp(b,a)>=0){
    18         printf("%d
    %s
    ",n,b);
    19     }
    20     else{
    21         for(int i=k-1;i>=0;i--){
    22             if( b[i]=='9'){
    23                 b[i]='0';
    24             }
    25             else{
    26                 b[i]++;
    27                 break;
    28             }
    29         }
    30         for(int i=0;i<k;i++){
    31             for(int j=i;j<n;j+=k){
    32                 b[j]=b[i];
    33             }
    34         }
    35         printf("%d
    %s
    ",n,b);
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    UVa 106
    UVa 111
    UVa 105
    UVa 104
    UVa 103
    UVa 102
    UVa 101
    UVa 100
    就决定是你了!
    阿姆斯特朗回旋加速喷气式阿姆斯特朗炮
  • 原文地址:https://www.cnblogs.com/wsy107316/p/12269047.html
Copyright © 2011-2022 走看看