FZU Monthly-201909 tutorial
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的更多相关文章
- FZU Monthly-201903 tutorial
FZU Monthly-201903 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 ABF G CH D E A. D ...
- FZU Monthly-201901 tutorial
FZU Monthly-201901 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 AHG F B CE D 编码难度 ...
- FZU Monthly-201906 tutorial
FZU Monthly-201906 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 AE B DG CF H A. X ...
- FZU Monthly-201905 tutorial
FZU Monthly-201905 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 AB H DG CE F A. C ...
- 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 ...
- Career Planning:Developers Best Practices Tutorial
This small tutorial is based on my past 16+ years of experience in software development industry. I ...
- [翻译+山寨]Hangfire Highlighter Tutorial
前言 Hangfire是一个开源且商业免费使用的工具函数库.可以让你非常容易地在ASP.NET应用(也可以不在ASP.NET应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于Windows ...
- Monthly Income Report – August 2016
原文链接:https://marcoschwartz.com/monthly-income-report-august-2016/ Every month, I publish a report of ...
- Django 1.7 Tutorial 学习笔记
官方教程在这里 : Here 写在前面的废话:)) 以前学习新东西,第一想到的是找本入门教程,按照书上做一遍.现在看了各种网上的入门教程后,我觉得还是看官方Tutorial靠谱.书的弊端一说一大推 本 ...
随机推荐
- Spring容器的refresh()介绍
Spring容器的refresh()[创建刷新]; 1.prepareRefresh()刷新前的预处理; 1).initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置 ...
- 字典排序MD5生成代码
/* * Project: payment.framework * * File Created at 2017年12月23日 * * Copyright 2016 CMCC Corporation ...
- MySQL添加用户、为用户分配权限
登录MySQL登录本地用户 mysql -u root -p登录外网用户(需要注意服务器可能只允许本地登录,需要修改响应的配置文件) mysql -u zhrt -h 10.64.6.4 -p添加用户 ...
- C#8.0——异步流(AsyncStream)
异步流(AsyncStream) 原文地址:https://github.com/dotnet/roslyn/blob/master/docs/features/async-streams.md 注意 ...
- 使用Kubeadm安装Kubernetes【单Master节点】
参考:Kubernetes官方文档 Kubernetes安装方案选择 Centos 7 配置科学上网 安装Calico网络插件 kubernetes-dashboard部署 Kubernetes ...
- python的with语法的深入理解
如果你有一些对象(比如一个文件.网络连接或锁),需要支持 with 语句,下面介绍两种定义方法. 方法(1): 首先介绍下with 工作原理 (1)紧跟with后面的语句被求值后,返回对象的“__en ...
- Java的常见术语(PO/POJO/VO/BO/DAO/DTO)
PO(persistant object) 持久对象在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库 ...
- 微博api接口登陆,获取信息,分享微博
import json from datetime import datetime import MySQLdb import requests from flask import Flask, re ...
- ZYNQ7000性能分析
提到自动驾驶,机器人视觉,高清摄像机,都要想到摄像头这个单元,先前本侠也讲过一些FPGA应用在高清摄像头和机器视觉中的深度摄像头以及双目摄像头等,FPGA在里面的作用主要是对采集的图像进行处理,对图像 ...
- centos 7 新机器安装部署配置
首先卸载openjdk,安装jdk 1.查看java版本 [lambert@localhost ~]$ java -version openjdk version "1.8.0_102&qu ...