题意:给你一个01串,问其是否能拆成若干形如0101010的子串,若能,输出所有子串的0,1 的位置。

题解:一开是暴力,然后瞎找规律,

最后找到一种神奇的线性构造法:扫一遍字符串,若为0就一直竖着往下写0,碰到1就回头往上写,再碰到0 就回头往下写······判断无法构造的依据:如果写1写得超过了上界就跳出,如果最后写的0不在最下面也跳出//codeforces上看到的一段代码秀的脑壳疼

坑:之前随便找规律,写了个巨丑的代码,逻辑混乱,直接wa掉。

无脑写的直接T了

ac

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string.h>
#include<string>
#include<vector>
#include<queue>
#define pb push_back
#define _for(i, a, b) for (int i = (a); i<(b); ++i)
#define _rep(i, a, b) for (int i = (a); i <= (b); ++i
using namespace std;
const int maxn = + ;
string s; vector<int>ans[maxn];
int main() {
cin >> s; int j = , x=;
_for(i, , s.size()) {
if (s[i] - ) { if (!j)return cout << "-1", ; ans[--j].pb(i + ); }else { ans[j++].pb(i + ); }x = max(x, j);}
if (x != j)return cout << "-1", ;
cout <<x << endl;_for(i,,x){cout << ans[i].size() ; _for(j,,ans[i].size())cout << ' ' << ans[i][j]; cout << endl;} }

附上天秀代码:

#include <bits/stdc++.h>
#define pb push_back
#define fi(x,n) for(int i=0;i<n;i++)
#define fj(x,n) for(int j=0;j<n;j++)
using namespace std;
vector <int> a[];
string s; int z, o, j, x, t, c;
int main() {
cin >> s; fi(, s.size()) { s[i] -= ; if (s[i]) { if (!j)return cout << "-1", ; a[--j].pb(i + ); } else a[j++].pb(i + ); x = max(x, j); }
if (x != j)return cout << "-1", ;
cout << x << endl; fi(, x) { cout << a[i].size() << " "; fj(, a[i].size())cout << a[i][j] << " "; cout << endl; };
}

CodeForces - 950C Zebras 模拟变脑洞的天秀代码的更多相关文章

  1. Codeforces 950C Zebras ( 贪心 && 模拟 )

    题意 : 给出一个 01 串,要求你将其分隔出若干个子序列 ( 每个数字只能属于某一个子序列 ) ,子序列必须满足由 0 开头和结尾,且中间需 01 交替构成.若无法做到,则输出 -1. 分析 :  ...

  2. Divisibility by 25 CodeForces - 988E(模拟)

    遇见模拟题 有两种做法 例如这题: 1.直接去算次数(统计哪个数在第几位,然后去运算) 2.模拟操作 贴一个别人的代码...https://blog.csdn.net/weixin_39453270/ ...

  3. 音频算法之小黄人变声 附完整C代码

    前面提及到<大话音频变声原理 附简单示例代码>与<声音变调算法PitchShift(模拟汤姆猫) 附完整C++算法实现代码> 都稍微讲过变声的原理和具体实现. 大家都知道,算法 ...

  4. spring-mvc实现模拟数据到网页展示过程代码

    spring-mvc实现模拟数据到网页展示过程代码 先看看我们的3种模拟数据到网页展示的思路图: 1.当mybatis的环境配置完成.一个动态Web项目建立好.开始导入jar包. -spring的ao ...

  5. Zebras CodeForces - 950C(思维)

    借鉴自: https://www.cnblogs.com/SuuT/p/8619227.html https://blog.csdn.net/my_sunshine26/article/details ...

  6. Codeforces 389B(十字模拟)

    Fox and Cross Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submi ...

  7. codeforces 591B Rebranding (模拟)

    Rebranding Problem Description The name of one small but proud corporation consists of n lowercase E ...

  8. Codeforces 626B Cards(模拟+规律)

    B. Cards time limit per test:2 seconds memory limit per test:256 megabytes input:standard input outp ...

  9. Codeforces 631C. Report 模拟

    C. Report time limit per test:2 seconds memory limit per test:256 megabytes input:standard input out ...

随机推荐

  1. Linux+Redis实战教程_Linux上安装jdk,mysql,tomcat_安装jdk

    1. Linux上安装jdk,mysql,tomcat[重点] Windows 控制面板 添加/卸载程序 进行程序的安装.更新.卸载.查看 rpm命令:相当于windows的添加/卸载程序 进行程序的 ...

  2. 5 -- Hibernate的基本用法 --4 9 其他常用的配置属性

    Hibernate其他常用的配置属性: ⊙ hibernate.show_sql : 是否在控制台输出Hibernate持久化操作底层所使用的SQL语句.只能为true和false两个值. ⊙ hib ...

  3. MySql 错误 Err [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes

    今天在用Navicat导入SQL文件时报错:MySql 错误 Err [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes ...

  4. js中forEach,for in,for of的区别

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 关于WPF自定义控件(导航)

    1.在WPF中自定义控件(1)概述 2.在WPF中自定义控件(2) UserControl 3.在WPF中自定义控件(3) CustomControl (上) 4.在WPF中自定义控件(3) Cust ...

  6. iOS开发-- 使用VVDocumenter-Xcode添加代码注释

    在开发Java代码过程中,我们只需在Eclipse中敲/**即可生成字段.方法对应的文档,简单便捷. 在Xcode如果想添加文档注释,需要花费很多时间,有没有简单.快速的方法搞定这一切? 在网上搜索了 ...

  7. C#编码习惯谈

    1.  避免将多个类放在一个文件里面.2.  一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面.3.  一个文件最好不要超过500行的代码(不包括机器产生的代码).4.  一个方法的 ...

  8. JavaScript Promise迷你书(中文版)

    最近,发现了一个很不错的关于Promise介绍的迷你电子版书,分享给大家: http://liubin.org/promises-book/#chapter4-advanced-promise (篇幅 ...

  9. Windows下POSIX线程编程(pThread)环境搭建

    系统: Windows 编辑器:codeblocks13.12 1. 简介: Windows有一个叫 POSIX Threads for Win32 的开源项目给出了一个功能比较完善的Windows下 ...

  10. 老徐FrankXuLei 受邀为花旗银行讲授《微软WCF服务分布式开发与SOA架构设计课程》

    老徐FrankXuLei 受邀为花旗银行上海研发中心讲授<微软WCF服务分布式开发与SOA架构设计课程> 受邀为花旗银行上海研发中心讲授<微软WCF服务分布式开发与SOA架构设计课程 ...