POJ 3187 Backward Digit Sums——————全排列暴力水题

Surface Pro 4/5/6/7保姆级黑苹果安装:从Windows分区到OC引导配置全流程(含EFI文件替换避坑) 本文详细介绍了在Surface Pro 4/5/6/7上安装黑苹果的全流程,包括Windows分区、OC引导配置和EFI文件替换等关键步骤。通过实战经验分享,帮助用户避开常见陷阱,实现Windows与macOS双系统完美共存,特别适合对黑苹果安装感兴趣的Surface Pro用户。 阅读详情

Backward Digit Sums

Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 10751 Accepted: 6056

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:

3   1   2   4

  4   3   6

    7   9

     16

Behind 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.

Source

USACO 2006 February Gold & Silver


FJ 和 他的奶牛们在玩一个心理游戏。他们以某种方式写下1至N的数字(1<=N<=10)。 然后把相邻的数相加的到新的一行数。重复这一操作直至只剩一个数字。比如下面是N=4时的一种例子

3   1   2   4

  4   3   6

    7   9

     16

在FJ回来之前,奶牛们开始了一个更难的游戏:他们尝试根据最后结果找到开始的序列。这已超过了FJ的思考极限。

写一个程序来帮助FJ吧

满足要求的一行序列。若有多种情况,输出字典序最小的一种

/*--------- Hongjie ----------*/
// #include<bits/stdc++.h>
#include<cstdio>
#include<iostream>
#include<cmath>
#include<string>
#include<cstring>
#include<algorithm>
#include<queue>
#include<map>
#include<bitset>
#include<set>
#include<vector>


using namespace std;
typedef long long ll;
typedef pair<int ,int> P;

const int INF  = 0x3f3f3f3f;
const int MAXN = 17;
int n,m;
int a[MAXN];
int b[MAXN][MAXN];
int main(){
        // freopen("../in.txt","r",stdin);
        // freopen("../out.txt","w",stdout);
        while(~scanf("%d %d",&n,&m)) {
                for(int i=1;i<=n;++i)
                        a[i] = i;
                do {
                        for(int i=1;i<=n;++i)
                                b[1][i] = a[i];
                        for(int i=2;i<=n;++i)
                                for(int j=i;j<=n;++j)
                                        b[i][j] = b[i-1][j] + b[i-1][j-1];
                        if(b[n][n]==m)
                        {
                                for(int i=1;i<=n;++i)
                                        printf("%d ",a[i]);
                                cout<<endl;
                                break;

                        }
                } while(next_permutation(a+1,a+n+1));
        }
        return 0;
}

《Autosar从入门到精通-实战篇》总目录_培训教程持续更新中... 欢迎大家订阅《Autosar从入门到精通-实战篇》,下方整理了相关博文的目录(单击蓝色字体即可跳转),方便大家获取。 本专栏旨在:扫除Autosar工具链配置过程中的障碍,加深对Autosar理论的理解。 温馨提醒: 如有疑问,可在博文的“评论区”给小编留言,进行技术交流(评论区开启了验证功能,审核通过后,会显示); 如有疑问,也可以通过博文中的第一个图片联系小编,获取专栏/博文的实时状态; 由于工作限制,仅做个人技术交流。添加好友时,请备注您的“姓名-公司-职务... 阅读详情

相关推荐

PaddleOCR PP-OCRv5实战:5分钟搞定身份证信息提取(附完整代码)

本文详细介绍了如何利用PaddleOCR的PP-OCRv5模型,在5分钟内快速搭建身份证信息提取流程。文章从环境搭建、核心代码实战出发,深入解析了PP-OCRv5针对证件识别的优化特性,并提供了从OCR结果到结构化数据的完整处理方案与避坑指南,帮助开发者高效实现AI驱动的自动化信息提取。

salt9的博客 782

Backward Digit Sums

Backward Digit Sums 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 wit...

Slatter的博客 489

Endnote 导入参考文献的时候,格式错误太多了。et.al错误,国标GBT7714在endnote中的详细配置教程,适用于本科,硕士论文文献插入的模板

EndNote插入文献常遇到以下错误主要如下: 等、et al不分; 英文作者全名大写; 期刊名字使用了缩写(图片里没有体现;卷号、期号缺失时出现乱码,多了半个括号;页码范围略去了相同部分;没有悬挂缩进,本文全部解决,全网最细

sakura的博客 3万+

POJ3187 Backward Digit Sums【全排列】

Backward Digit Sums Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7633   Accepted: 4397 Description FJ and his cows enjoy playing a mental game. They write

海岛Blog 1073

保姆级教程:Synology NAS共享文件夹从创建到权限设置的完整流程

本文提供了一份详尽的Synology NAS共享文件夹创建与权限设置指南。重点讲解了如何将NAS接入企业AD域,并利用域管理员账户进行集中身份验证和权限管理。文章从基础概念、域环境配置、文件夹创建、精细化权限分配到客户端访问与维护,完整覆盖了构建安全高效企业级文件共享空间的全流程,旨在帮助管理员实现便捷的团队协作与数据安全管理。

u9v0w的博客 552

利用运放设计简单有源滤波器(低通、高通、带通)

本文旨在帮助刚接触模电的同学快速设计一个实用可靠的运放,故我将不会说一些晦涩难懂的原理,只给出仿真电路图。

WeiTong0527的博客 3万+

Backward Digit Sums--POJ3187

《挑战程序设计第二版》

小菜鸟博客 271

使用trae自动生成前后端分离的web应用程序

使用ai自动生成前后端分离的web应用程序

一介书生 2524

POJ3187-Backward Digit Sums(穷竭搜索:全排列)

题目要求根据N和最终总和找出字典序最小的1到N排列,使得逐层相邻相加后的结果等于给定总和。当N较小时(≤10),可以通过枚举所有排列并模拟相加过程来求解。优化方法是利用杨辉三角系数预处理,计算每个排列的加权和,从而避免重复模拟相加。代码首先生成1到N的所有排列,然后检查哪个排列的加权和等于目标值,找到后立即输出即可保证字典序最小。两种实现方式(直接模拟相加或杨辉三角加权)均可通过,后者效率更高。

zaiyang遇见 987

基于Android13的系统启动流程分析(三)之FirstStageMain阶段

init进程是Android系统中用户空间的第一个进程,作为第一个进程,它被赋予了很多极其重要的工作职责,比如创建zygote(孵化器)和属性服务等。init进程是由多个源文件共同组成的,这些文件位于源码目录system/core/init1. Bootloader 引导当按下设备电源键时,最先运行的就是 bootloader(固化在ROM的程序),bootloader 的主要作用就是硬件设备(如 CPU、flash、内存)的初始化并加载到RAM,通过建立内存空间映射,为装载 Linux 内核做好准备,。

q1210249579的博客 5496

YOLO11后处理优化 | 引入DIoU-NMS替代传统NMS,解决高重叠目标误删,召回率大幅提升

YOLO11模型在密集目标场景下存在NMS后处理导致的漏检问题。本文提出采用DIoU-NMS替代传统NMS,通过引入中心点距离信息,有效区分重叠但不同的目标,提升召回率。文章详细分析了传统NMS的三大局限性,对比了Soft-NMS和DIoU-NMS的优劣,并给出在YOLO11中实现DIoU-NMS的完整代码方案。该方法特别适用于安防监控、自动驾驶等目标密集场景,能够在不显著增加计算量的情况下显著改善检测效果。

2601_95807009的博客 150

POJ 3187 Backward Digit Sums

POJ 3187题目大意如下: 一种智力游戏,给出一个数finalSum和自然数N,前者表示通过游戏规则得到的和,后者表示最开始一层可以使用的1~N这几个数 N最大可以到10,想到10!规模太大,所以一开始没有想到暴力,但是问题给出的条件太少,所以还是往暴力方向考虑,这种做法自己现在想还是有漏洞,如果不是测评系统给出的数据比较可以的话,1000MS以内应该完不成,以下是代码: #includ

kornberg_fresnel的博客 511

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

POJ 3187 Backward Digit Sums (全排列)

Backward Digit Sums Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5727   Accepted: 3320 Description FJ and his cows enjoy playing a mental game. They write

滴水穿石,慢慢积累,总会有成果 433

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

POJ 3187- Backward Digit Sums(DFS+全排列)

E - Backward Digit Sums Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 3187 Appoint description:  System Crawler  (2016-05-02)

梧桐下的四叶草 564

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C++用穷竭搜索解POJ3187_Backward Digit Sums问题

POJ3187 Backward Digit Sums 题目链接 简单理解一下题目: 给1-N的数列,类似于杨辉三角,两两相加得到新的数列,每一次加完数字个数就减少一个,但是和会增加,问这N个数字使得和为给定的sum的最小字典序排列。 简单分析一下题目: 这道题就是简单的暴力搜索,跟上一篇博客那道POJ2718的问题用的方法也一样,就是用next_permutation()全排列,由于这个函数是按照字典序来排列的,就可以很方便地解决题目需要的最小字典序排列问题。 AC代码: #include<iost

只想AC的博客 329

A - Backward Digit Sums(poj3187 全排列搜索)

传送门 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 numb...

_Alexander的博客 174

POJ 3187 - Backward Digit Sums

依然是非常暴力的DFS,1~n这n个数字,全排列一遍,找到第一个符合的排列就是答案。 #include #include using namespace std; int n,sum,num[11],finish=0; int cal() { int temp[11][11]; for(int i=0;i<n;i++) temp[1][i]=num[i]; for(int i=2;i<=n

Dilthey's Blog 366

(POJ 3187) Backward Digit Sums (递推+暴力)

FJ and his cows enjoy playing a mental game. They write down the numbers from 1 to N (1 &lt;= N &lt;= 10) in a certain order and then sum adjacent numbers to produce a new list with one fewer number. ...

alex1997222的博客 137

poj 3187 Backward Digit Sums

暴力搜索,用STL力的next_permutation很方便

hjlovecl的专栏 315

POJ3187 Backward Digit Sums【全排列+暴力】

Backward Digit Sums Time Limit:1000MS Memory Limit:65536K Total Submissions:7633 Accepted:4397 Description FJ and his cows enjoy playing a mental game. They write...

weixin_34112030的博客 108

poj3187Backward Digit Sums(暴力dfs)

题目请戳这里 题目大意:给一个n( 题目分析:最坏10!复杂度,直接爆搜啦,剪枝都免了,妥妥的 详情请见代码: #include #include #include #include using namespace std; const int N = 11; int lcm[N][N]; bool flag[N],ok; int n,sum; void dfs(int cur,in

ophunter的专栏 1386

Backward Digit Sums POJ3187

Backward Digit Sums Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6223 Accepted: 3602 DescriptionFJ and his cows enjoy playing a mental game. They write down the numbers from 1

neuike的博客 511
上一篇: POJ 3050 Hopscotch——————dfs
下一篇: HDU 6608 Fansblog——————大素数检测
陶鸿杰
博客等级 码龄9年 93粉丝 298原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值