乒乓球比赛

news/2025/3/23 3:39:39/文章来源:https://www.cnblogs.com/Cheauncey/p/18785424

题目:乒乓球比赛(武汉大学机试真题):甲={'a','b','c'}、乙={'x','y','z'}两队进行比赛,一直a不和x比,c不和x和z比,请问所有可能的比赛安排

//应该使用全排列 列出所有的比赛结果,再输出满足要求的对局
//但还有一种取巧的方法实现 使用库函数next_Permutation(nums.begin(),nums.end())
int main(){vector<char> teamA={'a','b','c'};//index:0-x,1-y,2-z do{if('a'!=teamA[0]&&'c'!=teamA[0]&&'c'!=teamA[2])cout<<"xyz VS "<<teamA[0]<<teamA[1]<<teamA[2]<<endl;}while(next_permutation(teamA.begin(),teamA.end()));return 0;
}

输出结果:
用回溯法实现全排列,列出所有比赛的可能:

#include<iostream>
#include<vector> 
#include<string>
#include<algorithm>
using namespace std;
vector<int> path;
vector<vector<int>> finalPath;
bool* used = new bool[3];
void backtracking_FullPermutation() {if (path.size() == 3) {finalPath.push_back(path);return;}for (int i = 0; i < 3; i++) {if (!used[i]) {used[i] = true;path.push_back(i);backtracking_FullPermutation();path.pop_back();used[i] = false;}}
}
int main() {//a不打x c不打x,z vector<char> team = { 'x','y','z' };for (int i = 0; i < 3; i++)used[i] = false;backtracking_FullPermutation();for (auto c : finalPath) {if (c[0] != 0 && c[2] != 2 && c[2] != 0)cout << "abc vs " <<team[c[0]] << team[c[1]] << team[c[2]];}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/902532.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为开辟的赛道,终究也只有华为敢跑起来

3月20日,华为Pura先锋盛典召开。一部被称为阔折叠的华为Pura X正式亮相。之前外界对这款新品有诸多猜想,今天终于揭开了神秘面纱:这是一部看上去不太像手机的手机,很宽很“阔”。全新形态的产品打破了人们对手机的刻板印象,也给了手机未来更多的想象。同时作为首款全面搭载…

RANSAC---从直线拟合到特征匹配去噪

Ransac全称为Random Sample Consensus,随机一致性采样。该方法是一种十分高效的数据拟合方法。我们通过最简单的拟合直线任务来了解这种方法思路,继而扩展到特征点匹配中的误点剔除问题。 (注意,RANSAC不是直接用于特征点匹配,而是一种在初步特征匹配后消除误匹配的方法)…

3.19 CW 模拟赛 赛时记录

前言 还是那几句话 冷静, 耐心, 放下, 不浮躁 不贪跟策略, 数据检验, 关键步记录 看题 \(\rm{T1}\) 逆向思维一下就是加点, 然而事实上应该比较好做 \(\rm{T2}\) 还挺有礼貌, 但是这种题放到后面一点吧 \(\rm{T3}\) 这个题可以尝试一下, 多半是最优解性质的题 \(\rm{T4}\) 更是…

buuctf re pyre 写题日记

进入文件,下载文件,文件是pyc文件,放入基本的反汇编出其源代码看样子,还是python2编写的代码。 根据代码的逻辑逆向出其解密代码,第二段算法的逆向好些,就是逆着再异或一遍,第一段代码更具取模运算的性质,因为128%128=0,所以后面相当于直接加了个0,所以逆操作就是,i…

harmony OS NEXT-TypeScript

TS基础内容 1.1 TypeScript简介TypeScript是由微软开发,是基于JavaScript的一个扩展语言 TypeScript包含了JavaScript的所有内容,即:TypeScript是JavaScript的超能 TypeScript增加了:静态类型检查、接口、泛型等很多现代开发特性,因此适合更大型的项目开发 TypeScript需要…

Unreal最佳实践——TSharedRef和Ptr的使用和坑

A:管理比较麻烦的时候用,像slate这种用得就多 A:这种东西能不用还是别用,性能肯定是低的(低不了多少),还有一个是要注意循环引用 A:写一个ptr记得在destruction里面加一个,或者endplay加一下,就能避免泄漏问题 养成习惯就行了

用户说 | 零基础用通义灵码 AI 程序员开发个人笔记网站

通义灵码是一款基于通义大模型的智能编码辅助工具,支持自然语言生成代码、单元测试生成、代码注释生成等功能,兼容多种主流IDE和编程语言。对于零基础用户,只需通过自然语言描述需求,通义灵码即可自动生成代码,帮助快速开发个人笔记网站,极大简化开发流程,提升效率。作者…

harmony OS NEXT-通过用户首选项实现数据持久化

鸿蒙通过用户首选项实现数据持久化 1.1 场景介绍 用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。当用户希望有一个全局唯一存储的地方,可以采用用户首选项来进行存储。Preferences会将该数据缓存在内存中,当用户读取的时…

harmony OS NEXT-启动页开发

鸿蒙启动页开发 1.1 更改应用名称和图标 1.更改应用图标找到moudle.json5文件,找到应用启动的EntryAbility下面的icon,将原来的图标改成自己设置的即可2.更改应用名称3.效果展示2.1 广告页面开发3.1 详细介绍 3.1.1 启动页面 import { PrivacyDialog } from ../views/componen…

harmony OS NEXT–状态管理器–@State详解

鸿蒙Harmony--状态管理器--@State详解 1.1 定义 @State装饰的变量,或者称为状态变量,一旦变量拥有了状态属性,就可以触发其直接绑定UI组件的刷新。当状态改变时,UI会发生对应的渲染变化 ,@State装饰的变量,与声明式范式中的其他被装饰变量一样,是私有的,只能从组件内部访问。在…

harmony OS NEXTUI开发

UI开发 1. 布局概述 1.1 开发流程1.先确定开发流程 -> 2.分析页面元素构成 ->3.选用合适的布局容器组件1.3 布局元素组成:盒模型2.1 布局分类 2.1 线性布局线性布局是开发中最常用、最基础的布局,通过线性容器Row和Column构建2.1.1 线性布局子元素排列方向:主轴布局子…

harmony OS NEXT组件结构

组件结构 1. 认识基本的组件结构ArkTS通过装饰器@Component 和@Entry 装饰 struct 关键字声明的数据结构,构成一个自定义组件 自定义组件中提供了一个build函数,开发者需要在函数内以链式调用的方式进行基本的UI描述,UI描述的方法请参考UI描述规范srtuct-自定义组件基于stru…