ICode9

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

hzx的CSP-J模拟赛题解

2022-08-31 22:05:24  阅读:121  来源: 互联网

标签:lfloor frac 硬币 题解 复杂度 rfloor CSP ans hzx


T1

按题意模拟即可,注意不用考虑闰年。

T2

\(30\%\) 的数据:使用 \(Floyd\) 求出图的全源最短路,时间复杂度 \(O(n^3)\)。

\(50\%\) 的数据:对图上每个点使用 \(Dijkstra\) 求出最短路,时间复杂度 \(O(n^2 \log n)\),需要较优秀的常数才能通过。常数十分优秀的 \(Johnson\) 也可获得此部分分,\(SPFA\) 很难取得此部分的全部分数。

\(100\%\) 的数据:任意 \(u_i\) 和 \(w_i\) 互异,\(1 \le w_i \le n\),且图是无向完全图,所以,必然存在一个 \(w_i\) 为 \(1\) 的点与其他点存在连边,所以只需要比较 \(\operatorname{lcm}(w_u,w_v)\) 和 \(w_u+w_v\) 即可,注意判断两点相同,时间复杂度 \(O(T \log n)\)。

\(\text{extra}\):考虑使用 \(\operatorname{lcm}\) 的性质来求解,可将单次询问复杂度降至 \(O(1)\),如果实现常数较大,请使用较快的读写方式。

T3

\(10\%\) 的数据:可以使用随机化算法或单次检查答案。

\(30\%\) 的数据:对随机化进行约束,或者模拟退火,可以获得这部分分。

\(50\%\) 的数据:可以检查所有可能的答案,时间复杂度 \(O(n^2)\)。

\(100\%\) 的数据:看到最小堆的硬币数量最大容易想到二分答案,同时容易发现答案满足单调性。

但是要考虑二分答案的 check 如何书写。

考虑怎么贪心最优秀。

假设现在二分的答案值为 \(ans\) 。

发现对于最后一堆硬币,它不能从别的堆中获得硬币,所以考虑起来比较容易。为了使前面的硬币数量尽可能的多,它应该在满足自己满足 \(\geq ans\) 的前提下给更多的硬币给前面。这个 \(d\) 为 \(\lfloor\frac{h_n-ans}{3}\rfloor\)。

这样子前面的堆的硬币就增加了,假设这时每一堆硬币的个数为 \(b_i\) 。则 \(b_{n-1}=h_{n-1}+\lfloor\frac{h_n-ans}{3}\rfloor\) 则第 \(n-1\) 堆就应该给前面 \(3\times \lfloor\frac{b_{n-1}-ans}{3} \rfloor\) 个硬币。但是由于只能从前往后进行操作,所以最多给 \(3\times\lfloor\frac{h_{n-1}}{3} \rfloor\) 个硬币。

即对于第 \(i\) 堆取 \(3\times\lfloor\frac{\min\{b_i-ans,a_i\}}{3}\rfloor\) 给前面的硬币。

T4

\(10\%\) 的数据:模拟即可。

\(20\%\) 的数据:同上。

\(50\%\) 的数据:题目可以转化为两人同时从左上角走到右下角,考虑 dp,很容易想到设 \(dp[i][j][k][l]\) 表示第一个人在 \(i,j\) 第二个人在 \(k,l\) 能得到的最大值。时间复杂度 \(O(n^4)\)。

\(100\%\) 的数据:我们考虑减少一维,设 \(dp[i][j][k]\) 表示两个人都走了 \(i\) 步,第一个人在第 \(j\) 行,第二个人在第 \(k\) 行的最大值。此时两人的纵坐标是可以算出来的。

第一个人的列为 \(i-j+1\),第二个是 \(i-k+1\)。

时间复杂度 \(O(n^3)\)。

\(zcy\) 的神仙做法我看不懂。

标签:lfloor,frac,硬币,题解,复杂度,rfloor,CSP,ans,hzx
来源: https://www.cnblogs.com/hzx-qwq/p/16644635.html

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

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

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

ICode9版权所有