zoukankan      html  css  js  c++  java
  • Shredding Company(dfs)

    http://poj.org/problem?id=1416

    题意:将一个数分成几部分,使其分割的各个数的和最大并且小于所给的数。

    凌乱了。。参考的会神的代码。。orz...

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 int arr[102],ans[102];
     5 int max,len,f;
     6 int a,b;
     7 
     8 void dfs(int n,int now,int sum,int k,int t)
     9 {
    10     int m = n % 10;
    11     if (!n)
    12     {
    13         arr[k] = now;
    14         if (sum + now > a)
    15             return  ;
    16         if (sum + now ==max)
    17             f++;
    18         if (sum +now > max)
    19         {
    20             max = sum + now;
    21             f = 1;
    22             len = k;
    23             for (int i = 1; i <= k; i ++)
    24             {
    25                 ans[i] = arr[i];
    26             }
    27 
    28         }
    29         return ;
    30     }
    31     dfs(n/10,now+t*m,sum,k,t*10);
    32     arr[k] = now;
    33     dfs(n/10,m,sum+now,k+1,10);
    34 }
    35 int main()
    36 {
    37     while(~scanf("%d%d",&a,&b)&&a&&b)
    38     {
    39         max = 0;
    40         f = 0;
    41         dfs(b/10,b%10,0,1,10);
    42         if (max==0)
    43         {
    44             printf("error
    ");
    45             continue;
    46         }
    47         if (f > 1)
    48         {
    49             printf("rejected
    ");
    50             continue;
    51         }
    52         printf("%d",max);
    53         for (int i = len; i >= 1; i --)
    54         {
    55             printf(" %d",ans[i]);
    56         }
    57         printf("
    ");
    58     }
    59     return 0;
    60 }
    View Code
  • 相关阅读:
    cookie的路径
    cookie的生命
    cookie详解
    cookie简介&用途
    编码
    请求转发和重定向的区别
    request:域
    request:请求转发,请求包含
    常用的html语法
    request:获取请求的URL
  • 原文地址:https://www.cnblogs.com/lahblogs/p/3292517.html
Copyright © 2011-2022 走看看