next_permutation暴力搜索,POJ(3187)

题目链接:http://poj.org/problem?id=3187

解题报告:

#include <stdio.h>
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    int n,sum;
    scanf("%d%d",&n,&sum);
    int a[15],b[15];
    for(int i=0; i<n; i++)
        a[i]=i+1;

    do
    {
        for(int i=0;i<n;i++)
            b[i]=a[i];
        //int ans=0;
        for(int i=n;i>1;i--)
        {
            for(int j=0;j<i-1;j++)
                b[j]=b[j]+b[j+1];
        }
        if(b[0]==sum) break;
    }
    while(next_permutation(a,a+n));

    for(int i=0;i<n;i++)
        printf("%d ",a[i]);
    puts("");
        return 0;
}
 
View Code
原文地址:https://www.cnblogs.com/TreeDream/p/5389043.html