橡沐出国留学旗下指定官方网站
唯寻国际教育

2020USACO真题解析 快救救奶牛叭

12-11
定制化留学指南

今天给大家分享一道与社交距离相关的2020USACO真题解析, 我们的老朋友Farmer John的奶牛正在饱受COWVID-19折磨,快点看看什么样的解题思路才能救它们吧。

2020USACO真题解析 快救救奶牛叭内容图片_1

什么是USACO竞赛?

USACO竞赛指的是美国计算机奥林匹克竞赛。是一项为国际学校生或者年龄更小的学员提供的在线竞赛。参加这项比赛将有效增加大学申请的竞争力。

由于编程的门槛相比数理化学习更高,USACO的含金量实际高于同类型的美国数学奥赛、美国化学奥赛等竞赛。因为大量的中国学员热衷于参加热门的美国数学奥赛、美国化学奥赛,所以USACO在中国的普及度并不高。这意味着参赛选手少,获奖选手也少,含金量自然更高。

2020USACO真题解析

题目:

一种新型疾病,COWVID-19,开始在全世界的奶牛之间传播。农夫John 正在采取尽可能多的预防措施来防止他的牛群被感染。

农夫John 的牛棚是一个狭长的建筑物,有一排共 N 个牛栏(2≤N≤105)。有些牛栏里目前有奶牛,有些目前空着。得知“社交距离”的重要性,Farmer John 希望使得 D 尽可能大,其中 D 为最近的两个有奶牛的牛栏的距离。例如,如果牛栏 3 和 8 是最近的有奶牛的牛栏,那么 D=5。

最近两头奶牛新来到 Farmer John 的牛群,他需要决定将它们分配到哪两个之前空着的牛栏。请求出他如何放置这两头新来的奶牛,使得 D 仍然尽可能大。Farmer John 不能移动任何已有的奶牛;他只想要给新来的奶牛分配牛栏。

解析:

输入(socdis1.in):

输入的第一行包含 N。下一行包含一个长为 N 的字符串,由 0 和 1 组成,描述牛棚里的牛栏。0 表示空着的牛栏,1 表示有奶牛的牛栏。字符串中包含至少两个 0,所以有至少有足够的空间安置两头新来的奶牛。

输出(socdis1.out):

输出 Farmer John 以最优方案在加入两头新来的奶牛后可以达到的最大 D 值(最近的有奶牛的牛栏之间的距离)。

2020USACO真题解析 快救救奶牛叭内容图片_2

如果我们希望加入新的2头奶牛之后,D尽量大,可以考虑找到2个最大的间隔,在他们中间分别插入2头奶牛。如样例的数据,2头奶牛应插入最大的2个间隔中间:

10001001000010--> 10x0100100x010

用这个方法实现代码,尽管样例是可以通过,但遇到只有一个间隔的数据就会报错。如:

000000000 --> x0000000x

100000001 --> 100x00x01

100000000 --> 1000x000x

000000001 --> x000x0001

这样,我们可以先处理只有一种间隔的情况。

伪代码:

answer = 0
if len(gaps) == 1:
    if barn[0] == barn[-1] == '0':      
        # 000000000 --> 100000001
    elif barn[0] == barn[-1] == '1':    
        # 100000001 --> 100100101
    else:                               
        # 000000001 --> 100010001   # 100000000 --> 100010001

对于有2个及以上的间隔,你可能马上会联想到,如果左边/右边是0开始的,需要特殊处理。

Case #1: 2头奶牛插入最左边和最右边的牛棚

000101000 --> x0010100x     D=2

Case #2: 1头奶牛插入最左边的牛棚,另一头插入最大间隔中间

000010001 --> x00010001 --> x00010x01      D=2

Case #3: 1头奶牛插入最右边的牛棚,另一头插入最大间隔中间

100010000 --> 10001000x --> 10x01000x      D=2

Case #4: 1头奶牛插入最左边的牛棚,并且去掉最右边的空牛棚,另一头插入最大间隔中间

0000100010 --> x00010001 --> x00010x01     D=2

Case #5: 1头奶牛插入最右边的牛棚,并且去掉最左边的空牛棚,另一头插入最大间隔中间

0100010000 --> 10001000x --> x00010x01     D=2

Case #6: 去掉最左边/右边的空牛棚,2头奶牛插入最大2间隔中间

01000100010 --> 100010001 --> 10x010x01     D=2

一开始,待进入牛棚的奶牛数是2(cnt=2)。处理左端点的时候,如果奶牛可以放到最左边的牛棚,则:

cnt = cnt - 1,

且gaps[0] = gap[0] - 1。

处理右端点的时候,如果奶牛可以放到最右边的牛棚,则:

cnt = cnt - 1,

且gaps[-1] = gap[-1] - 1。

之后根据待进入牛棚的奶牛数进行处理即可,只有cnt==0,cnt==1,cnt==2 三种情况。

伪代码: 

for i in range(N):

    cnt = 2    # 进入牛棚的奶牛数

   sorted_gaps = # 从大到小排列 gaps

    dist_2nd = sorted_gaps[1]

    if barn[0] == '0':

    if gaps[0] >= (dist_2nd + 1) // 2:

            ......

        else:

            ......

    if barn[-1] == '0':

   if gaps[-1] >= (dist_2nd + 1) // 2:

            ......

        else:

            ......

sorted_gaps=sorted(gaps,reverse=True)

  answer = sorted_gaps[-1] + 1       

    if cnt == 1:                       

        answer = ......

    elif cnt == 2:                     

        answer = ......

有关2020USACO真题的解析就到这里,如果你有更好的idea,欢迎和我们交流。

竞赛是进入知名大学的关键助力之一。纵观橡沐今年113位牛剑录取的学员,大部分学员手里都握着各种竞赛奖项:AMC,UKCHO,BBO、USACO......但竞赛毕竟只申请的环节之一,如果因为准备竞赛忽略了GPA进阶就得不偿失了。而且参加USACO的选手普遍年龄较小,更需要专业的导师让他们慢慢熟悉竞赛节奏,想让竞赛、GPA双赢,点击预约试听【橡沐竞赛复习班】——

知名大学海归一线竞赛导师授课

精准匹配同一学力考生

对知识模块进行全面系统教学

扫清学习过程中的各种障碍

帮助学员构建思维模型

全面启发竞赛思维

激发国际课程热情

2020USACO真题解析 快救救奶牛叭内容图片_3

更多竞赛复习攻略点击

USACO竞赛是什么 提升知名大学竞争力就靠它了

USACO竞赛2月赛真题解析,所有组别题目超全汇总



相关标签:
留学资料免费领取
开启buff留学之路
  • 英美留学规划时间轴
  • 牛剑面试sample
  • 牛津数学系面试真题解析
  • 剑桥雅思官方真题集
  • 33所大学申请指南
  • 牛津大学留学指南
  • 美国大学10年录取形势变化统计报告
  • 剑桥大学留学指南
  • QS300英国院校指南合集
  • 更多留学资料

橡沐导师团队

Candise Cai

牛津大学化学硕士

Chris Chen

帝国理工学院物理学士

Leo Li

剑桥大学物理硕士

Ruby Rui

剑桥大学经济系学士&双硕士学位

Elaine Xu

牛津大学数学与统计专业学士

Olivia Hu

纽卡斯尔大学语言学专业硕士

Irene Liu

约翰霍普金斯大学国际关系/国际经济硕士

Mini Liu

东南密苏里州立大学双硕士

Shanshan Yu

英国伦敦政治经济学院金融学硕士

Johnson Shao

布朗大学经济学和政治科学双学士

Max Liu

帝国理工大学生物病毒学硕士

Sally Wang

牛津大学三一学院工程科学学士&硕士

Sherry Lu

剑桥大学教育语言学硕士

Sue Pang

牛津大学经济与管理学士学位&LSE硕士

Lyu Lv

牛津大学三一学院工程科学本科&硕士

Jaryn Huang

牛津大学社会人类学专业哲学硕士

Peter Liu

牛津大学工程科学系荣誉硕士

Qianli Xia

剑桥大学数学系荣誉学士&硕士

Frances Zhu

牛津大学化学系荣誉学士&硕士

Fang Yuan

美国普渡大学生物工程荣誉学士

David Yang

剑桥大学化学工程专业荣誉学士&硕士

Zeman Liu

伦敦大学学院硕士
橡沐业务优势
  • 专业做牛剑/G5申请、牛剑笔面试培训,案例多数据全,经验丰富,筑梦牛剑/G5。
  • 众多牛剑+藤校等TOP院校背景导师,为您打造专属留学方案。英美留学绿色通道,个性规划,便捷申请。
  • 顾问师/规划师/课程导师/助教四位一体线上+线下服务闭环,让家长和学员放心。学习有方法,成长看得见。
  • ALevel/IB/AP/IGCSE国际课程辅导,牛剑/G5/藤校留学申请,竞赛背提培训,标化语言考试一体化服务。
荣誉源于实力
荣获腾讯《年度影响力在线教育品牌》
荣获新华社《口碑影响力课外辅导机构》
National Economics challenge 2020 Official Test Center
2018年度家长信赖在线教育品牌
留学教育行业"全国知名度"品牌机构
Oxford International AQA Approved Teaching School
雅思考试合作伙伴项目明日之星
荣获新浪《年度品牌影响力国际教育机构》
荣获腾讯《年度影响力在线教育品牌》
荣获新华社《口碑影响力课外辅导机构》
National Economics challenge 2020 Official Test Center
2018年度家长信赖在线教育品牌
相关文章推荐
7英美双申时间轴
  • 电话咨询
    全国统一咨询热线
    400-825-6055
    成功提交后我们将尽快与您联系,请注意来电哦!
  • 微信咨询

    微信咨询

  • 费用查询
    课程报价查询系统
    成功提交后我们将尽快与您联系,请注意来电哦!
  • 试听预约
    请选择您想试听的课程
    成功提交后我们将尽快与您联系,请注意来电哦!
立即领取