CodeForces-747E
这几天好懒,昨天写的题,今天才来写博客....
这题你不知道它究竟有多少层,但是知道字符串长度不超过10^6,那么它的总容量是被限定的,用一个二维动态数组就OK了。输入字符串后,可以把它按照逗号分割成一个string数组,然后两个一处理就行,遇到0结束。
AC代码:
- #include<cstdio>
- #include<string>
- #include<iostream>
- #include<vector>
- #include<algorithm>
- using namespace std;
- const int maxn=1e6+5;
- char s[maxn];
- string a[maxn];
- vector<string>v[maxn/2];
- int cur=0,ans,len;
- int deal(){
- int u=0;
- for(int i=0;s[i]!='\0';++i){
- if(s[i]==',') continue;
- a[u]="";
- while(s[i]!=','&&s[i]!='\0'){
- a[u]+=s[i++];
- }
- ++u;
- --i;
- }
- return u;
- }
- int gett(string p){
- int c=0;
- for(int i=0;i<p.size();++i)
- c=c*10+(p[i]-'0');
- return c;
- }
- void dfs(int lev){
- //if(cur>=len) return;
- ans=max(ans,lev);
- v[lev].push_back(a[cur++]);
- int c=gett(a[cur++]);
- for(int i=0;i<c;++i){
- dfs(lev+1);
- }
- }
- int main(){
- while(scanf("%s",s)!=EOF){
- len=deal();
- cur=0;
- ans=-1;
- for(;cur<len;)
- dfs(0);
- printf("%d\n",ans+1);
- for(int i=0;i<=ans;++i){
- for(int j=0;j<v[i].size();++j)
- if(j==0) cout<<v[i][j];
- else cout<<" "<<v[i][j];
- printf("\n");
- }
- for(int i=0;i<maxn/2;++i) v[i].clear();
- }
- return 0;
- }
如有不当之处欢迎指出!
CodeForces-747E的更多相关文章
- 【codeforces 747E】Comments
[题目链接]:http://codeforces.com/problemset/problem/747/E [题意] 给你一个类似递归的结构; 让你把每一层的字符串按照层,一层层地输出出来; 并输出层 ...
- CodeForces 747E Comments
栈,模拟. 手动写一个栈模拟一下过程即可. #include<cstdio> #include<cstring> #include<string> #include ...
- Codeforces Round #387 (Div. 2) 747E
这题本身是个水题,但是写了半天 题意就是给出一个树的生成方式,让你还原这棵树,然后按深度输出结点 这个还原过程还是比较有趣的(没有用递归) PS:getline的新姿势get #include < ...
- python爬虫学习(5) —— 扒一下codeforces题面
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 【Codeforces 738C】Road to Cinema
http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...
- 【Codeforces 738A】Interview with Oleg
http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...
- CodeForces - 662A Gambling Nim
http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...
- CodeForces - 274B Zero Tree
http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...
- CodeForces - 261B Maxim and Restaurant
http://codeforces.com/problemset/problem/261/B 题目大意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a ...
随机推荐
- linux中操作java进程
通过 ps -ef|grep java 来得到真正运行的线程 通过kill -9 XXXXX来杀死正在运行的线程,其中XXXXX是上面java线程的序号. 另外还有2个指令我也不熟悉,一个是cat,一 ...
- IOS 疯狂基础之 页面间跳转
常用的就两种 一种通过导航,一种直接跳 第一种 直接跳转 思路大致就是new一个目的页面,然后设置下页面跳转动画 中间还可以做点目的页面的数据初始化: ValueInputView *valueVie ...
- JavaSE基础篇—数据类型和运算符
本章知识点内容概括 数据类型: 1.基本数据类型 数值型 整数类型 byte(128~127),占1个字节的储存间 short(-2^15~2^15-1),占2个字节 int(默认类型-2^3 ...
- Mysql编译安装及优化
采取编译安装的方法,其好处为:编译安装与平台无关,安装的MySQL目录独立,维护起来方便,而且拥有更好的性能. 环境:CentOS release 6.9 (Final) x86_64 1)下载my ...
- maven将本地jar包导入本地仓库
从maven中央仓库下载下来的jar包手动导入本地库,如下图 以下其中maven的dependency <dependency> <groupId>org.molgenis&l ...
- python3操作pymsql模块
pymysql是python中操作mysql的模块. 1.pymysql模块的安装 pip3 install pymysql 也可以使用pycharm这个IDE工具来安装pymysql这个模块. 2. ...
- 以Apache模块的方式编译安装php-5.4.27
为什么要安装低版本的php? 由于apc,xcache的更新版本跟不上php版本的速度,所以,我们需要安装比较稳定的php低版本程序,再安装其它与之相匹配的扩展. 开工: 新建用户及用户组 group ...
- ABP官方文档翻译 4.1 应用服务
应用服务 IApplicationService接口 ApplicationService类 CrudService和AsyncCrudAppService类 简单的CRUD应用服务示例 自定义CRU ...
- 主备(keepalived+haproxy)
系统:centos6.9 mini 主机名 ip 虚拟ip kh1 192.168.126.210 kh2 192. ...
- 夏令营提高班上午上机测试 Day 1 解题报告
Day 1的题难度上来说不算太高,但是T2和T3还是有一定的思维量的. 一个比较好的开始.虽然AK的人只有几个.. (懒得去翻result了..忘了当时拿了多少分了 (哦,前两天我们机房是没有成绩的, ...