2019 Multi-University Training Contest 8


C. Acesrc and Good Numbers

题意 \(f(d,n)\) 表示 1 到 n 中,d 出现的次数。求小于等于 x 的最大的 \(n\) 满足 \(f(d,n)=n\)。

做法

  • 令 \(g(d,n)=f(d,n)-f(n)\),我们要求小于等于 \(x\) 极大的零点。
  • 注意到 \(n>10^{12}\) 一定不存在零点。 [比赛时注意到了这点]
  • Big-Small 战法。
  • 取 B 等于 \(10^6\),求 \(g(d,x)\),可以将 \(x\) 写成 \(x=k*B + t\) 形式。\(t = x\%B\)
  • 按 \(k\) 值对 \(x\) 进行分块。
    • 如果 \(k\) 中有 d,那么 \(g(kB+t)\) 是关于 \(t\) 递增的。
    • 否则,\(|g(kB)|\) 不能太大,否则解体。

E. Acesrc and String Theory

solved by sdcgvhgj 284min -2
题意 求循环重复k次的子串的数量
做法

  • 枚举循环节大小len,那么合法串一定同时包含i和i+len两个位置
  • 计算左端点在\([i-len+1,i]\)的串包含i和i+len两个位置的合法左端点有哪些
  • 设i和i+len这两个前缀的最长公共后缀为k1,这两个后缀的最长公共前缀为k2
  • 那么合法位置的区间为\([max(i-len+1,i-k1+1),min(i,i+k2-(k-1)*len)]\)
  • k=1需要特判
  • 算后缀数组的时候字符串结束要置0,RE了两发

I. Calabash and Landlord

solved by sdcgvhgj 123min -4
题意 求两个矩形将平面划分成了几个联通块
做法

  • 枚举8个点两两中点check在哪些矩形中,算出不同包含关系的数量作为答案,WA
  • 意识到只包含在一个矩形中的区域可以有两块,rdc提出在3x3的格子合并联通块的做法,但感觉不太好写,选择在原代码基础上加两个判断,WA
  • 意识到应该枚举16个点的两两中点,或直接9个格子的中点,写错两发后AC

K. Roundgod and Milk Tea

solved by rdc, 63min -3

题意 \(n\) 个班级,第 \(i\) 个有 \(a_i\) 个人,\(b_i\) 杯奶茶,每个人只能喝别的班的奶茶,输出最多能喝多少杯奶茶。

做法

  • 二分图最大匹配问题,Hall 定理。\(|M|=|U|-max_{S \subset U} (|S|-|N(S)|)\)
  • 对 \(U\) 进行讨论,要么为空集,要么为全集。

复盘

  • 一开始认为给每个人任意匹配一杯奶茶都是合法的。
  • 然后 WA,然后开始贪心匹配奶茶多的班级。
  • 很盲目。
  • 再盲猜 Hall 定理,就过了。
  • 比赛的时候想到的 Hall 定理是二分图存在完美匹配的充要条件,但还是不会证。
  • 题解中的做法,是 Hall 定理的推论。

2019 Multi-University Training Contest 8的更多相关文章

  1. 2019 Nowcoder Multi-University Training Contest 4 E Explorer

    线段树分治. 把size看成时间,相当于时间 $l$ 加入这条边,时间 $r+1$ 删除这条边. 注意把左右端点的关系. #include <bits/stdc++.h> ; int X[ ...

  2. 2019 Nowcoder Multi-University Training Contest 1 H-XOR

    由于每个元素贡献是线性的,那么等价于求每个元素出现在多少个异或和为$0$的子集内.因为是任意元素可以去异或,那么自然想到线性基.先对整个集合A求一遍线性基,设为$R$,假设$R$中元素个数为$r$,那 ...

  3. 2019 Multi-University Training Contest 7

    2019 Multi-University Training Contest 7 A. A + B = C 题意 给出 \(a,b,c\) 解方程 \(a10^x+b10^y=c10^z\). tri ...

  4. 2019 Multi-University Training Contest 1

    2019 Multi-University Training Contest 1 A. Blank upsolved by F0_0H 题意 给序列染色,使得 \([l_i,r_i]\) 区间内恰出现 ...

  5. 2019 Multi-University Training Contest 2

    2019 Multi-University Training Contest 2 A. Another Chess Problem B. Beauty Of Unimodal Sequence 题意 ...

  6. 2019 Multi-University Training Contest 5

    2019 Multi-University Training Contest 5 A. fraction upsolved 题意 输入 \(x,p\),输出最小的 \(b\) 使得 \(bx\%p&l ...

  7. HDU校赛 | 2019 Multi-University Training Contest 6

    2019 Multi-University Training Contest 6 http://acm.hdu.edu.cn/contests/contest_show.php?cid=853 100 ...

  8. HDU校赛 | 2019 Multi-University Training Contest 5

    2019 Multi-University Training Contest 5 http://acm.hdu.edu.cn/contests/contest_show.php?cid=852 100 ...

  9. HDU校赛 | 2019 Multi-University Training Contest 4

    2019 Multi-University Training Contest 4 http://acm.hdu.edu.cn/contests/contest_show.php?cid=851 100 ...

随机推荐

  1. Adapter适配器模式--图解设计模式

    第二章: Adapter 模式 Adapter模式分为两种: 1.类适配器模式 2.委托适配器 我看的是<图解设计模式>这本书,这小鬼子说的话真难懂,只能好好看代码理解. 先说适配器模式要 ...

  2. Quartz CronTrigger定时器表达式大全

    CronTrigger是基于Calendar-like调度的.当你需要在除星期六和星期天外的每天上午10点半执行作业时,那么应该使用CronTrigger.正如它的名字所暗示的那样,CronTrigg ...

  3. Postman系列一:Postman安装及使用过程中遇到的问题

    一:Postman的简介.下载安装及界面说明 1.Postman的简单介绍 Postman是一款强大的网页调试和发送网页HTTP请求的工具,Postman让开发和测试人员做API(接口)测试变得更加简 ...

  4. 【Java例题】7.3 线程题3-素数线程

    3.素数线程.设计一个线程子类,依次随机产生10000个随机整数(100-999):再设计另一个线程子类,依次对每一个随机整数判断是不是素数,是则显示:然后编写主类,在主函数中定义这两个线程类的线程对 ...

  5. JavaWeb——JSP开发2

    使用JSP+Servlet实现文件的上传和下载功能 1.文件模型 首先是文件本身,这里创建一个类记录文件的名字和内容: public class Attachment { private String ...

  6. Flink 源码解析 —— 如何获取 JobGraph?

    JobGraph https://t.zsxq.com/naaMf6y 博客 1.Flink 从0到1学习 -- Apache Flink 介绍 2.Flink 从0到1学习 -- Mac 上搭建 F ...

  7. 状压DP概念 及例题(洛谷 P1896 互不侵犯)

    状压DP 就是状态压缩DP.所谓状态压缩,就是将一些复杂的状态压缩起来,一般来说是压缩为一个二进制数,用01来表示某一元素的状态. 比如一排灯泡(5个) 我们可以用一串二进制01串来表示他们的状态 1 ...

  8. (十五)c#Winform自定义控件-键盘(二)

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...

  9. vscode 配置 nodejs 开发环境

    1.配置 cnpm 镜像 (国内淘宝镜像网速更快) npm install -g cnpm --registry=https://registry.npm.taobao.org 2.配置智能提示 安装 ...

  10. 前端小知识-js

    一.对象冒充 function student(name,age){ this.name = name; this.age = age; this.show = function(){ console ...