专栏文章

题解:B4210 [常州市赛 2022] 最早对决

B4210题解参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@mip0frz7
此快照首次捕获于
2025/12/03 04:08
3 个月前
此快照最后确认于
2025/12/03 04:08
3 个月前
查看原文
可以使用分类讨论的方法。
为了简化代码,不妨设小X编号 <= 小Y编号:
CPP
if(a>b){
    t=a;
    a=b;
    b=t;}
所有情况如下:(括号内为例子与解释)
小X编号小Y编号最早相遇轮次
1-12833-1281 (第一轮种子遇任意非种子)
1-1617-323 (如1号位置遇8号位置)
17-3217-324 (如8号位置遇9号位置)
1-89-164 (如1号位置遇16号位置)
9-169-165 (如16号位置遇17号位置)
1-45-85 (以此类推)
5-85-86
1-23-46
3-43-47
1-21-27
代码如下:
CPP
#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,t;
    cin>>a>>b;
    if(a>b){
    t=a;
    a=b;
    b=t;}// 设 a<=b
    if(a>32||b>32) cout<<1<<endl;
    else if(a<=16&&b>16) cout<<3<<endl;
    else if(a>16&&b>16) cout<<4<<endl;
    else if(a<=8&&b>8) cout<<4<<endl;
    else if(a>8&&b>8)  cout<<5<<endl;
    else if(a<=4&&b>4) cout<<5<<endl;
    else if(a>4&&b>4) cout<<6<<endl;
    else if(a<=2&&b>2)cout<<6<<endl;
    else if(a>2&&b>2)  cout<<7<<endl;
    else if(a<=2&&b<=2) cout<<7<<endl;// 进行分类讨论
    return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...