Coders' Legacy 2020 题解
多测不清空,爆零两行泪。
多测不清空,爆零两行泪。
多测不清空,爆零两行泪。
后缀数组常数好大啊。
后缀数组常数好大啊。
后缀数组常数好大啊。
Chef vs Doof
略。
Doof on Cartesian
略。
Doof fires Brackets
为啥这题询问不也给一个 \(O(n)\) 的范围啊。
Jeremy gets a gift
bfs 都能写挂,真有我的。
Unique Substring
考虑用后缀数组求一下 \(rk\) 和 \(ht\) 数组,然后就是个二维数点。
好玩的事情发生了,我跑一组 \(5*10^5\) 的只要一点几秒,跑 \(10^5\) 组 \(5\) 的半分钟跑不出来,长教训了。
Perry learns Binary
\(or\) 操作是经典的线段树操作,对于查询给每个线段树节点套上一个 \(trie\) 就行。
多测不清空,爆零两行泪。
Phineas and Marks
博弈论好难啊,先鸽着,学会了再更新。
这个博主他没有鸽!!1
u1s1,慢慢分析找规律并不是很难...
这个问题是海盗分金问题加强版,分类标签是找规律和瞪眼法观察。下面阐述一下慢慢分析的过程。
题意简述:
有 \(n\) 个人,要分 \(m\) 个球,还会给出一个 \(k\), 要决定一个头领来分配球。
假设当前标号最大的人是头领,他会提出一个分配方案,每个人可以支持或者反对。
如果支持率达到了 \(50\%\),这个人就成为头领,方案也被采用。
如果支持率不到 \(50\%\),那么标号最大的 \(k\) 个人就会被干掉,如果不足 \(k\) 个人就会干掉所有人。
每个人想在保证自己不被干掉的情况下拿到尽量多的球,并在拿到尽量多的球的情况下干掉尽量多的人。
问最后的头领是谁,他自己最多能拿到几个球。
\(n,m,k\le10^9\)。
解题思路:
分 类 讨 论。
\(\Large{Ⅰ.n\le2*k:}\)
\(\large{①.n\le k:}\)
显然答案是 \((n,m)\)。
\(\large{②.k<n\le2*k:}\)
显然答案是 \((n,m)\)。
\(\Large{Ⅱ.2*k<n\le2*(k+m):}\)
可以通过抵消干掉 \(2*k\) 个,所以剩下 \(n-2*k\) 个中要贿赂 \(\lceil\frac{n-2*k}{2}\rceil\) 个来保命,最后答案是 \((n,m-\lceil\frac{n-2*k}{2}\rceil)\)。
\(\Large{Ⅲ.2*(k+m)<n:}\)
这个需要讨论细一点观察出规律。
大概有这么一个规律。
\(\large{①n\in[2m+2^ik+1,2m+(2^{i+1}-1)k]:}\)
这个时候第 \(n\) 个一定不是领队,需要找到一个 \(X\),使得 \(n-X*k\) 不在这个范围中,此时 \(n-X*k\) 要么在上面的情况中,要么就在下面的情况中,可以成为领队。
\(\large{②n\in[2m+(2^{i+1}-1)k+1,2m+2^{i+1}k]:}\)
这个时候第 \(n\) 个一定是领队,因为标号在 \([2m+2^ik+1,2m+(2^{i+1}-1)k]\) 中的人会无条件投给他,他只需要贿赂之前的人即可。
这样,我们就在 \(O(\log n)\) 的时间内解决了这个问题。
Coders' Legacy 2020 题解的更多相关文章
- CSP-J 2020题解
CSP-J 2020题解 本次考试还是很有用的,至少把我浇了一盆冷水. 当使用民间数据自测的时候,我就自闭了. 估分是320,但有些比较低级的错误直接少掉80. 而且这套题应该上350才正常吧,也不是 ...
- M-SOLUTIONS Programming Contest 2020 题解
M-SOLUTIONS Programming Contest 2020 题解 目录 M-SOLUTIONS Programming Contest 2020 题解 A - Kyu in AtCode ...
- atcoder Keyence Programming Contest 2020 题解
比赛地址 A 题意:给一个\(n*m\)的初始为白色的矩阵,一次操作可以将一行或一列染成 黑色,问至少染出\(k\)个黑点的最少操作次数. \(n\),\(m\)<=100,\(k\)<= ...
- CSP-S 2020 题解
赛后我重拳出击,赛场上我却爆零.哎. 题解本人口胡.有错请各位大佬们指出. A. 儒略日 这题是大型模拟题. 介绍两种写法:一种代码量致死(赛 场 自 闭),一种是非常好写的. 写法 1 我在赛场的思 ...
- CF 1131A,1131B,1131C,1131D,1131F(Round541 A,B,C,D,F)题解
A. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- 题解 P6622 [省选联考 2020 A/B 卷] 信号传递
洛谷 P6622 [省选联考 2020 A/B 卷] 信号传递 题解 某次模拟赛的T2,考场上懒得想正解 (其实是不会QAQ), 打了个暴力就骗了\(30pts\) 就火速溜了,参考了一下某位强者的题 ...
- 2020牛客寒假算法基础集训营5 部分题解(BDEH)
B: 牛牛战队的比赛地(二分做法)题意:二维平面给定n个点,在x轴找一点使得到n个点距离的最大值最小. 思路:我们可以将问题转化为在x轴找到一个圆心,使得该圆包含这n个点且半径最小,这样就变成了最小圆 ...
- [NOI 2020 Online] 入门组T1 文具采购(洛谷 P6188)题解
原题传送门 题目部分:(来自于考试题面,经整理) [题目描述] 小明的班上共有 n 元班费,同学们准备使用班费集体购买 3 种物品: 1.圆规,每个 7 元. 2.笔,每支 4 元. 3.笔记本,每本 ...
- 蓝桥杯大学B组省赛2020模拟赛(一)题解与总结
题目链接:https://www.jisuanke.com/contest/6516 A:题目: 我们称一个数是质数,而且数位中出现了 5 的数字是有趣的. 例如 5, 59, 457.求1到1000 ...
随机推荐
- Odoo13之在tree视图左上角添加自定义按钮
前言 首先展示效果图,如下图所示,在资产设备模块tree视图的左上角添加了一个同步资产的按钮. 要完成按钮的添加,分为四步,分别是: 1.编写xml文件,找到相关模型tree视图,并给模型tree视图 ...
- QTimer
目录 简述 详细说明 精度 替代QTimer 成员函数 信号 示例 简述 QTimer类提供了重复和单次触发信号的定时器. QTimer类为定时器提供了一个高级别的编程接口.很容易使用:首先,创建一个 ...
- OSCP Learning Notes - Exploit(7)
Pre-Exploit Password Attacks Tools: 1. ncrack Ncrack 0.6 ( http://ncrack.org )Usage: ncrack [Options ...
- Redis作为缓存可能会出现的问题及解决方案
Redis是个大话题,只要是去面试Java开发,几乎必问.基础一点的问Redis是什么东西?用来做什么?Redis支持哪些数据类型?Redis的性能为什么那么好?复杂一点的就会问到缓存穿透.缓存击穿. ...
- Linux常用命令归类总结
文件相关 创建文件 touch: touch README.md ">"重定向: echo 'study and share' > README.md vi & ...
- 获取DataGridview中某列的所有数据
/// <summary> /// /// </summary> /// <typeparam name="T"></typeparam& ...
- java 集合区别
TreeMap和TreeSet的区别 相同点: TreeMap和TreeSet都是有序的集合,也就是说他们存储的值都是排好序的. TreeMap和TreeSet都是非同步集合,因此他们不能在多线程之间 ...
- front-end——HTML5/CSS3基础
概述 1.什么是前端 前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页,随着互联网技术的发展,html5,css3,前端框架的应用,跨平台响应式网页设计能够适应各种屏幕分辨率,完 ...
- 在Windows上安装MySQL(转整)
MySQL安装 在Windows上安装MySQL.首先登录MySQL的官网下载安装包. 选择MySQL installer 这里选择第二个安装包下载即可. 下载完成之后就选择安装那个下载到的文件,基本 ...
- PHP checkdate() 函数
------------恢复内容开始------------ 实例 检查一些日期是否是有效的格利高里日期: <?phpvar_dump(checkdate(12,31,-400));echo & ...