/*
sample input
3
walpurgis(charlotte(patricia,gertrud),elly,gisela)
wuzetian
nanoha(fate(hayate))
*/
/*
DFS
把树的字符串
1
a(b(c,d),e,f)
进行深度优先搜索
当前房间编号i
遇到'('则i-》i+1
遇到','则i-》pre_i   pre_i-》i+1
遇到')'则i-》pre_i   如果pre_i!=1 pre_i-》pre_i' pre_i'-》pre_i+1*/
#include <stdio.h>
#include <string.h>int T;//T<=20
char str[1000002];//Madoka's log <=1000000chars
char Witches[50001][11];//at most 50000 rooms
int sum_witches,str_i,str_len,name_i,cur_i;//当前结点编号
int pre_i[50001];//父结点编号
int pass[100002][2];//路线
int pass_i;
int main()
{char ch;int t,i;scanf("%d",&T);while (T--){memset(pass,0,sizeof(pass));    pass_i=0;memset(Witches,0,sizeof(Witches));sum_witches=1;name_i=0;memset(pre_i,0,sizeof(pre_i));cur_i=1;pre_i[cur_i]=-1;memset(str,0,sizeof(str));        str_i=0;scanf("%s",str);str_len=strlen(str);        while (str_i<str_len){ch=str[str_i++];switch(ch){case '(':sum_witches++;name_i=0;pre_i[sum_witches]=cur_i;pass[pass_i][0]=cur_i;pass[pass_i][1]=sum_witches;pass_i++;cur_i=sum_witches;break;case ',':t = pre_i[cur_i];pass[pass_i][0]=cur_i;pass[pass_i][1]=t;pass_i++;cur_i=t;sum_witches++;name_i=0;pre_i[sum_witches]=cur_i;pass[pass_i][0]=cur_i;pass[pass_i][1]=sum_witches;pass_i++;cur_i=sum_witches;break;case ')':t=pre_i[cur_i];pass[pass_i][0]=cur_i;pass[pass_i][1]=t;pass_i++;cur_i=t;break;default:Witches[sum_witches][name_i++]=ch;if(str[str_i]>'z' || str[str_i]<'a')Witches[sum_witches][name_i]='\0';break;}}printf("%d\n",sum_witches);for (i=1;i<sum_witches+1;i++)    printf("%s\n",Witches[i]);for (i=0;i<pass_i;i++)    printf("%d %d\n",pass[i][0],pass[i][1]);printf("\n");}return 1;
}

转载于:https://www.cnblogs.com/CheeseZH/archive/2012/04/11/2442144.html

Eliminate Witches!【2011年北京赛区正赛赛题-2】相关推荐

  1. 2014 ACM/ICPC 北京赛区网络赛解题报告汇总

    首页 算法竞赛» 信息聚合 ONLINE JUDGE 书刊杂志 BLOG» 新闻故事» 招聘信息» 投稿须知 2014 ACM/ICPC 北京赛区网络赛解题报告汇总 九月 21st, 2014 | P ...

  2. 2018 ACM/ICPC 北京赛区网络赛 D 80 Days 线段树

    http://hihocoder.com/problemset/problem/1831?sid=1390457 描述 80 Days is an interesting game based on ...

  3. 2011 ICM 美国数据建模赛题

    2019独角兽企业重金招聘Python工程师标准>>> ICM 电动车的普及是否实际可行? 这有一些可供考虑的问题,但是,当然还有更多,你的模型不可能考虑到所有的问题: 电动车的普及 ...

  4. 北京赛区总结,以及。。。

    上次合肥看错题.这次北京推不出前缀和二项式....还是太弱了呢.感觉一年里收获的也不是特别多.很多算法和自己的代码能力需要进一步提高....感觉还是被队友带飞了呢.然后.... 北京赛区的水题BFS, ...

  5. 2018 ACM-ICPC亚洲区域赛 北京赛区

    2018 ACM-ICPC亚洲区域赛 北京赛区 A - Jin Yong's Wukong Ranking List HihoCoder - 1870 题意 给N对关系,每对关系表示为A 比B 厉害, ...

  6. 全球地区资料json 含中英文 经纬度_2020年Brain Bee北京、天津、河北赛区地区赛参赛说明...

    本赛事信息转自微信公众号"ICP留学字典" 就在刚刚,Brain Bee官网正式公布了2020年Brain Bee脑科学大赛的参赛说明,新的赛季正式开始,报名已启动. 在今年,IC ...

  7. ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 A. Visiting Peking University

    ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 A. Visiting Peking University 题意,一个人去北京旅游,计划待m天,但是其中有一些天交通管制,不能出去,到 ...

  8. 2011 ACM/ICPC 福州赛区网络赛解题报告

    第一次写网络赛的题解,福州赛区网络赛作为我第一年ACM最后一次网络赛酱油,画了一个很像逗号的句号.....好吧,还得为北京现场赛准备啊准备....... 这次酱油打的很犀利,貌似出第一题很快,之后节奏 ...

  9. icpc 北京赛区总结

    day1:第一天早早的去体育馆等候开幕式,热身赛的题目都是前几年北京的原题,因为我们队训练的时候已经把北京赛区前几年的题都做过了(本想靠着热身赛找下状态,因为也好几天没有做题了,可能这个也埋下了伏笔) ...

最新文章

  1. Dropout 的前世与今生
  2. 《Adobe InDesign CS6中文版经典教程》—第1课1.8节练习
  3. 小白 初步识别读取距离
  4. 神策数据受邀参加“两区”建设签约仪式
  5. 给asterisk写app供CLI调用
  6. confluence正常安装网页报错_NAS折腾手记1:在OMV5上安装ZFS On Linux的正确步骤
  7. “约见”面试官系列之常见面试题之第五十五篇之清除浮动的方法(建议收藏)
  8. 支付宝支付php代码示例,Laravel使用支付宝进行支付的示例代码
  9. php项目如何导jdbc包,JDBC-idea导入mysql连接java的jar包(mac)的方法
  10. u盘 连接服务器系统软件,u盘服务器系统
  11. Spring中使用Quartz之MethodInvokingJobDetailFactoryBean配置任务
  12. 2021年高考成绩查询梧州市,2021年梧州高考状元是谁分数多少分,历年梧州高考状元名单...
  13. Java中String类型,int类型,double类型相互转换
  14. Matlab曲线平滑
  15. Warship+NPOI导入导出组件介绍【对象化】
  16. 什么是Meta分析?Meta分析是什么意思?以6篇高质量文献为例,吃透Meta分析基本概念
  17. win10升级2004失败?
  18. 怎样使用ADO.NET连接数据库
  19. vue element 下拉框内容过长显示...鼠标悬浮显示全部
  20. 学数据结构,是不是一定要先学离散数学

热门文章

  1. 天翼云centos7.5系统挂载磁盘
  2. 3台机器配置hadoop集群_Hadoop学习之路(三)Hadoop集群搭建和简单应用
  3. 2.4操作系统之死锁详解(预防、避免、检测、解除)+思维导图
  4. 部署虚拟服务器,把网站部署到虚拟服务器
  5. xp系统图标大全_XP、Win7一键清理(批处理)小程序只有2.7KB大小
  6. C#语法:委托与方法
  7. php可以独立运行,【判断题】PHP不能独立运行,只能和Apache服务器一同使用( )。...
  8. mysql复制文件迁移后看不到表_mysql 直接拷贝data 目录下文件 进行数据库迁移时遇到的一些问题??...
  9. oracle中join另一个表后会查询不出一些数据_阿里规定超过3张表,禁止JOIN,为何?
  10. Arduino--0.91寸OLED液晶屏