题解:P14319 「ALFR Round 11」C1 开关灯 (switch) (ez ver.)
lailai0916 · · 题解
解题思路
先对整个区间
- 所有灯全亮;
- 只有
1 个灯不亮。
对于第一种情况,再次进行全局翻转。
由于坏灯不会连续两次翻转,必然只有
此时有且仅有
最多需要
参考代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
int n;
cin>>n;
cout<<1<<' '<<1<<' '<<n<<endl;
cout<<2<<' '<<1<<' '<<n<<endl;
int k;
cin>>k;
if(k==n)cout<<1<<' '<<1<<' '<<n<<endl;
int l=1,r=n;
while(l<r)
{
int mid=l+r>>1;
cout<<2<<' '<<l<<' '<<mid<<endl;
int t;
cin>>t;
if(k==n?t>0:t<mid-l+1)r=mid;
else l=mid+1;
}
cout<<3<<' '<<l<<endl;
}
return 0;
}