社区讨论

警 示 后 人

P8072[COCI 2009/2010 #7] COKOLADA参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mlk62ynn
此快照首次捕获于
2026/02/13 08:46
6 天前
此快照最后确认于
2026/02/15 19:35
4 天前
查看原帖
(其实我一遍就AC啦,只不过是做题时突发奇想,加上了这一段代码,第一次交完之后又交了一遍发现把这段删了没过,因此警示后人)
部分蒟蒻(比如我)的方法可能是把输入数据转成二进制,方便求下一步最少切割刀数,但它有一个问题,若输入 22 的正整数幂次方(如 1616),输出会是:32 1。因为 1616 的二进制是 (10000)2(10000)_2,它有五位,而 252^53232。如果你就这么交,测试点 #10 会 WA。
因此,可以参考我的这一段代码:
CPP
bool judge(int n)
{
    while(n!=1)
    {
        if(n%2==1)return false;
        n/=2;
    }
    return true;
}
int main()
{
    int n;
    scanf("%d",&n);
    if(judge(n)){
        printf("%d %d\n",n,0);
        return 0;
    }
    //...
}
当然,也有可能只是我一厢情愿,其他蒟蒻根本没有用这种方法。不过luogu用户那么多,还是放在这里警示后人吧……

回复

0 条回复,欢迎继续交流。

正在加载回复...