您的位置:首页 > 其它

codeforces#235_div2_C Team 简单构造

2014-03-12 01:19 295 查看
题目地址: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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: