JXOI2018
发现自己不会T3可以退群了
排序问题(组合、模拟)
可以发现Gobo Sort相当于在所有排列中随机选择一个,所以当第\(i\)个数出现次数为\(a_i\)时,期望的Sort次数就是\(\frac{(n+m)!}{\prod\limits_{i=1}^{10^9} a_i!}\)。
我们希望Sort次数尽可能大,也就是能够让\([L,R]\)内的\(a_i\)尽可能平均。我们把所有\(a_i \neq 0 , i \in [L,R]\)的所有\(a_i\)扔进小根堆,每一次pop堆顶考虑其余的所有数是否能够加到当前堆顶的\(a_i\)的个数,如果不能就把剩下的平摊。
游戏(线性筛、组合)
实际会对最后答案产生影响的数\(x\)一定会满足\([l,r]\)内不存在比\(x\)小的\(x\)的因子。
所以通过线性筛先求出所有数的最小质因子,就可以求出所有会对答案产生影响的数,那么现在就是要求求出这些数中最后一个出现的数的出现位置的总和。
考虑枚举最后一个数出现的位置\(x\),那么\([x+1,len]\)里全部都是不产生影响的数,那么我们可以先选定后面\(y\)个数是不产生影响的数、前面乱排,减去后面\(y+1\)个数是不产生影响的数的方案数,就是从后往前第\(y+1\)个数是最后一个对答案产生影响的数的方案数。
守卫(DP)
不会做qwq
考虑:对于一个区间\([l,r]\),\(r\)位置一定会放一个保镖,把\(r\)所能够看到的所有位置删掉之后又会形成若干个区间,这些区间的右端点和右端点右边的点中一定要放一个保镖,这就变成了一个子问题。
所以可以考虑DP。设\(f_{i,j}\)表示区间\([i,j]\)的答案,转移先把所有\(j\)能看到的点拿出来,假设形成了区间\([l_1,r_1],[l_2,r_2],...,[l_k,r_k]\),那么转移就是\(f_{i,j} = 1 + \sum\limits_{i=0}^k \min(f_{l_i,r_i} , f_{l_i,r_i+1})\)。
这样转移是三方的不够优秀,但是注意到对于区间\([i,j]\)的不能看到的区间一定是区间\([l,j](l<i)\)的看不到的区间的子集,所以可以先固定右端点扫左端点,对于已经形成的不能看见的区间直接将答案贡献进去,这样复杂度就降为\(O(n^2)\)。
JXOI2018的更多相关文章
- 【JXOI2018】守卫
[JXOI2018]守卫 参考题解:https://blog.csdn.net/dofypxy/article/details/80196942 大致思路就是:区间DP.对于\([l,r]\)的答案, ...
- [JXOI2018]守卫
嘟嘟嘟 正如某题解所说,这题很有误导性:我就一直在想凸包. 随便一个数据,就能把凸包hack掉: 这样我们的点G就gg了. 所以正解是什么呢?dp. 题解看这位老哥的吧,我感觉挺好懂的:题解 P456 ...
- 【BZOJ5324】[JXOI2018]守卫(动态规划)
[BZOJ5324][JXOI2018]守卫(动态规划) 题面 BZOJ 洛谷 题解 既然只能看到横坐标在左侧的点,那么对于任意一个区间\([l,r]\)而言,\(r\)必须被选. 假设\(r\)看不 ...
- 【BZOJ5323】[JXOI2018]游戏(组合计数,线性筛)
[BZOJ5323][JXOI2018]游戏(组合计数,线性筛) 题面 BZOJ 洛谷 题解 显然要考虑的位置只有那些在\([l,r]\)中不存在任意一个约数的数. 假设这样的数有\(x\)个,那么剩 ...
- 【BZOJ5322】[JXOI2018]排序问题(模拟)
[BZOJ5322][JXOI2018]排序问题(模拟) 题面 BZOJ 洛谷 题解 这题就显得很呆. 显然就是每次找到\([l,r]\)中出现次数最小的那个数并且放一个. 然后随便模拟一下就好了Qw ...
- JXOI2018简要题解
JXOI2018简要题解 T1 排序问题 题意 九条可怜是一个热爱思考的女孩子. 九条可怜最近正在研究各种排序的性质,她发现了一种很有趣的排序方法: Gobo sort ! Gobo sort 的算法 ...
- [JXOI2018]游戏 (线性筛,数论)
[JXOI2018]游戏 \(solution:\) 这一道题的原版题面实在太负能量了,所以用了修改版题面. 这道题只要仔细读题,我们就可以将题目的一些基本性质分析出来:首先我们定义:对于某一类都可以 ...
- 5322: [Jxoi2018]排序问题
5322: [Jxoi2018]排序问题 链接 分析: 每次选一个出现次数最小的. 代码: #include<cstdio> #include<algorithm> #incl ...
- 【题解】JXOI2018游戏(组合数)
[题解]JXOI2018游戏(组合数) 题目大意 对于\([l,r]\)中的数,你有一种操作,就是删除一个数及其所有倍数.问你删除所有数的所有方案的步数之和. 由于这里是简化题意,有一个东西没有提到: ...
- 洛谷P4561 [JXOI2018]排序问题(二分 期望)
题意 题目链接 Sol 首先一种方案的期望等于它一次排好的概率的倒数. 一次排好的概率是个数数题,他等于一次排好的方案除以总方案,也就是\(\frac{\prod cnt_{a_i}!}{(n+m)! ...
随机推荐
- System.getProperty、PropConfig.loadConfig应用
1.获取项目下制定位置(System.getProperty("admin.root")): 在web.xml中配置webAppRootKey <context-param& ...
- Markdown 打出上下标
1. 打上标,下标 2<sup>10</sup> <!--下标--> 2.同时打上下标 $x^p_ {ij}$ <!--上标为p,下标为ij,{}是用来组合i ...
- Koa Cookie 的使用
Cookie 简介 cookie 是存储于访问者的计算机中的变量.可以让我们用同一个浏览器访问同一个域 名的时候共享数据. HTTP 是无状态协议.简单地说,当你浏览了一个页面,然后转到同一个网站的另 ...
- 刷题记录:[BUUCTF 2018]Online Tool
目录 刷题记录:[BUUCTF 2018]Online Tool 一.知识点 1.escapeshellarg和escapeshellcmd使用不当导致rce 刷题记录:[BUUCTF 2018]On ...
- 【Alpha】“北航社团帮”小程序v1.0项目展示
目录 1.团队介绍 2.回答一些工程问题 整个项目的目标和预期功能 整个项目的预期典型用户 整个项目的预期用户数量 alpha满足的用户需求 alpha用户量一览 团队分工及经验教训 团队项目管理 时 ...
- Windows server 2012 英文系统 中文软件显示乱码的问题
1.安装语言包 Start -> Control Panel -> Language 如果没有中文,请点击 Add a language 添加可能需要 联网下载语言包,按照要求下载即可 ...
- composer.json和composer.lock有什么区别?
我们在做项目的时候,总是要安装一些依赖.composer给我们提供了很多方便.直接运行composer install. 当我们运行composer install 将会读取composer.lo ...
- Python3之logging模块浅析
Python3之logging模块浅析 目录 Python3之logging模块浅析 简单用法 日志与控制台同时输出 一个同时输出到屏幕.文件的完成例子 日志文件截取 日志重复打印问题解决 问题分 ...
- 如何获取select下拉框中option选中的文本值
$(select的id或者class).change(function(){ $(this).find("option:selected").text() }) 源文:https: ...
- c++ 字符串时间格式转换为时间 判断有效期
转载:https://www.cnblogs.com/maphc/p/3462952.html #include <iostream> #include <time.h> us ...