Codeforces 1137D(技巧)

一开始写的第一步让0和1一起走然后第二步再让0走会挂最后一个点……然后探索一下觉得主要问题在于我模拟的一步一步地走。如果这样的话9 2这个数据会使第17步他俩就碰在final点了,而实际上我们想要的效果是他们走第18步时差一格,然后第20步碰上后大家一起,所以提前碰到会炸。故而要两步两步地走才行,发现01碰到了就跳出然后大家一起走。

int main() {
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

    auto Read = [](int &x) {
        cin >> x;
        for (int i = 0; i < x; i++) {
            string s; cin >> s;
        }
    };
    int cur = -1;
    while (cur != 2) {
        cout << "next 0\n" << flush;
        Read(cur);
        cout << "next 0 1\n" << flush;
        Read(cur);
    }
    while (cur != 1) {
        cout << "next";
        for (int i = 0 ;i <= 9; i++)
            cout << " " << i;
        cout << endl << flush;
        Read(cur);
    }
    cout << "done\n";
    return 0;
}

转载于:https://www.cnblogs.com/AlphaWA/p/10700562.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值