poj 3187 Backward Digit Sums
来源:互联网 发布:期货软件开发 编辑:程序博客网 时间:2024/06/02 07:29
Backward Digit Sums
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: Accepted:
Description
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.
Input
Line 1: Two space-separated integers: N and the final sum.
Output
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.
Sample Input
4 16
Sample Output
3 1 2 4
Hint
Explanation of the sample:
There are other possible sequences, such as 3 2 1 4, but 3 1 2 4 is the lexicographically smallest.
AC代码如下:There are other possible sequences, such as 3 2 1 4, but 3 1 2 4 is the lexicographically smallest.
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int cont=0;int n,i,a[15],vis[15],sum,bj=0;void yz(){ int i,j,b[15]; for(i=0;i<n;i++) b[i]=a[i]; for(i=n-2;i>=0;i--) for(j=0;j<=i;j++) { b[j]+=b[j+1]; } if(b[0]==sum) bj=1;}int main(){ int i; scanf("%d%d",&n,&sum); memset(vis,0,sizeof(vis)); for(i=0;i<n;i++) a[i]=i+1; do { yz(); if(bj==1) { for(i=0;i<n-1;i++) printf("%d ",a[i]); printf("%d\n",a[i]); break; } } while(next_permutation(a,a+n)); return 0;}
1 0
- POJ 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- poj 3187 Backward Digit Sums
- POJ-3187-Backward Digit Sums
- poj 3187 Backward Digit Sums
- POJ-3187-Backward Digit Sums
- poj 3187 : Backward Digit Sums
- poj 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- POJ-3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- poj 3187 Backward Digit Sums
- poj 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- Backward Digit Sums(POJ-3187)
- Eclipse用法和技巧二十六:浅谈快捷键
- 交易总结、葛南维法则、银山谷、金山谷
- jquery 使滚动条滚动到一定位置后不在滚动
- 阿里云里的mysql安装
- 假如生活欺骗了你
- poj 3187 Backward Digit Sums
- Java I/O流 (一)---文件流的基本操作
- Linux shell 用法和技巧
- pthread多线程加速示例(大型矩阵乘法)
- JAVA 容器(一)-----综述
- 如何在ScrollView中嵌套ListView
- 南阳91 阶乘之和
- JAVA 容器(二)----List
- 【c++系列12】异常安全之auto_ptr