题目

Description

FJ和他的奶牛们喜欢玩一种数字游戏:他们按某种顺序在纸上写下1~N(1<=N<=10)之间的所有数,然后把相邻的数字相加,得到一个比原数列少一项的数列。对新数列重复上述的操作,直到整个数列只剩一个数为止。N=4的时候,整个游戏的流程可能如下所示:

3 1 2 4
4 3 6
7 9
16
奶牛们很快不满足于这种简单的游戏,于是她们背着FJ玩起了另一个版本:对于给定的N以及最后剩下的数,求初始的数列。不幸的是,由于FJ的数学学得不是很好,这个游戏对于他来说是有些难度的。
请你写个程序来帮助FJ玩这个游戏,以保持他在奶牛们心中的地位。

Input

第1行: 包括2个用空格隔开的整数:N和这N个数字经过运算后的最终结果

Output

第1行: 输出一个完整包含1~N的长度为N的数列,它经过若干次相邻数加和的运算后能够得到输入中要求的结果。如果有多个数列符合要求,输出字典序最小的一个。也就是说,数列中位置靠前的数字要尽量小。

Sample Input

4 16

Sample Output

3 1 2 4

Data Constraint

Hint

【样例说明】
其他的数列经过以上运算,可能也能得到相同的结果,比如说3 2 1 4,但所有符合条件的数字串中,3 1 2 4是字典序最小的一个。

分析

易推是个杨辉三角,全排列jio

代码

 1 #include<iostream>
 2 using namespace std;
 3 int ff[100][100];
 4 int flag[10001],b[100];
 5 int n,sum,bj;
 6 void dfs(int f,int h)
 7 {
 8     if (h>sum||bj==1) return;
 9     if (f>n&&h==sum)
10     {
11         bj=1;
12         for (int i=1;i<=n;i++)
13            cout<<b[i]<<" ";
14     }
15     for (int i=1;i<=n;i++)
16     {
17         if (flag[i]==0)
18         {
19             flag[i]=1;
20             b[f]=i;
21             dfs(f+1,h+ff[n][f]*i);
22             flag[i]=0;
23         }
24
25     }
26 }
27 int main ()
28 {
29     cin>>n>>sum;
30     ff[1][1]=1;
31     for (int i=2;i<=21;i++)
32         for (int j=1;j<=i;j++)
33            ff[i][j]=ff[i-1][j-1]+ff[i-1][j];
34     dfs(1,0);
35 }

转载于:https://www.cnblogs.com/zjzjzj/p/10698921.html

JZOJ 2032. 数字游戏相关推荐

  1. 【DP】数字游戏(jzoj 2131)

    数字游戏 jzoj 2131 题目大意: 有n个数,每个数有相应的aia_iai​和bib_ibi​,当选了一个数后结果加上aia_iai​,其他数分别减去他们自己的aja_jaj​,现在让你选m个数 ...

  2. 用法 stl_51Nod 2160 数字游戏 STL基本用法

    目录 目录 1. 题目描述 1.1. Limit 1.2. Problem Description 1.3. Input 1.4. Output 1.5. Sample Input 1.6. Samp ...

  3. [蓝桥杯]PREV-23.历届试题_数字游戏

    问题描述栋栋正在和同学们玩一个数字游戏.游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈.栋栋首先说出数字1.接下来,坐在栋栋左手边的同学要说下一个数字2.再下面的一个同学要从上一个同学说的数字往 ...

  4. C语言经典小游戏---猜数字游戏 (包含C语言中如何实现随机数的生成)

    题目描述:输入1-100之间的数字,进行猜数字游戏,猜大猜小有提示,直至才对为止,游戏可以重复游玩. 算法思路: 1.用void函数分别写出菜单程序与游戏进程程序. 2.用switch-case-de ...

  5. 例题3-4 猜数字游戏的提示(Master-Mind Hints, UVa 340)

    实现一个经典"猜数字"游戏.给定答案序列和用户猜的序列,统计有多少数字位置正确 (A),有多少数字在两个序列都出现过但位置不对(B). 输入包含多组数据.每组输入第一行为序列长度n ...

  6. c语言猜数字游戏用while,【C语言基础】有趣的猜数字游戏。(while循环,if语句,switch语句)...

    要求:猜数字游戏的实现.代码如下:#include #include #include void menu() { printf("***************************** ...

  7. python猜年龄代码_python入门教程NO.7用python来写一个猜数字游戏

    python入门教程 本文涉及的python基础语法为while循环 #python#3中while语句常常被用于循环执行某个程序,任何非0和非空null的值,都会被条件判断为True while 条 ...

  8. Go-实现猜数字游戏代码

    实现猜数字游戏代码 1 package main 2 3 import ( 4 "fmt" 5 "math/rand" 6 "time" 7 ...

  9. 挣值管理不是搞数字游戏

    摘要: 要考PMP(Project Management Professional ),挣值管理是必考的知识.软件项目有很大的特殊性,不少人认为挣值管理不太适用于软件项目.挣值管理相关资料也比较超多, ...

最新文章

  1. 2. 编程规范和编程安全指南--C/C++
  2. MySQL数据库基本操作总结(不断更新中......)
  3. 如何利用数据来支撑设计?
  4. Vue+element-ui 实现表格的分页功能示例
  5. python的特征提取实验一_在opencv3中使用ORB进行特征提取实验-Python版
  6. c# 线向量生成多边形_python脚本实现abaqus前处理2D多晶粒建模(附完整源码)-Voronoi多边形的生成...
  7. springcloud gateway 使用nacos 动态过滤器 记一次线上网关升级cpu升高的问题
  8. junit4进行单元测试
  9. Lackey:一个示例工具
  10. 训练集、验证集和测试集的意义
  11. 如何极速极速搭建个人博客?Copy攻城狮用的这一招很优秀!
  12. 一个boost底下的线程池
  13. gflags的使用(转载)
  14. 【0x50「动态规划」例题】LCIS【最长公共上升子序列】
  15. 数学建模系列-优化模型(三)---排队论模型
  16. JAVA VM(HotSpot)
  17. Python函数初识
  18. ue4 无限地图_基于UE4的开放世界地图架构
  19. 基于Java语言的安卓程序编程之一环境搭建2
  20. Windows的文件命名长度的坑

热门文章

  1. 计算机基础知识和实践技能300分,2019年河北省高职单招考试十类 和对口电子电工类、计算机类联考 职业适应性测试(计算机基础知识和实践技能) 考试大纲...
  2. 公用网络怎么找不到计算机,Windows10网络里面看不到NAS或其它电脑怎么办?
  3. pinnacle studio 24旗舰版 新功能以安装教程
  4. Linux下用户态mktime实现参考
  5. SuperMap iDesktop实现室内导航
  6. unity音乐可视化
  7. Vert.x 与Springboot集成
  8. 揭秘“2020年度AI生产力创新奖”:清微智能3D人脸识别模组
  9. 机器学习两种方法——监督学习和无监督学习(通俗理解)
  10. neo4j spatial导入shpfile/OSM