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

STM32F103VET6实战:用W25Q64外部Flash实现Bootloader远程升级(含完整代码解析) 本文详细介绍了基于STM32F103VET6与W25Q64外部Flash的Bootloader远程升级实现方案,包含硬件选型、存储分区策略、双校验机制及完整代码解析。通过SPI接口实现固件存储与升级,适用于物联网设备开发,提升OTA功能可靠性。 阅读详情

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;
}

Android音频混音器AudioMixer实战:从多路输入到设备播放的完整流程解析 本文深入解析了Android平台上音频混音器AudioMixer的完整工作流程,涵盖从多路音频输入、轨道创建与配置、AudioBufferProvider数据源接入,到核心混音处理与最终设备播放的全过程。文章重点探讨了如何高效管理音频数据流、配置音量与重采样参数,并提供了缓冲区管理与性能优化的实战技巧,帮助开发者构建稳定、低延迟的音频应用。 阅读详情

相关推荐

从零搭建ROS机械臂仿真环境:Ubuntu 20.04+Noetic下配置睿尔曼RM65的完整流程

本文详细介绍了在Ubuntu 20.04系统中,基于ROS Noetic搭建睿尔曼RM65机械臂的完整仿真环境。从环境准备、工作空间创建到MoveIt!配置与Gazebo仿真环境集成,提供了完整的流程和优化建议,帮助开发者高效实现机械臂仿真与调试。

v6b7n8m9q0的博客 933

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

省三医院新门诊大楼网络安全建设项目实施方案

为了响应国家建设数字医疗,构建医联网、医共体的号召,新门诊大楼现有计算机网络,实现各门诊室、药房、医学影像科室及后勤科室的终端数据互通。在互联网出口以三层模式部署两台防火墙,作为连接公网的出口设备;出于等保合规和自身业务安全的考虑,现需要该网络上通过网络安全设备实现安全建设。公网出口防火墙,配置攻击防御策略,防御互联网上的病毒进入内网。公网出口防火墙配置攻击防御策略,防御外网对内网的入侵行为。服务器取得边界防火墙,配置攻击防御策略,入侵防御策略。公网出口防火墙配置入侵防御策略,防御外网对内网发起的D。

m0_63645854的博客 2013

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

MobaXterm结合SSH密钥对安全连接阿里云ECS的实战教程

本文详细介绍了如何使用MobaXterm结合SSH密钥对安全连接阿里云ECS的实战教程。通过对比传统密码登录的风险,重点讲解了密钥对的生成与配置、阿里云控制台的密钥绑定技巧,以及MobaXterm的高级设置和故障排查方法,帮助用户实现高效、安全的远程连接。

weixin_29208327的博客 466

避坑指南:锐浪报表PictureBox打印图像常见的5大问题及解决方案

本文深入剖析了锐浪报表(Grid++Report)中PictureBox控件打印图像时常见的五大难题,包括图像源加载机制、拉伸失真、动态加载失败、跨平台兼容性及性能优化。文章提供了从原理理解到实战解决方案的完整指南,帮助开发者有效规避图像打印中的常见陷阱,确保报表输出的稳定与高质量。

water的专栏 1148

Backward Digit Sums--POJ3187

《挑战程序设计第二版》

小菜鸟博客 271

Office系列完全干净卸载工具合集(最全)

使用 Microsoft Fix it 卸载 Microsoft Office 套件 一、Windows 7、Windows Vista或Windows XP下卸载Office 1.MicrosoftEasyFix50416 工具用来卸载office 2003 MicrosoftEasyFix50416_Office2003.msi 2.MicrosoftEasyFix50154 工具用来卸载office 2007 MicrosoftEasyFix50154_Office2007.msi 3.Microso

业精于勤,荒于嬉 3万+

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

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

zaiyang遇见 987

【STM32实物】基于STM32+ESP32+手机APP设计的智能宠物喂食系统

本文以STM32单片机为主控MCU,配有压力传感器、温湿度传感器、光照强度传感器、蜂鸣器等,设计了一款可以远程控制的宠物智能喂食系统。用户可以通过APP下达指令,控制宠物的喂食。每天可以根据设置的数据进行精准喂食,成本相对较低的宠物喂食装置。该装置使用步进电机控制投食仓门的开闭,通过压力传感器和时钟系统控制每日的投喂量和投喂时间。每次投食后蜂鸣器会提醒宠物进食,树立每日定点进食的习惯。经测试得出,该设备确实能实现每日定时定量投喂。系统整体运行顺畅,所有预期功能得以实现。它非常适合解决宠物主人不在家时影响宠物

嵌入式阿齐Archie 2万+

MTK-Android12开机应用自启需求-自定义原生Launcher3 主界面布局图标

MTK平台 Android12 版本 上实现 开机应用自启需求-自定义原生Launcher3 主界面布局图标。添加一个属性定义即可,如下:这里自定义一个属性目的是为了在加载Launcher3启动时候从属性获取需要自启动应用的包名,可以扩展动态替换 自启动包名。这里有两种方案,要么在Launcher3里面实现,要么在系统服务里面在开机时候启动第三方一次。这里强烈建议在Launcher3中去实现,体验效果更好。// 第一步:定义属性,// 第二步:在onCreate 方法中获取属性并启动应用。

十年饮冰,难凉热血 1376

POJ 3187 Backward Digit Sums

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

kornberg_fresnel的博客 511

YOLOv11改进有效涨点专栏目录 | 含卷积、主干、注意力机制、Neck、检测头、损失函数、二次创新C2PSA/C3k2等各种网络结构改进

Hello,各位读者们好.本文为最新YOLOv11有效涨点专栏目录,YOLOv11以及发布了一个月左右,这个过程中我也是给大家整理了许多的机制,其中包含了C3k2、主干(均支持根据yolov11训练的版本进行二次缩放,全系列都能轻量化)、检测头、注意力机制、Neck多种结构上创新,也有损失函数和一些细节点上的创新。

Snu77的博客 8万+

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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

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

只想AC的博客 329

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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、付费专栏及课程。

余额充值