P7573 「PMOI-3」公平正义
  • 板块题目总版
  • 楼主nieyuming
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/17 21:14
  • 上次更新2024/12/17 21:23:44
查看原帖
P7573 「PMOI-3」公平正义
1402424
nieyuming楼主2024/12/17 21:14

被一道红题掠爆了。。。被一道红题掠爆了。。。

  1. 红绿灯风采
  2. 正解:分析

基础情况:

n=1n=1 时,不需要切割,因为蛋糕已经是一份。 当 n=2n=2 时,只需一刀即可将蛋糕切成两半。

递归思考:

如果我们有一个圆,一刀可以将其分成两个半圆,即两份。 如果我们需要更多份,我们可以先将其切成两份,然后递归地对其中一份继续进行切割。 数学推导: 对于 nn 份蛋糕,我们需要通过最少的切割次数 kk 实现。 每次切割都会将当前已有的份数翻倍(因为每次切一刀,圆就被分成了两份)。 假设初始有一个圆,经过 kk 刀后,我们可以得到 2k2 k 个部分。 目标是找到最小的 kk,使得 2kn2 k ≥n。 解决方案 我们需要找到最小的 kk,使得 2kn2 k ≥n。 使用对数可以简化这个计算:k=log2(n)k=⌈log 2 ​ (n)⌉。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t,n;
    cin >> t;
    while(t --)
    {
        cin>>n;
        if(n==1)cout << 0 << endl;
        else cout<<(n+1)/2<<endl;
    }
    return 0;
}
2024/12/17 21:14
加载中...