ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

AGC001做题小记

2019-10-23 22:00:42  阅读:268  来源: 互联网

标签:连边 AGC001 题意 题解 最小 dbinom 做题 小记 字典


E. BBQ Hard

题意

给定 $ n $ 和数组 $ A $ , $ B $ , 求:

\[ \sum_{i≠j}\dbinom{A_i+A_j+B_i+B_j}{A_i+A_j} \]

$ n ≤ 200000 $ , $ A[i], B[i] ≤ 2000 $

题解

亮点在于模型转化。

考虑坐标平面上的 $ n $ 个点 $ (A_i, B_i) $ , $ \dbinom{A_i+A_j+B_i+B_j}{A_i+A_j} $ 就是从 $ (-A_i, -B_i) $ 走到 $ (A_j, B_j) $ 的方案数。

求和的话只是可以有多个起点而已。DP即可。

注意要去掉 $ (-A_i, -B_i) $ 走到 $ (A_i, B_i) $ 的贡献。

代码

F. Wide Swap

题意

给定 $ 1 $ ~ $ n $ 的一个排列 $ p $ 和整数 $ K $ , 每次可以选择两个数 $ i $ , $ j $ 满足 $ j - i ≥ K $ 且 $ abs(p_i - p_j) = 1 $ , 然后交换 $ p_i $ , $ p_j $ 。

问最小可以得到的字典序。

n ≤ 500000

题解

$ j - i >= K $ 这个限制非常难处理。所以我们转而在 $ p $ 的逆上进行操作。

令 $ q_{p_i} = i $ , 交换的限制就变成了:选择两个绝对值差大于 $ K $ 的相邻数。

注意到 $ q $ 字典序最小等价于 $ p $ 字典序最小。而如果两个数绝对值差小于 $ K $ ,他们的相对顺序不可能改变。

对这样的限制连边,就变成了求字典序最小的拓扑序列。

但是这样连出的边数是 $ O(n ^ 2) $ 的。考虑对它进行优化。

数 $ x $ 只会向 $ (x - K, x) $ 和 $ (x, x + K) $ 这两段区间连边。而每段区间只需连这段区间中已经出现过且下标最小的数即可,线段树维护一下。

最后别忘记再还原到 $ p $ 数组

代码

标签:连边,AGC001,题意,题解,最小,dbinom,做题,小记,字典
来源: https://www.cnblogs.com/Vexoben/p/11729258.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有