hihoCoder 挑战赛10 #1144 : 01串

思路:这只是逻辑测试题吧,考虑周全就行了。考虑n=m的情况,n>m的情况,m>n的情况。

(1)n>m的情况,0比1多几个都是行的,一共有m个“01”,后面补足够多个零即可。

(2)n=m的情况,一直输出“01”就行。

(3)n<m的情况,只允许m-n=1,其他情况都不行,否则肯定会有两个1在一起。

 1 #include <iostream>
 2 #include <stdio.h>
 3 using namespace std;
 4 int main()
 5 {
 6     //freopen("input.txt", "r", stdin);
 7     int n, m;
 8     while(cin>>n>>m)
 9     {
10         if(n==m)        //一样多
11         {
12             for(int i=0; i<n+m; i++)
13             {
14                 if(i%2==0)    printf("0");
15                 else    printf("1");
16             }
17         }
18         else if(n>m)    //0多,都行
19         {
20             for(int i=0; i<m; i++)
21                 printf("01");
22             for(int i=0; i<n-m; i++)
23                 printf("0");
24         }
25         else if(n<m)    //1多
26         {
27             if(m-n==1 ) //刚好多1个
28             {
29                 for(int i=0; i<n+m; i++)
30                 {
31                     if(i%2==0)  printf("1");
32                     else        printf("0");
33                 }
34             }
35             else    printf("NO");   //多1个以上就是不行
36         }
37     }
38     return 0;
39 }

1144

时间: 2024-10-20 00:31:45

hihoCoder 挑战赛10 #1144 : 01串的相关文章

#1144 : 01串 ( 按条件排除即可+简单模拟 )

#1144 : 01串 时间限制:7000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个整数n和m,求是否存在恰好包含n个0和m个1的01串S,使得S中不存在子串"001"和"11". 如果存在符合条件的01串则输出字典序最小的S,否则输出NO. 输入 一行两个整数,表示n和m.(0<=n,m<=100000,0<n+m) 输出 一行一个字符串,为字典序最小的S或者NO. 样例输入 2 3 样例输出 10101 相当于排列组合的

hihoCoder 挑战赛10 #1145 : 幻想乡的日常

思路: TLE了,其他思路还没想出来.假设居所是一棵树,对于给定的一个区间[l, r] ,其中有r-l+1个节点,那么最大可能出现的队伍数就是r-l+1.而数有n-1条边,如果一条边(x,y)满足l<=x<=r 且 l<=y<=r ,那么这条边就在区间[l, r]内,而这两个节点就必须是同一个队伍的,那么最大可能出现的队伍数就是r-l+1-1了.也就是说,对于n-1条边,如果有n条边存在于区间[l, r]内,那么这一天的队伍数量就是r-l+1-n.  复杂度:对于每个区间,只需要检

hiho 挑战赛10(01串-找规律决策)

题目1 : 01串 时间限制:7000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个整数n和m,求是否存在恰好包含n个0和m个1的01串S,使得S中不存在子串"001"和"11". 如果存在符合条件的01串则输出字典序最小的S,否则输出NO. 输入 一行两个整数,表示n和m.(0<=n,m<=100000,0<n+m) 输出 一行一个字符串,为字典序最小的S或者NO. 样例输入 2 3 样例输出 10101 本题的关键在找规律

ACM学习历程——hihoCoder挑战赛10A 01串(策略)

时间限制:7000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个整数n和m,求是否存在恰好包含n个0和m个1的01串S,使得S中不存在子串"001"和"11". 如果存在符合条件的01串则输出字典序最小的S,否则输出NO. 输入 一行两个整数,表示n和m.(0<=n,m<=100000,0<n+m) 输出 一行一个字符串,为字典序最小的S或者NO. 样例输入 2 3 样例输出 10101 由于不能存在001和11,故只能1010

这样用01串

今天在做东西的时候,发现了几个挺有意思的地方,记下来和大家分享分享.从几个小问题开始 记录一个年龄段你会怎么记录,能表达类似“50~70”之类的就可以? 也许你会说很简单啊,用两个字段,一个start=>开始年龄.一个end=>结束年龄,更或者在一个字段中,使用start|end这样的格式,中间用一个非数字隔开,或者用start|start-end,哈哈,反正方法很多,但是这时候如果要求升级,要你表示10~20.25.29~40这些年龄,你要怎么表示呢?当然还可以通过字符串去表示比如:10-2

01串也疯狂之光棍也有伴

Description 话说春节那天,小明和晓明在实验室刷题.刷着刷着小明觉得累了,就邀请晓明一起看春晚.晓明觉得小明很无聊,不想理小明,但是小明很会磨嘴皮子,晓明耐不住小明的胡嘴蛮缠,于是和小明一起看起春晚来. 小明顿时觉得倍儿爽啊! 可是一看,“wocao”,“最炫小苹果”,小明顿时觉得很伤心. “连小苹果都有伴了...呜呜....” 晓明看到小明哭了,就想安慰他,可是怎么安慰呢!  晓明陷入了沉思,忽然,晓明灵光一闪,想借一下出题名义,让小明开心起来.于是晓明对小明说,既然小苹果都有伴了,

01串---南阳OJ

01串 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 ACM的zyc在研究01串,他知道某一01串的长度,但他想知道不含有"11"子串的这种长度的01串共有多少个,他希望你能帮帮他. 注:01串的长度为2时,有3种:00,01,10. 输入 第一行有一个整数n(0<n<=100),表示有n组测试数据; 随后有n行,每行有一个整数m(2<=m<=40),表示01串的长度; 输出 输出不含有"11"子串的这种长度的

01串 ---- 递推

这是一个符合斐波纳契数列的dp问题,动态转移方程:dp[i]=dp[i-1]+dp[i-2]; 解释:长度为i的01串组成:长度为i-1的串末尾的0的个数*2+长度为i-1的串末尾的1的个数*1,而长度为i-1的末尾的0的个数等于长度为i-2的串的个数,等量替换以后就是上面的转移方程. 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<iostream> 5 #inc

NYOJ 252 01串(斐波那契数列变形)

01串 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 ACM的zyc在研究01串,他知道某一01串的长度,但他想知道不含有“11”子串的这种长度的01串共有多少个,他希望你能帮帮他. 注:01串的长度为2时,有3种:00,01,10. 输入 第一行有一个整数n(0<n<=100),表示有n组测试数据;随后有n行,每行有一个整数m(2<=m<=40),表示01串的长度; 输出 输出不含有“11”子串的这种长度的01串共有多少个,占一行. 样例输入 2