当前位置: 首页 > news >正文

【排列问题】

问题:

已知某序列有n个元素,请编写程序打印出包含该序列所有元素的所有排列。

输入要求: 输入第1行为整数n,表示该序列元素的个数;第2行为n个整数,表示需要排列的序列元素。 

输出要求:输出若干行,每一行为包含序列所有元素的一种排列。

思路:

兄弟结点不重复,父子关系可重复

代码(中间的错误代码,但无法理解输出的产生):

#include<bits/stdc++.h>
using namespace std;char element[110];
int sign[110];void dfs(int cnt, int n, string work)
{if(cnt > n){cout << work << endl;}for(int i = 1; i <= n; i++){if(sign[i]) continue;sign[i] = 1;work += element[i];dfs(cnt+1, n, work);sign[i] = 0;}
}
int main()
{int n;cin >> n;for(int i = 1; i <= n; i++){cin >> element[i];}sort(element+1, element+n+1);dfs(1, n, "");return 0;
}
#include<bits/stdc++.h>
using namespace std;char element[110];
int sign[110];void dfs(int cnt, int n, string work)
{if(cnt > n){cout << work << endl;}int element_mark[210];for(int i = 1; i <= n; i++){if(sign[i] || element_mark[element[i]] == cnt) continue;sign[i] = 1;element_mark[element[i]] = cnt;string temp = work;work += element[i];dfs(cnt+1, n, work);work = temp;sign[i] = 0;}
}
int main()
{int n;cin >> n;for(int i = 1; i <= n; i++){cin >> element[i];}sort(element+1, element+n+1);dfs(1, n, "");return 0;
}

正确代码:

#include<bits/stdc++.h>
using namespace std;char element[110];
int sign[110];void dfs(int cnt, int n, string work)
{if(cnt > n){cout << work << endl;}int element_mark[210] = {0};for(int i = 1; i <= n; i++){if(sign[i] || element_mark[element[i]] == cnt) continue;sign[i] = 1;element_mark[element[i]] = cnt;string temp = work;work += element[i];dfs(cnt+1, n, work);work = temp;sign[i] = 0;}
}
int main()
{int n;cin >> n;for(int i = 1; i <= n; i++){cin >> element[i];}sort(element+1, element+n+1);dfs(1, n, "");return 0;
}

感想:

要用解空间树来思考约束,要用搜索空间树来修改约束

相关文章:

【排列问题】

问题&#xff1a; 已知某序列有n个元素&#xff0c;请编写程序打印出包含该序列所有元素的所有排列。 输入要求&#xff1a; 输入第1行为整数n&#xff0c;表示该序列元素的个数&#xff1b;第2行为n个整数&#xff0c;表示需要排列的序列元素。 输出要求&#xff1a;输出若…...

token 无感刷新

什么是 token 无感刷新&#xff1f;为什么需要 token 无感刷新&#xff1f;让我们想象一下有这么个场景&#xff1a;你登录一个系统成功后&#xff0c;玩了 10 分钟&#xff0c;发现登录失效了&#xff0c;又要你重新登录&#xff0c;然后又过 10 分钟&#xff0c;又失效了&…...

Netty SSL双向验证

Netty SSL双向验证 1. 环境说明2. 生成证书2.1. 创建根证书 密钥证书2.2. 生成请求证书密钥2.3. 生成csr请求证书2.4. ca证书对server.csr、client.csr签发生成x509证书2.5. 请求证书PKCS#8编码2.6. 输出文件 3. Java代码3.1. Server端3.2. Client端3.3. 证书存放 4. 运行效果4…...

4.nginx反向代理、负载均衡

nginx反向代理、负载均衡 一、反向代理1、语法2、注意事项3、后端服务器记录客户端真实IP3.1 在nginx反向代理时添加x-real-ip字段3.2 后端httpd修改combined日志格式3.3 后端是nginx的情况 二、负载均衡 upstream模块1、负载均衡作用2、调度算法3、配置应用 一、反向代理 隐藏…...

浅谈申请小程序地理位置权限的正确打开方式

小程序地理位置接口有什么功能&#xff1f; 这篇内容会教大家如何快速申请“获取当前的地理位置&#xff08;onLocationChange&#xff09;”接口&#xff0c;以便帮助大家顺利开通接口。以下内容是本人经历了多次的申请经历得出来的经验&#xff0c;来之不易&#xff0c;望大家…...

make modules 和 make modules_install

1. make modules 如&#xff1a;make ARCHarm64 CROSS_COMPILEaarch64-linux-gnu- modules 直接make&#xff0c;不加任何参数&#xff0c;就是make all&#xff0c;包含make modules。 make modules是单独编译模块&#xff0c;驱动被配置成M的都是modules&#xff0c;modul…...

docker 安装mysql,redis,rabbitmq

文章目录 docker 安装ngnix&#xff0c;mysql,redis,rabbitmq安装docker1.安装下载docker-ce源命令2.安装docker3.查看版本4.查看docker状态5.启动docker6.测试安装ngnix 安装mysql8.0.361.拉取mysql镜像2.安装mysql8 安装redis1.拉取redis7.0.11镜像2.安装redis3.进入容器内部…...

Windows配置java环境JDK

配置jdk环境非常简单&#xff0c;大概有以下几步&#xff1a; 下载jdk安装&#xff0c;然后双击进行安装配置环境变量(也不是一定非要配置环境变量&#xff0c;配置环境变量的好处就是&#xff0c;在任何位置&#xff0c;系统都可以找到安装路径&#xff0c;非常实用且方便) …...

英伟达驱动重装教程

离线安装NVIDIA驱动程序通常涉及下载驱动程序安装包并手动执行安装步骤。以下是详细步骤: 1. 下载NVIDIA驱动程序 首先,你需要在有网络连接的计算机上下载适合你系统的NVIDIA驱动程序安装包。可以从NVIDIA官方驱动下载页面下载。 选择你的GPU型号和操作系统,然后下载相应…...

【蓝桥杯嵌入式】 第六届国赛

目录 题目 配置 注意事项 代码 - 默写大师 EEPROM读写函数 LED驱动函数 ADC采集 上电初始化 LCD 按键 PWM互补输出 全部代码 hardware.c hardware.h control.c control.h main.c 题目 配置 注意事项 复制LCD的工程&#xff0c;先配置资源 --- 勾选完选项一…...

图片裁剪与上传处理方案 —— 基于阿里云 OSS 处理用户资料

目录 01: 通用组件&#xff1a;input 构建方案分析 02: 通用组件&#xff1a;input 构建方案 03: 构建用户资料基础样式 04: 用户基本资料修改方案 05: 处理不保存时的同步问题 06: 头像修改方案流程分析 07: 通用组件&#xff1a;Dialog 构建方案分析 08: 通用组件&…...

迷你主机Esxi 6.7挂载新硬盘

背景 硬件&#xff1a;零刻SER Pro 6 系统&#xff1a;vmware Exsi 6.7.0 Update 3 现有的硬盘槽位占满了&#xff0c;但空间不够用&#xff0c;想要通过USB外接移动硬盘来进行扩容。使用了一块250G的硬盘做测试。 步骤 TL;DR # 停止usbarbitrator服务 /etc/init.d/usbarbi…...

解决VSCode右键没有Open In Default Browser问题

在VSCode进行Web小程序测试时&#xff0c;我们在新建的HTML文件中输入 !会自动生成页面代码骨架&#xff0c;写入内容后&#xff0c;我们想要右键在浏览器中预览。发现右键没有“Open In Default Browser”选项。原因是没有安装插件。 下面是解决方案&#xff1a;首先在VSCode找…...

httpsok-v1.12.0支持LB证书自动部署

&#x1f525;httpsok-v1.12.0支持LB证书自动部署 介绍 httpsok 是一个便捷的 HTTPS 证书自动续签工具&#xff0c;基于全新的设计理念&#xff0c;专为 Nginx 、OpenResty 服务器设计。已服务众多中小企业&#xff0c;稳定、安全、可靠。 一行命令&#xff0c;一分钟轻松搞…...

基于Pytorch框架的深度学习EfficientNetV2神经网络中草药识别分类系统源码

第一步&#xff1a;准备数据 5种中草药数据&#xff1a;self.class_indict ["百合", "党参", "山魈", "枸杞", "槐花", "金银花"] &#xff0c;总共有900张图片&#xff0c;每个文件夹单独放一种数据 第二步&a…...

网络协议。

一、流程案例 接下来揭秘我要说的大事情&#xff0c;“双十一”。这和我们要讲的网络协议有什么关系呢&#xff1f; 在经济学领域&#xff0c;有个伦纳德里德&#xff08;Leonard E. Read&#xff09;创作的《铅笔的故事》。这个故事通过一个铅笔的诞生过程&#xff0c;来讲述…...

Excel单元格格式无法修改的原因与解决方法

Excel单元格格式无法更改可能由多种原因造成。以下是一些可能的原因及相应的解决方法&#xff1a; 单元格或工作表被保护&#xff1a; 如果单元格或工作表被设置为只读或保护状态&#xff0c;您将无法更改其中的格式。解决方法&#xff1a;取消单元格或工作表的保护。在Excel中…...

CasaOS玩客云安装全平台高速下载器Gopeed并实现远程访问

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

JAVA学习-练习试用Java实现“最长回文子串”

问题&#xff1a; 给定一个字符串 s&#xff0c;找到 s 中最长的回文子串。 示例 1&#xff1a; 输入&#xff1a;s "babad" 输出&#xff1a;"bab" 解释&#xff1a;"aba" 同样是符合题意的答案。 示例 2&#xff1a; 输入&#xff1a;s …...

深入探索Qt框架系列之信号槽原理(三)

前面两篇分别介绍了QObject::connect和QMetaObject::Connection&#xff0c;那么信号槽机制的基础已经介绍完了&#xff0c;本文将介绍信号槽机制是如何从信号到槽的&#xff0c;以及多线程下是如何工作的。 信号槽机制源码解析 1. 信号的触发 以该系列的第一篇文章中的示例举…...

AI绘图技能解析:用自然语言驱动Excalidraw自动生成图表

1. 项目概述&#xff1a;一个为Excalidraw注入AI灵魂的绘图技能如果你经常用Excalidraw画流程图、架构图或者白板草图&#xff0c;那你一定体会过那种“想法很丰满&#xff0c;画笔很骨感”的尴尬。脑子里明明有一个清晰的系统架构&#xff0c;但落到画布上&#xff0c;光是调整…...

【ElevenLabs匈牙利语音实战指南】:2024最新API调用、音色微调与本地化合规避坑全解析

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs匈牙利语音支持概览与本地化价值定位 ElevenLabs 自 2024 年 3 月起正式引入匈牙利语&#xff08;hu-HU&#xff09;语音合成支持&#xff0c;成为其首批覆盖的中东欧语言之一。该能力依托于…...

安得医疗冲刺港股:年营收9亿,利润1.5亿 上海亿瑞控制41%股权

雷递网 雷建平 5月16日山东安得医疗用品股份有限公司&#xff08;简称&#xff1a;“安得医疗”&#xff09;日前递交招股书&#xff0c;准备在港交所上市。截至2023年、2024年及2025年12月31日止年度&#xff0c;安得医疗分别宣派及派付股息6670万元、4670万元及4000万元。年营…...

2026运营经理学习数据分析对职场能力提升的影响

一、数据分析在运营管理中的核心价值数据分析能力帮助运营经理优化决策流程&#xff0c;通过数据驱动的方法提升业务效率。掌握用户行为分析、市场趋势预测等技能&#xff0c;能够更精准地制定运营策略。数据可视化工具&#xff08;如Tableau、Power BI&#xff09;的应用&…...

Shinkai Node:构建自主AI Agent的去中心化操作系统内核

1. 项目概述&#xff1a;Shinkai Node 是什么&#xff0c;以及它为何值得关注最近在跟一些做AI应用开发的朋友聊天&#xff0c;发现大家普遍面临一个痛点&#xff1a;如何让AI Agent&#xff08;智能体&#xff09;真正“活”起来&#xff0c;拥有持续的记忆、自主的行动能力&a…...

基于五年一线体验,青岛二胎家庭收纳系统的真相

一、行业痛点分析在收纳领域&#xff0c;二胎家庭面临着诸多核心技术挑战。数据表明&#xff0c;超过70%的二胎家庭在装修时未充分考虑未来的收纳需求&#xff0c;导致入住后空间拥挤、物品杂乱无章。青岛三木空间设计在五年的一线服务中发现&#xff0c;很多二胎家庭存在以下问…...

OpenAI GPT Image 2文字准确率95%,企业视觉硬核生产力4大核心升级与商业落地路径

GPT Image 2的4大核心升级能力1. 文字渲染准确率接近95%&#xff0c;多语言直出即用过去用AI生图&#xff0c;最头疼的就是文字。写个中文标题&#xff0c;十次有八次是乱码&#xff0c;英文稍微长一点也会出错。而GPT Image 2的文字渲染准确率做到了接近95%&#xff0c;支持中…...

PPO算法终极实战指南:基于PyTorch的强化学习完整解决方案

PPO算法终极实战指南&#xff1a;基于PyTorch的强化学习完整解决方案 【免费下载链接】PPO-PyTorch Minimal implementation of clipped objective Proximal Policy Optimization (PPO) in PyTorch 项目地址: https://gitcode.com/gh_mirrors/pp/PPO-PyTorch PPO-PyTorc…...

手把手教你用Vivado 2020.1给MicroBlaze工程挂上DDR3内存(附完整IP核配置流程)

从BRAM到DDR3&#xff1a;MicroBlaze系统内存扩展实战指南 在FPGA嵌入式开发领域&#xff0c;MicroBlaze处理器因其灵活性和可定制性成为众多项目的首选。当系统复杂度从简单的"Hello World"升级到需要处理大量数据时&#xff0c;片上BRAM的有限容量很快会成为瓶颈。…...

GNN与MLIP:材料科学计算的高效新方法

1. GNN与MLIP&#xff1a;材料科学计算的新范式在材料科学领域&#xff0c;传统的第一性原理计算&#xff08;如密度泛函理论DFT&#xff09;虽然精度高&#xff0c;但计算成本极其昂贵&#xff0c;难以处理大体系或长时间尺度的模拟。图神经网络&#xff08;GNN&#xff09;与…...