刷题——Backward Digit Sums POJ
来源:互联网 发布:kinect手势识别算法 编辑:程序博客网 时间:2024/06/05 22:32
/*
给定 n,sum
用从1开始到n的n个数,如下图一样,最后一个数为sum
3 1 2 4
4 3 6
7 9
16
利用全排列函数,筛选出最小的字典序数列
*/
#include <algorithm>
#include <stdio.h>
using namespace std;
int perm2[10];
int main()
{
int sum,n;
while(scanf("%d %d",&n,&sum)!=EOF){
for(int i=0;i<n;i++)
perm2[i]=i+1;
do{
int c[10];
for(int i=0;i<n;i++)
c[i]=perm2[i];
int m=n;
while(m){
for(int i=0;i<m-1;i++)
c[i]=c[i]+c[i+1];
m--;
}
if(c[0]==sum)break;
}while(next_permutation(perm2,perm2+n));
printf("%d",perm2[0]);
for(int i=1;i<n;i++)
printf(" %d",perm2[i]);
printf("\n");
}
return 0;
}
给定 n,sum
用从1开始到n的n个数,如下图一样,最后一个数为sum
3 1 2 4
4 3 6
7 9
16
利用全排列函数,筛选出最小的字典序数列
*/
#include <algorithm>
#include <stdio.h>
using namespace std;
int perm2[10];
int main()
{
int sum,n;
while(scanf("%d %d",&n,&sum)!=EOF){
for(int i=0;i<n;i++)
perm2[i]=i+1;
do{
int c[10];
for(int i=0;i<n;i++)
c[i]=perm2[i];
int m=n;
while(m){
for(int i=0;i<m-1;i++)
c[i]=c[i]+c[i+1];
m--;
}
if(c[0]==sum)break;
}while(next_permutation(perm2,perm2+n));
printf("%d",perm2[0]);
for(int i=1;i<n;i++)
printf(" %d",perm2[i]);
printf("\n");
}
return 0;
}
阅读全文
0 0
- 刷题——Backward Digit Sums POJ
- Backward Digit Sums POJ
- Backward Digit Sums POJ
- Backward Digit Sums POJ
- 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
- codevs1242 布局
- POJ 1067 取石子游戏 (威佐夫博奕 Wythoff Game 模板)
- c++语言--五大内存分区
- Zookeeper部署
- Unity 5 中的全局光照技术详解(建议收藏)
- 刷题——Backward Digit Sums POJ
- UVA 1149 Bin Packing
- hdu 6119 小小粉丝度度熊(尺取法)
- Markdown 和 HTML 标签混编功能测试
- 负数的二进制表示
- JAVA整形与字符串的转换
- 应该知道的LINUX技巧
- HDU
- DLL编程的导入导出,__declspec(dllimport),__declspec(dllexport)