ssoj数字游戏

目录

题目描述

输入

输出

样例输入

 样例输出

提示

参考题解


题目描述

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

    3   1   2   4
      4   3   6
        7   9
         16

最后得到16这样一个数字。 现在想要倒着玩这样一个游戏,如果知道N,知道最后得到的数字的大小sum,请你求出最初序列a[i],为1~N的一个排列。若答案有多种可能,则输出字典序最小的那一个。

输入

 输入文件bds.in的第1行为两个正整数n,sum。

输出

> 输出文件bds.out包括1行,为字典序最小的那个答案。

样例输入

4 16

 样例输出
 

3 1 2 4

提示

对于40%的数据,n≤7;
 对于80%的数据,n≤10;

 对于100%的数据,n≤12,sum≤12345,且保证一定有解。

参考题解

#include<bits/stdc++.h>
using namespace std;
int n, sum;
int a[15], flag, yh[15][15];
bool v[15];
void ssoj()
{
    for(int i = 1; i <= n; i++)
    {
        cout << a[i] << " ";
    }
}
void dfs(int m, int ans)
{
    if(flag || ans > sum)
    {
        return;
    }
    if(m == n + 1 && ans == sum) 
    {
        ssoj();
        flag = 1;
        return;
    }
    for(int i = 1; i <= n; i++)
    {
        if(v[i] == 0)
        {
            a[m] = i;
            v[i] = true;
            dfs(m + 1, ans + i * yh[n][m]);
            v[i] = false;
        }
    }
        
}
int main()
{
    cin >> n >> sum;
    yh[1][1] = 1;
    for(int i = 2; i <= n; i++)
    {
        for(int j = 1; j <= i; j++)
        {
            yh[i][j] = yh[i - 1][j - 1] + yh[i - 1][j];
        }
    }
    dfs(1, 0);
    return 0;
}


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Postman是一款常用的API开发和测试工具,可以用于发送HTTP请求并查看响应结果。在Postman中,可以通过Authorization界面来设置请求的认证方式。 以下是使用Postman的Authorization界面进行认证的步骤: 1. 打开Postman应用程序,并创建一个新的请求。 2. 在请求的URL栏中输入需要发送请求的URL地址。 3. 点击右侧的"Authorization"选项卡,进入认证设置界面。 4. 在认证设置界面中,选择合适的认证类型。根据提供的引用内容,可以选择"OAuth 2.0"认证类型。 5. 在"OAuth 2.0"认证类型下,填写相应的认证参数。根据提供的引用内容,需要填写"Authorization URL"和"Access Token URL"。 - 在"Authorization URL"中,填写引用中提供的URL地址:http://localhost:8090/auth/oauth/authorize?client_id=ssoj-pc&response_type=token - 在"Access Token URL"中,填写引用中提供的URL地址:http://localhost:8080/oauth/token?code=6s9qUj&grant_type=authorization_code&redirect_uri=http://www.mayikt.com/callback&scope=all 6. 根据需要,填写其他相关的认证参数,例如"Client ID"、"Client Secret"等。 7. 点击"Get New Access Token"按钮,开始进行认证流程。 8. 根据认证流程的要求,可能需要输入用户名和密码等信息。 9. 完成认证流程后,会在界面上显示获取到的Access Token信息。 10. 点击"Use Token"按钮,将Access Token添加到请求的Header中。 11. 完成认证设置后,可以点击"Send"按钮发送请求,并查看响应结果。 请注意,以上步骤仅为示例,实际使用时需要根据具体的认证方式和参数进行设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值