FZU Monthly-201905 tutorial

题目(难度递增) easy easy-medium medium medium-hard hard
思维难度 AB H DG CE F

A. Chess

一道模拟题,很多人做不出来的原因是没有看懂题意。

题意重述:

  1. 商店中给出了一个LV1棋子出现的顺序序列,我们需要按照这个序列来购买所有的棋子。
  2. 我们最多可以存下16个棋子,每个棋子有一个种类,当有3个相同的棋子的时候,棋子就会升级,3个LV1变成LV2、3个LV2变成LV3.
  3. 当一种棋到达LV3时,就会被卖掉,之后商店中给出的所有该种棋子将会被略过。
  4. 当16个位置占满时,每次购买新棋子之前,我们要卖掉一个旧棋子。卖掉旧棋子的规则是:分析16个位置上所有棋子中,数量最少的是哪一种;如果有多种都是最少,就选择编号最小的那一种。随后卖掉一个被选中的那种棋子,优先卖出LV1棋子。统计某一种类棋子有多少个的时候,LV2棋子算是3个。

写法很多, 用map和priority_queue会比较简短一点。

B. Triangle

先说结论: 答案是最大和次大值的和。

简单的证明: 我们考虑把四个正三角形放到一个大的正三角形中,贪心地考虑的话,必然是有三个三角形紧贴大三角形的三个角,剩余的一个尖角朝下放在中间。
那么我们考虑最大的三角形放在什么位置。
如果最大的三角形被放置在中间,那么答案至少为2倍的最大三角形边长,否则放不下。在这种情况下,剩下的三个三角形必定能够被放到对应的位置。
如果最大的三角形被放置在某一个角上,我们继续考虑次大的三角形的位置。以此类推可以得出,答案是最大和次大三角形的边长和。

G. high

因为答案跟k的大小具有同样的递增关系,于是可以按照k的大小从大到小计算答案。对原数组离散化,然后从大到小将元素合并进并查集,过程中计算区间数量即可

H. longest-pattern

对S串跑kmp建next数组,把T串在next数组上跑最长匹配,匹配到的最长的除以S的长度即为答案。

负责人的致歉

对于这次月赛出现了一些问题,我感到十分的抱歉。

主要问题出现在H题上,由于H题的出题人没有严格手构数据卡掉一些不应该通过的算法,导致很多假算法都成功地通过了H题。本质问题还是本次月赛的时间安排略微仓促,恰逢省赛占用了一部分时间,导致验题时间安排不足,数据强度不够。

另外A的题面也存在一定问题。我在出A题时的考虑是根据某款游戏出一道相类似的简单模拟题,但是由于规则比较复杂,在题意的描述上出现了一定的纰漏,造成后续部分选手阅读题面存在困难。更主要的是,玩过这一款游戏的人,对于题意的理解会更偏向于正确的理解。 这一点从出题人的角度上看,就会忽略掉一些细节没有在题意中正确地表述;在做题人的角度上,就会造成一定程度的不公平。对此我感到十分的抱歉,今后会尽可能避免这一类型题目的出现。

FZU Monthly-201905 tutorial的更多相关文章

  1. FZU Monthly-201903 tutorial

    FZU Monthly-201903 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 ABF G CH D E A. D ...

  2. FZU Monthly-201901 tutorial

    FZU Monthly-201901 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 AHG F B CE D 编码难度 ...

  3. FZU Monthly-201909 tutorial

    FZU Monthly-201909 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 AB CD EF G H A. I ...

  4. FZU Monthly-201906 tutorial

    FZU Monthly-201906 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 AE B DG CF H A. X ...

  5. Microsoft Azure Tutorial: Build your first movie inventory web app with just a few lines of code

    Editor’s Note: The following is a guest post from Mustafa Mahmutović, a Microsoft Student Partner wh ...

  6. Career Planning:Developers Best Practices Tutorial

    This small tutorial is based on my past 16+ years of experience in software development industry. I ...

  7. [翻译+山寨]Hangfire Highlighter Tutorial

    前言 Hangfire是一个开源且商业免费使用的工具函数库.可以让你非常容易地在ASP.NET应用(也可以不在ASP.NET应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于Windows ...

  8. Monthly Income Report – August 2016

    原文链接:https://marcoschwartz.com/monthly-income-report-august-2016/ Every month, I publish a report of ...

  9. Django 1.7 Tutorial 学习笔记

    官方教程在这里 : Here 写在前面的废话:)) 以前学习新东西,第一想到的是找本入门教程,按照书上做一遍.现在看了各种网上的入门教程后,我觉得还是看官方Tutorial靠谱.书的弊端一说一大推 本 ...

随机推荐

  1. kylin安装过程问题排查

    问题:日志报错:/usr/local/apps/kylin/tomcat/conf/.keystore (没有那个文件或目录) 解决:在kylin内置tomcat的server.xml中里边有个对ht ...

  2. 把EXECL表格导入到WORD中

    一般我们在编写开发文档时需要进行表格导入导出,这里提供几种方法供参考. 法一: 打开EXECL,WORD软件,在需要导入表格的地方选择“插入” ,找到“对象选项: ”在对象对话框中点击“由文件创建”, ...

  3. vue 实现 rem 布局的 或者 vw 布局的方法

    vue 实现 rem 布局的 或者 vw 布局的方法 一.实现 rem 布局 移动端 <meta name="viewport" content="width=de ...

  4. css3中的calc的使用

    最近在布局的时候遇到一个问题,在页面中的左侧是侧边栏,右边是内容区域,内容区域中有一个固定定位的标签页,在设置固定定位的标签设置宽度的时候应该是内容区域的宽度,而固定定位的时候相对于是窗口的宽度,所以 ...

  5. RxJS——可观察的对象(Observable)

    可观察的(Observable) 可观察集合(Observables)是多值懒推送集合.它们填补了下面表格的空白: SINGLE MULTIPLE Pull Function Iterator Pus ...

  6. Junit测试。

    Junit使用: 白盒测试 步骤: 1.定义测试类. 2.定义测试方法:可以单独运行. 3.给方法加@Test,导入junit依赖环境. 判定结果: 红色:失败  绿色:成功. 一般不看输出,而是使用 ...

  7. 深入理解Java类加载器(一):Java类加载原理解析

    摘要: 每个开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这个异常背后涉及到的是Java技术体系中的类加载机制.本文简述了JVM三种预定义类加载器,即 ...

  8. 解决Android studio导航tools下没有android怎么打开DDMS工具

    因为这个功能用的人少, 新版本就去掉菜单入口了, 但这个功能并没有删除,打开方式:点开terminal ,也就是AS自带的命令行工具, 输入monitor 回车就启动了, 1.点开terminal 2 ...

  9. Django之REST_FRAMEWORK 认证组件

    Django之DRF之认证组件 # from rest_framework.views import APIView # APIView 中的 dispatch 中 执行的 self.initial( ...

  10. SCP免密传输和SSH登录流程详解

    SCP免密传输和SSH登录协议详解 在linux下开发时,经常需要登录到其他的设备上,例如虚拟机内ubuntu.树莓派等等,经常涉及到传输文件的操作,传输文件有很多中方法,如物理磁盘拷贝,基于网络的s ...