题目地址:cf#235_div2_c
题目大意:
给你n个0,m个1
让你把它们排成一列
使得 没有三个1相邻,没有两个0相邻。
一下就想到233那场ooxx的题,直接用0当隔板 然后估计一下1个数的上下限,再分类讨论一下。
很水啊 和ooxx那个题完全没有比 a b c三题都好水
代码:
#include<iostream>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
if(m<=2*n+2&&m>=n-1)
{
if(m==2*n-2)
{
for(int i=0;i<n-1;i++)
{
cout<<"011";
}
cout<<"0"<<endl;
}
else if(m==2*n-1)
{
for(int i=0;i<n-1;i++)
{
cout<<"011";
}
cout<<"01"<<endl;
}
else if(m==2*n)
{
for(int i=0;i<n;i++)
{
cout<<"011";
}
cout<<endl;
}
else if(m==2*n+1)
{
cout<<1;
for(int i=0;i<n;i++)
{
cout<<"011";
}
cout<<endl;
}
else if(m==2*n+2)
{
cout<<"11";
for(int i=0;i<n;i++)
{
cout<<"011";
}
cout<<endl;
}
else
{
int left=m%(n-1);
for(int i=0;i<left;i++)
{
cout<<"011";
}
for(int i=0;i<n-1-left;i++)
{
cout<<"01";
}
cout<<0<<endl;
}
}
else cout<<-1<<endl;
}