题目链接

字符串模拟

const int MAXN = 2000000;char ipt[MAXN], t[MAXN];
int f[MAXN], len, to[MAXN];
map<string, string> mp[MAXN];
string x, key, ans;
string i2s(int n)
{string ret = "";if (n == 0)ret += '0';else{while (n){ret += n % 10 + '0';n /= 10;}}ret += '*';reverse(ret.begin(), ret.end());return ret;
}
int s2i(string& s)
{int ret = 0;FF(i, 1, s.length())ret = ret * 10 + s[i] - '0';return ret;
}void fun_f()
{stack<int> sk;sk.push(0);int cnt = 0;REP(i, len){if (ipt[i] == '{'){sk.push(++cnt);f[i] = cnt;to[f[i]] = i;}else if (ipt[i] == '}'){sk.pop();f[i] = sk.top();}}
}void fun_ipt()
{int state = 0, lv = 0, nxt;REP(i, len){switch (ipt[i]){case '\"':if (state == 0 || state == 2)x = "\"";else if (state == 1)key = x + '\"';elsemp[lv][key] = x + '\"';state = (state + 1) % 4;break;case '{':nxt = f[i];if (state == 2){mp[lv][key] = i2s(nxt);state = 0;}lv = nxt;break;case '}':lv = f[i];break;case ':' || ',':break;default:x += ipt[i];}}
}void fun_case()
{int state = 0, lv = 0, n;RI(n);REP(kase, n){bool ok = true;state = 0, lv = 1;RS(t);len = strlen(t);REP(i, len){if (t[i] == '\"'){if (state == 0)x = '\"';else{x += '\"';if (mp[lv].count(x) == 0){ok = false;break;}}ans = mp[lv][x];state = !state;}else if (t[i] == '.'){if (ans[0] != '*'){ok = false;break;}lv = s2i(ans);}elsex += t[i];}if (ok){if (ans[0] == '*'){int i = to[s2i(ans)], cnt = 0;while (true){if (ipt[i] == '{')cnt++;else if (ipt[i] == '}'){if (--cnt == 0)break;}putchar(ipt[i]);i++;}puts("}");}elseputs(ans.c_str());}elseputs("Error!");}
}int main()
{int T;RI(T);while (T--){REP(i, MAXN)mp[i].clear();RS(ipt);len = strlen(ipt);fun_f();fun_ipt();fun_case();}return 0;
}

2014牡丹江——Hierarchical Notation相关推荐

  1. ZOJ 3826 Hierarchical Notation 模拟

    模拟: 语法的分析 hash一切Key建设规划,对于记录在几个地点的每个节点原始的字符串开始输出. . .. 对每一个询问沿图走就能够了. .. . Hierarchical Notation Tim ...

  2. ZOJ 3822 Known Notation(2014牡丹江Regional K题)

    题目大意:给你一个不完整的后缀表达式和两种操作,一是插入一个数或者"*"运算号,另一个是把数字和"*"交换. 一个*至少对应两个数字,而一个表达式又等于一个数字 ...

  3. ZOJ3826 Hierarchical Notation(14牡丹江 H) 树套树

    题意:给你一个嵌套字典,询问字典的键值 ,输出字典的值. 解题思路:我的想法是字典树套字典树,因为指针的大小为8 字节 所以动态字典树会超内存,开始以为不能静态,后来发现静态实现也挺简单.所以又改成静 ...

  4. The 2014 ACM-ICPC Asia Mudanjiang Regional Contest(2014牡丹江区域赛)

    The 2014 ACM-ICPC Asia Mudanjiang Regional Contest 题目链接 没去现场.做的网络同步赛.感觉还能够,搞了6题 A:这是签到题,对于A堆除掉.假设没剩余 ...

  5. zoj 3809 枚举水题 (2014牡丹江网赛 A题)

    题目大意:给出一列取样的几个山的高度点,求山峰有几个? Sample Input 2 9 1 3 2 4 6 3 2 3 1 5 1 2 3 4 5 Sample Output 3 0 1 # inc ...

  6. 2014牡丹江网络赛ZOJPretty Poem(暴力枚举)

    /* 将给定的一个字符串分解成ABABA 或者 ABABCAB的形式! 思路:暴力枚举A, B, C串! */ 1 #include<iostream> 2 #include<cst ...

  7. 2014牡丹江 现场赛 F zoj 3824 Fiber-optic Network

    首先赞一下题目, 好题 题意: Marjar University has decided to upgrade the infrastructure of school intranet by us ...

  8. 神经科学如何影响人工智能?看DeepMind在NeurIPS2020最新《神经科学人工智能》报告,126页ppt...

    来源:专知 Jane Wang是DeepMind神经科学团队的一名研究科学家,研究元强化学习和受神经科学启发的人工智能代理.她的背景是物理.复杂系统.计算和认知神经科学. Kevin Miller是D ...

  9. 实时竞价的技术及行业展望

    实时竞价的技术及行业展望 本文对广告的RTB技术进行梳理,从优化算法到架构设计,同时展望了现在相关产品的发力点. 实时竞价.实时竞价允许广告买家根据活动目标.目标人群以及费用门槛等因素对每一个广告及每 ...

最新文章

  1. Caffe框架GPU与MLU计算结果不一致请问如何调试?
  2. 【数据结构专题】线段树(一)
  3. SaaS产品设计,从0到1案例实操
  4. keepalived 服务器内存持续升高问题
  5. 记6分的交通违法行为
  6. MySQL5.7 group by新特性,报错1055
  7. html万花筒照片代码,怎样拍出万花筒效果
  8. kotlin mysql数据库_在kotlin中使用mysql行级锁
  9. linux修改rm指令执行(数据安全)
  10. android 代码功能测试,Android触屏测试实例代码
  11. 如何禁用不需要的HTTP方法
  12. 关于使用yum“The program package-cleanup is...”的解决办法
  13. 人口各省预测模型matlab_基于MATLAB的人口预测模型
  14. C++第三方库管理工具vcpkg使用教程
  15. 【Missing separate debuginfos, use: debuginfo-install glibc-2.17-222.el7.x86_64】 解决方法
  16. 81章 老子1章到_《道德经》81章全文,建议全文背诵,终身体悟
  17. 一种面向业务流的内存管理算法
  18. 圆、椭圆和三角形的代码画法
  19. ubuntu 录屏软件
  20. 解决方案和产品经理的异与同

热门文章

  1. C#遍历文件夹下所有文件
  2. mockit学习(一)
  3. bzoj1079 [SCOI2008]着色方案
  4. 04-3. 统计素数并求和(20)
  5. 记一次成功的sql注入入侵检测附带sql性能优化
  6. WinCE的USB驱动开发
  7. 数据结构上机实践第三周项目3- 求集合并集
  8. JavaScript中的面向对象--对象继承
  9. HTML中的图像和链接
  10. Kalibr源码学习(一): 重投影误差