2020 GDUT Rating Contest Ⅰ G.Livestock Lineup

博客介绍了如何运用next_permutation函数解决一个关于牛的名字排列问题,其中涉及字典序排列和特定限制条件。通过列举所有可能的8头牛的排列组合,并应用限制条件进行筛选,找到满足条件的最小字典序排列。
摘要由CSDN通过智能技术生成

G.Livestock Lineup

链接

题目描述
有八头有名字的牛,要求在满足限制条件的同时尽可能按照字典序从小到大输出他们的名字,限制条件的格式类似“ a牛 要在 b牛 旁边”这样。

题目分析
参考dl的代码后发现,有一个神奇的函数next_permutation(),可以让原序列变成离原序列最近而字典序又大于原序列的序列(语文能力有限见谅,想了解可看看大佬的博客)。

这题只有8头牛,最多也就4w左右种序列(8的阶乘),可以直接利用该函数列出可能的序列,再用限制条件判断,即可找出答案。

//本来还想一个个分别排好,思路混乱写了100行还是没过,丢人…

代码

#include <bits/stdc++.h>

using namespace std;

char cow[8][11]={
   "Beatrice","Belinda","Bella","Bessie","Betsy","Blue","Buttercup","Sue"};

struct beside{
   
	int a;
	int b;
};

beside be[8</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值