【题解】吉林大学ACM集训队选拔赛(重现赛)

Problem A. 777

从高到低统计每 的个数
每个数位考虑小于7、等于7、大于7三类统计结果

Problem B. Subset of Five

DP:前 位中选取若干数字后模 的最大值
贪心:在模 四类中每类取最小的 个,暴力求子集和或分类讨论,找出最小子集使得模 等于

Problem C. Strange Bulbs

为每个点维护一个长度为 的bitset
一边拓扑排序,一边DP某个点被哪些点影响到了
时间复杂度

Problem D. Query Theory I

筛出每个数因子和后前缀和
埃式筛:
线性筛:

Problem E. Final Exam

将所有 换成二进制,统计每一位上有几个数为 ,这样问题就转换成有若干个物品,
每个物品花费 ,得到的价值形式为
每种物品有两个形态,
一个形态表示 这一位为 ,则价值乘上的数为 中这一位为 的数的个数,另一个形态表示 这一位为 ,价值乘上的数为 中这一位为 的数的个数
先贪心求出一个 使得 最小,这个贪心是显然的
之后我们从高位往低位贪心求最终答案

Problem E. Final Exam

如果这一位 已经为 ,则不用管直接继续下一位
如果这一位 ,那么贪心取
如果这一位 的价值加上已有价值小于等于 的话,那这一位一定为 ,否则k这一位一定为0(为1就不符合题意了)
最后输出得到的 就是答案
注意一下数据,这个数据很大,看似需要高精度,实际上只需要一个特判就可以判掉无解
时间复杂度

Problem F. EndA's GPA

减少浮点数计算
检查

Problem G. Pair Complex

方法1 ~ 暴力对每个式子进行前缀和加减计算
方法2 ~ 计算每个数字对答案的贡献

Problem H. Precision

展开 后为
树状数组或线段树维护

Problem I. Firework}

建立超级起点 连接到每个 ignited node
SPFA或Dijkstra求出离超级起点最远的两个点
两者相连则根据到达时间和两者间距解出燃烧尽时间
否则最后一个燃尽的点的时间就是答案

Problem J. Across the Firewall

拆点限制流量的无向图最大流送分题

Problem K. Dress as women

复杂度计算每个子集内的点是否共线
dp[0101010] 表示某个子集的必胜/必败态 枚举每个状态的子集进行转移

全部评论
C题为什么bitset是除以64呢?
点赞 回复
分享
发布于 2020-06-13 19:32
没有标程吗
点赞 回复
分享
发布于 2020-06-14 13:52
联易融
校招火热招聘中
官网直投

相关推荐

3 1 评论
分享
牛客网
牛客企业服务