FZU Monthly-201909 tutorial

题目(难度递增) easy easy-medium medium medium-hard hard
思维难度 AB CD EF G H

A. IQ-spray

签到题
给喷雾按照恢复理智的量排个序,按量从多往少买即可。
O(N^2)的冒泡我们也放过去了。

B. OF-1 火山制造

这道题为临时更改,所以题面上漏洞较多,包括M,N,A,B不应该是正整数,而是自然数、M大于等于N时即可喷发,而不需要超过等,在此表示抱歉,至于该题的原题,你们应该能够在下次月赛见到。

这道题属于比较简单的细节题,但是按照出题人在现场观察的情况来看,大部分选手都在稿纸上讨论奇偶性问题,某些选手甚至写出了一百多行的代码,然而最快的一位仅7分钟就完成了这道题。

事实上这道题首先应该判断初始值是否已经喷发,随后考虑A即可,很简单的可以想到,如果AB都是0,那么肯定GG。进一步可以想到,如果A是0或者1时,如果B是奇数,那么会陷入死循环,也是GG,否则由于B是偶数,那么答案一定是偶数,剩下的交给暴力循环就可以了。

C. OF-EX1 演出继续

这道题的题意简单来说就是N个数中取出M个,使得这M个数方差最小,输出这个方差的M*M倍。本题中的“数”为一条直线上的二维点,和一维数字差别不大。

根据方差公式的变形,DX = E(X^2) - E(X) ^ 2,预处理前缀和即可在时限内完成此题。

这道题原本的定位是属于简单题,所以放在C的位置上,但是现场却没有人做出来。赛后询问原因,得到的回答包括忘记了方差公式、不确定是总体方差还是样本方差等等。有若干位选手已经很接近AC了,但是他们均只对横坐标进行排序,有一组数据是所有的点都在Y轴上,于是。。。。

D. move on circle

容易证明合并方式为某一个人的位置保持不动,两边的人向他靠拢,只要枚举不动的人,再枚举从顺时针方向与逆时针方向靠拢的分界线,分别统计两边的移动步数即可取和最小即可

E. treesum

树dp,对每个节点,分别有与子树有或无相连路径,根据子树的状态求根节点怎样构造路径使得两种状态下树的路径和最大即可

F. Mountain

我们知道一个无序序列通过交换相邻位置变换到有序序列的最小操作次数为该无序序列的逆序对数。那么问题就转换成构造一个单峰序列,使得其相较于初始位置的逆序对数最小。明显的贪心思路:先将所有山按高度从大到小排,然后每次取出一个山,看是放在已排好山峰的最左还是最右,判断标准就是看放入哪边所产生的逆序对数最小,这个用树状数组即可O(logn)求得。总时间复杂度O(nlogn)。

G. powerful bit operation

套路题
这题是一道2-sat的经典题,队员们有必要通过这题去学习一下2-sat。
由于是位运算,位之间的关系是独立的,可以想到要去逐位判断。
那么我们可以枚举矩阵的元素,获取原序列那两个数的一些关系:
1.如果是与运算得到的结果
1.1 0的情况,那么一个数取了1,另一个数就要取0
1.2 1的情况,两个数都得是1
2.如果是或运算得到的结果
2.1 0的情况,两个数都得是0
2.2 1的情况,那么一个数取了0,另一个数就要取1
3.如果是异或运算得到的结果
无论结果是0还是1,只要知道其中一位,那么另一位就固定了
上述关系都可以用一张有向图来表示,这样可以得到31张有向图,分别tarjan缩点判断有没有解就可以了,全部有解才输出Yes。
时间复杂度O(N^2),有个31的常数。

H. Dinner

​ 首先,可以先算出所有奇数号桌子摆菜的方案数C(m, n) * n!,且任意一种方案对其他偶数号桌子来说都是一样的。故可以假设奇数号桌子的摆菜方案为1、2、…、n。

​ 其次,在假设的基础上考虑偶数号桌子的摆菜方案,容易得到如下DP方程:

​ DP( i, j ) = sigma( DP( i - 1, k ) ) 其中,k 不等于 i, i + 1, j,j 不等于i, j不等于i + 1。

其中DP(i,j)表示当前摆到第i个桌子,且摆第j种菜的方案数。将上式展开后化简,即可O(n)递推。

​ 最后,ans = max( C( m, n ) * n! * sigma( dp(n - 1, k) ) )。

FZU Monthly-201909 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-201906 tutorial

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

  4. FZU Monthly-201905 tutorial

    FZU Monthly-201905 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 AB H DG CE F A. C ...

  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. Js中级复习

    JS中级复习—— 1,this   就是js的关键字 用途:指向某一个对象 如何判断this指向: 函数(方法)内—— 一种以函数的方式调用(不带.)this指向window 一种以方法的形式调用(函 ...

  2. java项目路径总结,java.io.File支持的路放方式

    1.直接输入路径 已maven项目为例,直接输入路径的4种方式,即是File类支持的方式: /** * FileOutpurStream以字节数组方式写入文件 * @throws IOExceptio ...

  3. Xinetd超级守护进程

    Xinetd超级守护进程 00.什么是xinetd服务 xinetd(extended Internet services daemon), 是新一代网络守护进程服务程序, 又叫超级守护进程. 经常用 ...

  4. H3C 无线交换机的数据转发原理

  5. 【爬虫】Condition版的生产者和消费者模式

    Condition版的生产者和消费者模式 threading.Condition 在没有数据的时候处于阻塞状态,有数据可以使用notify的函数通知等等待状态的线程运作 threading.Condi ...

  6. csv、json 文件读取

    1.CSV 文件存储 1.1 写入 简单示例 import csv with open('data.csv', 'a') as csvfile: writer = csv.writer(csvfile ...

  7. J2SE 容器

    知识点:Collection接口.Iterator接口.增强的for循环.Set接口.List接口和Comparable接口.Collection类.Map接口.自动打包/解包.泛型 容器:API文档 ...

  8. 离线环境下自动化部署python环境(含openssl)

    遇到有项目要在内网环境下安装python项目,所以空余时写了自动化部署python环境和python项目的脚本,由于项目涉密,这里仅提供自动化部署python环境的shell脚本,包括openssl的 ...

  9. Docker版zabbix

    1. docker-compose docker-compose :容器自带的编排工作,可以通过yaml编排文件,将容器要启动的命令写入文件,然后再利用docker-compose run file. ...

  10. 【使用DIV+CSS重写网站首页案例】CSS盒子模型

    CSS盒子模型 取值问题: 默认情况,padding.border.margin都为0: 设定区域内容的width和height,是区域内容框的尺寸: 如果设定padding/border/margi ...