CF979A Pizza, Pizza, Pizza!!! 题解
2024-10-16 04:15:40
Content
小 S 想把一块披萨切成大小、形状都相同的 \((n+1)\) 块(\(n\) 块分给 TA 的 \(n\) 个朋友,还有一块留给自己),试问最小需要切多少块。
数据范围:\(0\leqslant n\leqslant 10^{18}\)。
Solution
首先这道题目坑的一点就是 \(n\) 可能等于 \(0\),这时候不需要再切了,答案是 \(0\)。
然后看 \(n\neq 0\) 的情况。
首先是 \(2\mid (n+1)\) 的情况,那么我们可以发现有两次可以当一次切,可以求得需要切的次数为 \(\dfrac{n+1}{2}\)。然后是 \(2\nmid (n+1)\),那么没法再将多次当一次切了,那么需要且的次数就是 \((n+1)\)。
Code
ll n, ans;
int main() {
getll(n);
writell(ans = (!n ? 0 : (((n + 1) % 2) ? n + 1 : (n + 1) / 2)));
return 0;
}
最新文章
- Python小游戏之猜数字
- PHP+MySql例子
- leetcode 6
- GridView 鼠标经过时变色两种方法
- ipc telnet 攻击
- 一个php类 Autoloader
- 第3章 Struts2框架--2、完整的Struts2框架应用实例
- java学习面向对象值static
- win2k,XP下用setupapi.dll自动安装Driver
- Servlet.service() for Servlet jsp threw exception javax.servlet.ServletException:File &;quot;/pageFoo
- css transition 实现滑入滑出
- vscode 最新中文设置
- Linux驱动之平台设备驱动模型简析(驱动分离分层概念的建立)
- Ubuntu中在服务器和本机之间传递文件
- 收藏的blog
- 路径打印(set以及字符串的相关操作)
- collection tree protocol
- 基于Map的简易记忆化缓存
- HTML5中的Web Storage(sessionStorage||localStorage)理解与简单实例
- [Re:从零开始的分布式] 0.x——Reids实现分布式锁