题解:CF234G Practice
lailai0916 · · 题解
解题思路
设
显然这
每次比赛都最多让两半人相互独立,因此以至少需要
注意到,任意两个不同的非负整数,至少有一位二进制不同,所以不妨根据第
参考代码
#include <bits/stdc++.h>
using namespace std;
const int N=1005;
int a[N];
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin>>n;
int k=__lg(n-1)+1;
cout<<k<<'\n';
for(int j=0;j<k;j++)
{
int ans=0;
for(int i=0;i<n;i++)
{
if(!(i>>j&1))ans++;
}
cout<<ans<<' ';
for(int i=0;i<n;i++)
{
if(!(i>>j&1))cout<<i+1<<' ';
}
cout<<'\n';
}
return 0;
}