社区讨论

关于题解的疑问

P15321【MX-X24-T2】「RiOI-7」Oops, It's Yesterday Twice More参与者 1已保存回复 2

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@mlqmcwg9
此快照首次捕获于
2026/02/17 21:08
前天
此快照最后确认于
2026/02/18 20:28
16 小时前
查看原帖
昨天看的时候这篇题解是第一篇,然而到今天还没懂。
Q1:“注意一下如果 ii 之前有重复出现的数的话可以判断一下能否用一个不能删除的数作为 aja_j,可能可以多进行一次操作。”什么意思?“ii 之前重复出现的数”是什么?(代码中对应部分好像是bool f = i ? sum[i-1] ^ i : 0;蒟蒻语文不好,怕长句子qwq
Q2:↓为什么前两行是cnt[i]-1?剩下0/1/2个k,易得每次消一个 ii 和另一个数,应该是cnt[i]吧?为什么要在判断完no后才--lft
CPP
    if(cl + cr < cnt[i] - 1) no;
    int lft = cl + cr - (cnt[i] - 1);
    // if(lft + i < 2 || (lft < 2 && !cl) || max(cl + i,cr) < 2) no;
    bool f = i ? sum[i-1] ^ i : 0;
    if(lft + f < 2 || (lft < 2 && !cl) || max(cl + f,cr) < 2) no;
    // int res = cnt[i];
    --lft;//还有 lft 个可以删除的数.
    cout<<res + (lft - 1 + (bool)(i ? sum[i-1] ^ i : 0)) / 2<<' ';
求巨佬解答qwq

回复

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

正在加载回复...