AtCoder Beginner Contest 246 赛时记录
2022/4/3 0:03:45
本文主要是介绍AtCoder Beginner Contest 246 赛时记录,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- A - Four Points
- B - Get Closer
- C - Coupon
- D - 2-variable Function
- E - Bishop 2
- F - typewriter
A - Four Points
把 \(x_i, y_i\) 分别异或起来输出即可。
B - Get Closer
没看懂题目啥意思,观察了一下样例,发现答案是
设 \(p = \sqrt {x^2 + y^2}\),输出的两个数分别为 \(\frac{x}{p}, \frac{y}{p}\)。
C - Coupon
贪心即可,做法很多。
设 \(cnt = \sum \left \lfloor \frac{a_i}{X} \right \rfloor, sum = \sum a_i\)。
如果 \(cnt \ge K\) ,答案为 \(sum - KX\)。
否则,从所有的 \(a_i \% X\) 中挑出 \(K-cnt\) 个最大的。
剩下的和就是答案。
D - 2-variable Function
发现 \((10^6)^3 = 10^{18}\),考虑枚举其中一个数 \(a\),然后二分另外一个数 \(b\),对合法的答案取最小值即可。
E - Bishop 2
直接 bfs,每次更新向四个方向,能跑多远跑多远,如果遇到不能更新的地方就直接 break
掉。
F - typewriter
直接容斥。
拿 bitset
存每一个字符串。
枚举当前状态 \(S\),取 \(S\) 中所有选了的串的位置交。
设交有 \(x\) 个可用的位置。
答案为
\[ans = \sum (-1)^{|S|} x^L \]后面那个可以在外面预处理。
总复杂度为 \(\mathcal O(2^{n} \frac{n}{w})\)。
这篇关于AtCoder Beginner Contest 246 赛时记录的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享