码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 3187 Backward Digit Sums

时间:2017-01-19 02:01:41      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:cal   ble   scan   --   algo   tchar   git   put   ++   

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

穷竭搜索 全排列 然后按规则求和 排列之前先按升序排序

这样可以保证第一个和为k的就是符合最小序列的结果

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <algorithm>
 4 
 5 using namespace std;
 6 
 7 int sum(int a[], int n)
 8 {
 9     int s[11];
10     for (int i = 0; i < n; i++)
11     {
12         s[i] = a[i];
13     }
14     while (n != 1)
15     {
16         n--;
17         for (int i = 0; i < n; i++)
18         {
19             s[i] += s[i+1];
20         }
21     }
22     return s[0];
23 }
24 int main()
25 {
26     int s,n;
27     int a[11], calc[11];
28     freopen("in.txt","r", stdin);
29     while (~scanf("%d%d", &n, &s))
30     {
31         for(int i = 0; i < n; i++)
32         {
33             a[i] = i+1;
34         }
35         do
36         {
37             for (int i =0 ;i < n; i++)
38             {
39                 calc[i] = a[i];
40             }
41             if ( sum(calc, n) == s) break;
42         }while (next_permutation(a, a+n));
43         for (int i =0 ; i < n; i++)
44         {
45             printf("%d ", calc[i]);
46         }
47         putchar(\n);
48     }
49     return 0;
50 }

 

POJ 3187 Backward Digit Sums

标签:cal   ble   scan   --   algo   tchar   git   put   ++   

原文地址:http://www.cnblogs.com/oscar-cnblogs/p/6298486.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!