Backward Digit Sums(全排列next_permutation)
来源:互联网 发布:淘宝修改销量犯法 编辑:程序博客网 时间:2024/06/06 08:34
FJ and his cows enjoy playing a mental game. They write down the numbers from 1 to N (1 <= N <= 10) in a certain order and then sum adjacent numbers to produce a new list with one fewer number. They repeat this until only a single number is left. For example, one instance of the game (when N=4) might go like this:
Write a program to help FJ play the game and keep up with the cows.
3 1 2 4 4 3 6 7 9 16Behind FJ's back, the cows have started playing a more difficult game, in which they try to determine the starting sequence from only the final total and the number N. Unfortunately, the game is a bit above FJ's mental arithmetic capabilities.
Write a program to help FJ play the game and keep up with the cows.
Line 1: Two space-separated integers: N and the final sum.
Line 1: An ordering of the integers 1..N that leads to the given sum. If there are multiple solutions, choose the one that is lexicographically least, i.e., that puts smaller numbers first.
4 16
3 1 2 4
Explanation of the sample:
There are other possible sequences, such as 3 2 1 4, but 3 1 2 4 is the lexicographically smallest.
题意:1.输入一个N,结果被限制为:只能是1到N的整数,而且只能有N个整数(即限定范围,又限定数量)
2.要求求出这N个数的排列,使他们按照类似杨辉三角型的规则进行相加后,结果为sum
题解:next_permutation()全排列函数的运用直至1~n中有一种排列使得最后结果为sum就结束
#include<iostream>#include<algorithm>using namespace std;int main(){int n;int sum;int a[15];intarr[15][15];while(cin>>n>>sum){for(int i=0;i<n;i++)a[i]=i+1;do{for(int j=0;j<n;j++)arr[0][j]=a[j];for(int i=1;i<n;i++)for(int j=0;j<n-i;j++)arr[i][j]=arr[i-1][j]+arr[i-1][j+1];if(arr[n-1][0]==sum)break;}while(next_permutation(a,a+n));for(int i=0;i<n;i++)cout<<a[i]<<" ";cout<<endl;}return 0;}
阅读全文
0 0
- Backward Digit Sums(全排列next_permutation)
- Backward Digit Sums (全排列 + 暴力)
- POJ 3187 Backward Digit Sums (dfs全排列)
- poj 3187 Backward Digit Sums (全排列)
- poj Backward Digit Sums 3187 (全排列)
- POJ 3187 Backward Digit Sums (全排列)
- POJ 3187- Backward Digit Sums(DFS+全排列)
- bzoj 1653: [Usaco2006 Feb]Backward Digit Sums(全排列)
- poj 3187 Backward Digit Sums (全排列)
- Backward Digit Sums --- DFS+全排列
- poj 3178 Backward Digit Sums (全排列)
- POJ3187 Backward Digit Sums【全排列+暴力】
- Backward Digit Sums(poj3187)(STL next_permutation运用)
- POJ 3187 Backward Digit Sums(next_permutation()+ 组合数)
- POJ 3187 Backward Digit Sums (DFS 全排列)
- poj 3187 Backward Digit Sums 【全排列变形题】
- BZOJ 1653 USACO 2006 Feb Backward Digit Sums 全排列
- POJ 3187-Backward Digit Sums【全排列+找规律】
- 16.数据库对象----序列(sequence)
- [leetcode]105. Construct Binary Tree from Preorder and Inorder Traversal@Java解题报告
- JS_return、return false的区别
- H5面试题---new操作符具体干了什么呢?和null和undefined的区别?
- Android奇葩说(持续更新中...)
- Backward Digit Sums(全排列next_permutation)
- 远程服务过程
- Java接口的概念
- 17.数据库对象----索引(index)
- H5---js有哪些内置对象?和介绍js的基本数据类型
- BZOJ 2823: [AHOI2012]信号塔 随机增量法
- vagrant查询虚拟机
- FTPrep, 22 Generate Parenthese
- Linux开发环境搭建与使用——Linux必备软件之Samba