THUSC2017题解
THUSC2017题解
题目都是在LOJ上交的。
chocolate
这题看着就让人想起了百度之星复赛的\(T5\),就是这题。
因为种类的个数很多,所以把每个种类随意\(rand\)一个\([1,k]\)的权值做一个映射,这样子随机若干次的正确率就会很高。
接下来考虑如何计算要求的东西,这个东西很显然就是要求解一个中位数最小的斯坦纳树。
中位数显然直接二分处理掉,转为求解在用的块数最小的前提下的最小的大于中位数的值的个数。
斯坦纳树求解即可。
讲个卡常小细节,上面这个东西我们转移的时候显然是可以构建一个二元组转移,优先级较高的是块的个数,较低的是小于二分值的个数,这个东西哈希一下,给他们定义一个权值,如果小于二分值则给一个\(1001\),否则给个\(1000\),这样子也可以做到二元组的效果。
代码就戳提交记录吧,提交记录。
dls
考虑一个很暴力的想法,如果我们知道每个数的每个质因子的出现情况的奇偶性,把它压成一个二进制数,那么问题就转为了给你若干个二进制数,你要从中选出若干个数使得他们的异或和为\(0\),求解方案数。
那么构建线性基之后答案显然是\(2^{R-L+1-tot}\),其中\(tot\)是线性基中的元素个数。
问题在于怎么构建这个线性基,然后计算其中元素的个数。
如果\(R-L\)足够大的时候,我们就认为只要在\([L,R]\)之间出现过的质数就会被加入到线性基中。
否则\(R-L\)很小,我们把所有质因子全部找出来,然后暴力\(bitset\)构建线性基计算。
这个值大概取到\(6000\)左右就可以保证正确性了。
提交记录戳这里
seat
这题很明显就是一个费用流的模型。
但是如果直接爆力两两之间连边也是不可取的。
发现每个人可以坐的桌子是一段连续区间,
同时到每个座位的贡献也不同,那么把\(m\)个位置拆开,即现在有了\(m\)个\([1,n]\)的区间。
当前点可以向这些区间连边,那么就改为线段树优化连边,特定位置转到某个位置的贡献很好算,但是移动桌子的贡献就不好算了。
其实也不麻烦,假设当前这个人所在的桌子在他目标桌子的左边。
那么对于线段树的每个节点,如果要向右儿子走,必定会跨过所有左儿子,所以加上两倍左儿子大小的贡献。
反过来,如果在目标桌子的右侧的话,就是向左儿子走的时候产生贡献。
那么就再把每棵线段树拆成两棵,分别对应左儿子产生贡献以及右儿子产生贡献。
这样子一共维护\(2m\)棵线段树进行优化连边就好了。
注意一下,每次点向区间连边的时候,不需要对\(2m\)棵每棵都连边,只需要向它自己所在位置的那棵线段树连边就行了,最后再把同一个桌子上的相邻位置之间连费用为\(1\)的边就好了。
magic
说个小秘密,这题曾经被毒瘤\(wfj\_2048\)出到了\(NOIP2017\)模拟赛中。那个时候菜得不行的我连线段树都写不好还写这种题。。。。
不过现在看海星吧。
三个三元组之间互相关联,所以可以把操作都写成一个\(3*3\)的矩阵的形式,那么三个值就是一个\(1*3\)的行向量。然后线段树直接区间维护一下就好啦。
然而有些操作和区间长度相关,所以再加一维维护区间长度就好啦。
然而这题有点卡常,稍微注意一下常数上的优化。
提交记录戳这里
farben
看到本质不同的方案数肯定是\(Burnside\)引理了。
那么要求的就是对于每一种置换的不动点数量。
显然对于每种旋转\(d\)个元素的置换而言,其循环节大小为\(gcd(n,d)\)。
然后可以矩乘计算循环节长度为\(i\)时的方案数\(f[i]\)。
那么答案就是\(\frac{1}{n}\sum_{d|n}\varphi(\frac{n}{d})f[d]\)。
约数个数很少,甚至可以暴力,所以问题在于怎么求解\(f\)数组。
显然直接求是没办法了,所以提前打好表预处理出前面若干项,然后直接\(BM\)解递推式,再用线性齐次常系数递推那套理论就可以快速计算\(f\)的值了。
提交记录戳这里
tangent
题答题,先咕了。
THUSC2017题解的更多相关文章
- THUSC2017 Day1题解
THUSC2017 Day1题解 巧克力 题目描述 "人生就像一盒巧克力,你永远不知道吃到的下一块是什么味道." 明明收到了一大块巧克力,里面有若干小块,排成n行m列.每一小块都有 ...
- 【THUSC2017】【LOJ2981】如果奇迹有颜色 DP BM 打表 线性递推
题目大意 有一个 \(n\) 个点的环,你要用 \(m\) 中颜色染这 \(n\) 个点. 要求连续 \(m\) 个点的颜色不能是 $1 \sim m $ 的排列. 两种环相同当且仅当这两个环可以在旋 ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
随机推荐
- 输入input
用input接收到的类型全部都是字符串!!! 要查看变量类型,可以使用type()模块: 字符串不能和数字进行比较,因此如果输入是以input方式输入的,需要先转换成数字格式:
- [学习]UX 测试 5S 范围
最近被UX测试搞的死去活来的 郁闷坏了. 豆瓣上面有一个介绍: 好的框架总是简洁的. Strategy - Scope - Structure - Skeleton - Surface五个层面,用bo ...
- 《Effective C++》资源管理:条款13-条款17
条款13:以对象管理资源 为了防止资源泄漏,请使用RAII(Resource Acquisition Is Initialization)对象,在构造函数里面获得资源,在析构函数里面释放资源 auto ...
- Eclipse打开java文件繁体字
右键-->properties-->Resource-->Text file encoding, 改成utf-8 .
- Day 4-2 time & datetime模块
time模块. import time time.time() #输出: 1523195163.140625 time.localtime() # 获取的是操作系统的时间,可以添加一个时间戳参数 # ...
- 名称空间2.0path
Django 1点几跟2点几的区别 2.0path 是什么路径就是什么路径.第一个参数不再是正则表达式. 转换器 path的分组 <int:year> 匹配正整数 <str:year ...
- 关于IWMS后台登录问题总结
一.登录后台,点击登录无反应: 1.是因为网站文件夹没有权限,需要右击文件夹,将只读勾选去掉 2.在安全中加入Everyone对象. 二.登录后台后,左边显示不全,是因为会员权限不够,需要给权限.
- OSError: mysql_config not found
使用Python3开发一个管理平台,用MySQL数据库存放元数据.使用pip安装mysqlclient模块时出现“OSError: mysql_config not found”错误. 解决: # a ...
- extensions
extensions.blocklist.enabled
- 创建iview框架的项目
http://www.cnblogs.com/jf-67/p/8479176.html 在使用‘vue init webpack my-project’创建项目时,出现了错误 npm ERR! cod ...