#include <bits/stdc++.h>
using namespace std;
int c[13][13];//杨辉三角
int b[13];//用于排除
int a[13];//输出解答
int n, p;
void dfs(int dep, int s)
{
if (s > p)
return;
if (dep > n)
{
if (s == p)
{
for (int i = 1; i <= n; i++)
cout << a[i]<<" ";
exit(0);
}
return;
}
for (int i = 1; i <= n; i++)
{
if (b[i] == false)
{
b[i] = true;
a[dep] = i;
dfs(dep + 1, s +i * c[n][dep]);
b[i] = false;
}
}
}
int main()
{
cin >> n >> p;//输入
c[1][1] = 1;
for (int i = 2; i <= n; i++)
for (int j = 1; j <= i; j++)
c[i][j] = c[i - 1][j] + c[i - 1][j - 1];//生成杨辉三角
dfs(1, 0);
}

深度搜索的使用,关键就是想不到这个杨辉三角的表示,说实话做到这里就不是Mali的问题了。

int main()
{
int num = 1,a[6]= {1,2,3,4,5};
while(next_permutation(a,a+5))
{
for(int i=0; i<5; i++)
cout<<a[i]<<" ";
if(num==5)
break;
num++;
cout<<endl;
}
return 0;
}

next_permutation函数:若存在其他的排列,则返回真。直到整个序列降序排序为止。

洛谷P1118数字三角形,的更多相关文章

  1. 洛谷P1118 数字三角形游戏

    洛谷1118 数字三角形游戏 题目描述 有这么一个游戏: 写出一个1-N的排列a[i],然后每次将相邻两个数相加,构成新的序列,再对新序列进行这样的操作,显然每次构成的序列都比上一次的序列长度少1,直 ...

  2. 洛谷P1118 数字三角形【dfs】【STL】

    题目链接:https://www.luogu.org/problemnew/show/P1118 题意: 1~n的一个排列,相邻的两项加起来得到下一行. 现在给定最后一行的数字,问最初的1~n的排列是 ...

  3. 洛谷 - P1118 - 数字三角形 - next_permutation

    https://www.luogu.org/problemnew/show/P1118 next_permutation的第二个参数是最后一个元素的下一个元素,sort也是一样!有毒!这么低级的错误. ...

  4. 洛谷 P1118 数字三角形游戏 Label:dfs

    题目描述 有这么一个游戏: 写出一个1-N的排列a[i],然后每次将相邻两个数相加,构成新的序列,再对新序列进行这样的操作,显然每次构成的序列都比上一次的序列长度少1,直到只剩下一个数字位置.下面是一 ...

  5. 洛谷P1118数字三角形题解

    题目 这个题我们乍一看会有些熟悉.觉得是可以用DP来做的那个题.但是打眼一看,就会发现不对了.因为那个题是顺推而这个题则是逆推. 这样的话可怎么办呢. 我们可以在草稿纸上推一下,我们随便写个数n. 再 ...

  6. 洛谷P1216 数字三角形【dp】

    题目:https://www.luogu.org/problemnew/show/P1216 题意: 给定一个三角形.从顶走到底,问路径上的数字之和最大是多少. 走的时候可以往左下(实际上纵坐标不变) ...

  7. 洛谷P1216数字三角形题解

    题目 这道题是一个典型的DP,可以用倒推,顺推的方法,来解这道题.当然用不同的方法他的循环次序是不一样的,所以我们一定要深刻地理解题目的大意,再采用状态转移方程与边界每次求出最优解,并记录循环一遍后就 ...

  8. 洛谷P1553 数字翻转(升级版)

    题目链接 https://www.luogu.org/problemnew/show/P1553 题目描述 给定一个数,请将该数各个位上数字反转得到一个新数. 这次与NOIp2011普及组第一题不同的 ...

  9. 【洛谷P1118】数字三角形

    数字三角形 题目链接 4 16 3 1 2 4 3 1 2 4 (3+1) (1+2) (2+4)(3+1+1+2) (1+2+2+4) (3+1+1+1+2+2+2+4)16=1*3+3*1+3*2 ...

  10. 洛谷 P5660 数字游戏 & [NOIP2019普及组]

    传送门 洛谷改域名了QAQ 解题思路 没什么好说的,一道红题,本不想发这篇博客 ,但还是尊重一下CCF吧QAQ,怎么说也是第一年CSP呢! 用getchar一个个读入.判断.累加,最后输出即可. 不过 ...

随机推荐

  1. laravel service provider 1

    可以理解成分两步: 配置.register, 因为只有配置了才有被调用去register, 也许不配置直接在appserviceProvider里面可以直接生效.... service: 具体工作的类 ...

  2. curl:(6) Could not resolve host: baidu.com; Unknown error

    问题描述 有段时间没操作CentOS了,然后启动Virtualbox中的CentOS之后,发现网络不通,ping baidu.com 出现错误 curl:(6) Could not resolve h ...

  3. 简单生成excel文件

    import os import xlwt def save_to_excel(check_date, data): book = xlwt.Workbook(encoding='utf-8', st ...

  4. 整合log4j

    引入依赖 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId& ...

  5. Linux7重置root管理员密码

    1.先确定是否为rhel 7系统(别的系统我没有试过,请慎重尝试) cat /etc/redhat-release 查看Linux的操作系统 2.按键盘e键进入内核编辑界面 3.找到linux16这行 ...

  6. CompletableFuture的使用

    1 List<List<String>> subList = CommonUtils.splitList(pendingIds, 500);private static fin ...

  7. C#中Newtonsoft.Json.dll 的使用

    1.类库说明Newtonsoft.Json.dll是.NET 下开源的json格式序列号和反序列化的类库,利用此类库,可以方便地操作json数据,其中在反序列化时,可以直接将格式化的json数据处理成 ...

  8. monogo-shell

    创建集合 use person //创建数据库或进入数据库 db.createCollection(table_name) 主键 插入数据时会自动生成主键,保证每条数据唯一性 生成对象主键 > ...

  9. Python 的入门学习之 Day1~3 ——from”夜曲编程“

    Day 1(原点) time: 2021.7.29. 以下为补录内容: 今天是编程学习的第一天,很开心.Here is the place where I start, which belongs t ...

  10. 在Unity3D中开发的Sketch Shader

    Pencil Sketch Shader 特点 此素描渲染风格的Shader是顶点片元Shader,由本人手动编写完成. 此素描渲染风格的Shader已经在移动设备真机上进行过测试,可以直接应用到您的 ...