news 2026/4/18 6:47:59

USACO历年青铜组真题解析 | 2019年12月Livestock Lineup

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
USACO历年青铜组真题解析 | 2019年12月Livestock Lineup

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总贴:USACO历年青铜组真题解析 | 汇总-CSDN博客


【题目来源】

洛谷:[P5833 USACO19DEC] Livestock Lineup B - 洛谷

【题目描述】

每天,Farmer John 都要给他的8 88头奶牛挤奶。她们的名字分别是 Bessie,Buttercup,Belinda,Beatrice,Bella,Blue,Betsy,和 Sue。

不幸的是,这些奶牛相当难以伺候,她们要求 Farmer John 以一种符合N NN条限制的顺序给她们挤奶。每条限制的形式为“X XX必须紧邻着Y YY挤奶”,要求奶牛X XX在挤奶顺序中必须紧接在奶牛Y YY之后,或者紧接在奶牛Y YY之前。

请帮助 Farmer John 求出一种满足所有限制的奶牛挤奶顺序。保证这样的顺序是存在的。如果有多种顺序都满足要求,请输出字典序最小的一种。也就是说,第一头奶牛需要是所有可能排在任意合法奶牛顺序的第一位的奶牛中名字字典序最小的。在所有合法的以这头字典序最小的奶牛为首的奶牛顺序中,第二头奶牛需要是字典序最小的,以此类推。

【输入】

输入的第一行包含N NN。以下N NN行每行包含一句句子,以 “X XXmust be milked besideY YY” 的格式描述了一条限制,其中X XXY YY为 Farmer John 的某些奶牛的名字(上文列举了八个可能的名字)。

【输出】

请用8 88行输出一个奶牛的顺序,每行输出一头奶牛的名字,满足所有的限制。如果由多种顺序符合要求,输出字典序最小的奶牛顺序。

【输入样例】

3 Buttercup must be milked beside Bella Blue must be milked beside Bella Sue must be milked beside Beatrice

【输出样例】

Beatrice Sue Belinda Bessie Betsy Blue Bella Buttercup

【算法标签】

《洛谷 P5833 Livestock Lineup》 #字符串# #USACO# #2019#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;intn;string a[9]={"","Bessie","Buttercup","Belinda","Beatrice","Bella","Blue","Betsy","Sue"};string b[10];intbook[10]={0};structnode{string x,y;}p[10];voiddfs(intstep)// 排列模板{if(step==8+1){// 排列退出条件intmark=0;// 定义标记位for(inti=1;i<=n;i++){// 遍历输入的n对相邻奶牛组合intpos1,pos2;// 查找两头奶牛的位置for(intj=1;j<=8;j++){// 找到后赋值给pos1和pos2if(b[j]==p[i].x)pos1=j;if(b[j]==p[i].y)pos2=j;}if(abs(pos1-pos2)!=1){// 如果位置之差的绝对值不为1,说明不相邻mark=1;// 修改markbreak;// 退出循环,之后走到return}}if(mark==0){// 如果两层循环下来确定n对奶牛都是相邻的,那说明符合条件for(inti=1;i<=8;i++){// 输出8头奶牛cout<<b[i]<<endl;// 注意换行输出}exit(0);// 退出程序}return;}for(inti=1;i<=8;i++){// 排列模板if(book[i]==0){b[step]=a[i];// 这里这里b[step]要赋值为选择的奶牛名称book[i]=1;dfs(step+1);b[step]="";// 还原现场book[i]=0;}}}intmain(){cin>>n;// 输入nstring tmp;// 定义临时字符串,接受输入多个字符串中的无效信息for(inti=1;i<=n;i++){// 遍历n次输入cin>>p[i].x>>tmp>>tmp>>tmp>>tmp>>p[i].y;// 记录相邻的奶牛组合}sort(a+1,a+8+1);// 对于8个头奶牛的名字按照字典序排序(这样排列出来的,就一定是按照字典序最小的排前面)dfs(1);// 排列模板return0;}

【运行结果】

3 Buttercup must be milked beside Bella Blue must be milked beside Bella Sue must be milked beside Beatrice Beatrice Sue Belinda Bessie Betsy Blue Bella Buttercup
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 5:17:43

嵌入式开发中Yocto镜像定制深度剖析

Yocto镜像定制实战&#xff1a;从零构建一个工业级嵌入式Linux系统你有没有经历过这样的场景&#xff1f;为一块i.MX8板子编译内核&#xff0c;配了三天设备树还是起不来&#xff1b;好不容易跑通&#xff0c;换到另一块STM32MP1平台又得重来一遍。更头疼的是&#xff0c;团队里…

作者头像 李华
网站建设 2026/4/17 14:15:13

Arrow叙事引擎:如何用可视化节点构建引人入胜的交互故事

Arrow叙事引擎&#xff1a;如何用可视化节点构建引人入胜的交互故事 【免费下载链接】Arrow Game Narrative Design Tool 项目地址: https://gitcode.com/gh_mirrors/arrow/Arrow 在游戏开发的世界里&#xff0c;最令人着迷的莫过于创造让玩家沉浸其中的故事体验。然而&…

作者头像 李华
网站建设 2026/4/15 19:40:13

Yuzu模拟器完全攻略:从下载到极速优化的完整指南

Yuzu模拟器完全攻略&#xff1a;从下载到极速优化的完整指南 【免费下载链接】yuzu-downloads 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu-downloads 还在为Yuzu模拟器的卡顿和闪退而烦恼吗&#xff1f;别担心&#xff01;这份2024年最新版Yuzu模拟器配置…

作者头像 李华
网站建设 2026/4/18 6:38:26

为什么ARM芯片更省电?arm架构和x86架构对比揭秘

为什么ARM芯片更省电&#xff1f;从手机到MacBook&#xff0c;架构差异背后的能效真相你有没有想过&#xff0c;为什么一部iPhone可以连续播放视频15小时&#xff0c;而一台轻薄笔记本即便“待机”一晚也会掉电一大截&#xff1f;苹果M系列芯片的横空出世&#xff0c;让越来越多…

作者头像 李华
网站建设 2026/4/18 6:36:50

没GPU如何学习ResNet18?云端1小时1块,学生党福音

没GPU如何学习ResNet18&#xff1f;云端1小时1块&#xff0c;学生党福音 引言&#xff1a;学生党的深度学习困境与破局方案 作为一名计算机视觉方向的应届毕业生&#xff0c;掌握ResNet这样的经典网络几乎是求职时的必备技能。但现实很骨感&#xff1a;学校机房显卡要靠抢&am…

作者头像 李华
网站建设 2026/4/18 6:38:38

AI万能分类器配置技巧:多GPU并行推理设置

AI万能分类器配置技巧&#xff1a;多GPU并行推理设置 1. 背景与需求分析 随着企业级AI应用的不断扩展&#xff0c;文本分类任务已从单一场景向多维度、高并发方向演进。无论是智能客服中的工单自动归类&#xff0c;还是舆情监控中的情感识别&#xff0c;都要求模型具备即时响…

作者头像 李华