用户工具

站点工具


2020-2021:teams:alchemist:2020_nowcoder_multiuniversity_3

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
2020-2021:teams:alchemist:2020_nowcoder_multiuniversity_3 [2020/07/22 16:58]
mountvoom [xsy]
2020-2021:teams:alchemist:2020_nowcoder_multiuniversity_3 [2020/07/24 11:12] (当前版本)
hardict [F. Fraction Construction Problem]
行 10: 行 10:
  
 ===== lpy  ===== ===== lpy  =====
 +
 +写完后最好本地多测测,避免过多罚时
 +
 +构造题还需要加强练习
 ===== xsy  ===== ===== xsy  =====
  
-写题时仔细一点,清醒一点,自信一点...+写题时仔细一点,清醒一点,自信一点...不要慌张。
  
 罚时爆炸。 罚时爆炸。
 ====== 题解 ​ ====== ====== 题解 ​ ======
  
 +===== A. Clam and Fish =====
 +
 +签到题,最开始想法基本是对的但是看着一堆人WA没敢写,浪费了不少时间。
 +
 +显然有鱼拿鱼,否则能做饵料就做饵料,空地有饵料就直接捞鱼,否则啥也不干。
 +
 +最后答案需要加上多的饵料/​2,相当于剩下一半选择做饵料的位置改为捞鱼。
 +
 +by MountVoom
 +
 +===== B. Classical String Problem =====
 +
 +签到题,把字符串看成首尾相接,每次操作相当于改变了一下开头的位置。
 +
 +by MountVoom
 +
 +===== C. Operation Love =====
 +
 +签到题,长边为9算成10也太傻逼了。
 +
 +找到相邻两边长度为8和9的顶点,然后用叉积判断一下方向即可。
 +
 +需要注意的是给定的坐标有一定的误差,但是因为长度都是整数,所以可以+0.5以后直接截断来进行判断。
 +
 +by MountVoom
 ===== D.Points Construction Problem ​ ===== ===== D.Points Construction Problem ​ =====
 这个题赛场上是lpy通过基本图形组合的方式AC的。其实赛场上有想过另一种方法,可惜脑抽了以为有情况没有覆盖。之后才发现是正确解法。 这个题赛场上是lpy通过基本图形组合的方式AC的。其实赛场上有想过另一种方法,可惜脑抽了以为有情况没有覆盖。之后才发现是正确解法。
行 25: 行 54:
  
 by cmx by cmx
 +
 +赛场上考虑其主要有三个基本图形:矩形,线,离散点
 +
 +假设矩形边长为$a,​b > 1$,​线长为$c > 1$,​离散点数为$d$
 +
 +则有方程$2(a+b)+2c+2+4d=m,​ab+c+d=n$
 +
 +枚举$c+d$并预处理$ab$分解即可暴力求解
 +
 +但WA了几发后发现矩形可能有一条边有缺失
 +
 +<​code>​
 +XXX **X
 +XXX XXX
 +XXX XXX (X表示黑点,*表示白点)
 +</​code>​
 +
 +这两种在周长上贡献一样,耗费点数不同
 +
 +所以方程变为$2(a+b)+2c+2+4d=m,​ab-e+c+d=n,​0 \leq e < b$
 +
 +由于网格很大,知道解后即可构造
 +
 +by Hardict
 +
 +===== E.Two Matchings =====
 +
 +cmx赛场上AC的
 +
 +一开始发现其实题目就是一堆二元环交换问题,发现具体解和原序列顺序无关
 +
 +排升序后,$(1,​2)(3,​4)...$这样即为最小解
 +
 +但题目要求两个完全不同(每一位都不想等)置换,使和最小
 +
 +后面发现$4|n$使,$(1,​4)(2,​3)$这种下去即可,$4\nmid n$使可能有六个一组的情况,而且可能不只一个
 +
 +而$(1,​4)(2,​3)$和$$(1,​2)(3,​4)$相比可以通过简单加减转换
 +
 +运用$dp$即可
 +
 +$dp[i] = dp[i - 4] + (a[i] - a[i - 3]) * 2$
 +
 +$dp[i] = min(dp[i], dp[i - 6] + (a[i] - a[i - 5]) * 2)$
 +
 +by Hardict
 +
 +===== F. Fraction Construction Problem =====
 +
 +首先$d=f$即$gcd(a,​b)>​1$解是显然的
 +
 +$(d,​f)=x,​\frac{c}{d}-\frac{e}{f}=\frac{c\frac{f}{x}-e\frac{d}{x}}{\frac{df}{x}}$
 +
 +不妨$(d,​f)=1$.转换为$\frac{cf-ed}{xdf};​xd,​xf \leq b$
 +
 +我们即可知道$b$的两个不同素因子p,​q,然后$d=p,​f=q$
 +
 +利用$exgcd$求得$cf-ed=1$,​$c$取最小正数解$c_{0}$
 +
 +故整体解为$c=ac_{0},​e=ae_{0},​d=px,​f=qx,​x=\frac{b}{pq}$
 +
 +而若$b$为$1$或素因子的幂是无解的
 +
 +by Hardict
 +===== G. Operating on a Graph =====
 +
 +开始时把自己给绕晕了导致卡题很久....
 +
 +一旦一个点把相邻的点染成同色以后,它们就永远会是同一种颜色,可以用并查集来维护每个点的颜色。
 +
 +每种颜色维护一个链表记录还有哪些这种颜色的点没有把相邻的点染色,即这个颜色区域的边界。
 +
 +染色时假设扩展的区域为$x$,首先把$x$的边界进行扩展,假设把颜色$y$改为$x$,那么把$y$的链表接在$x$的链表后。
 +
 +by MountVoom
 ====== 补题 ====== ====== 补题 ======
 ===== H.Sort the Strings Revision ​ ===== ===== H.Sort the Strings Revision ​ =====
2020-2021/teams/alchemist/2020_nowcoder_multiuniversity_3.1595408296.txt.gz · 最后更改: 2020/07/22 16:58 由 mountvoom