树上行走

题目背景

\(\mathrm{Smart}\) 的脑洞非常大, 经常幻想出一些奇怪的东西。

题目描述

某一天,\(\mathrm{Smart}\) 幻想出了一棵没有边际的二叉树,脑补着在那棵二叉树上行走的场景。

\(\mathrm{Smart}\) 一开始在二叉树的根, 然后 \(\mathrm{Smart}\) 写下了一个由'L','R'两种字符构成的串,他称这个串为初始串,按照这个串的顺序, 碰到一个'L'就移动到左儿子,碰到一个'R' 就移动到右儿子。

\(\mathrm{Smart}\) 最后的位置就是他接下来操作的起点。

然后 \(\mathrm{Smart}\) 有写下一个串,他称这个串为操作串,由'U','L','R'三种字符构成,'U'表示移动到当前点的父亲(特殊地, 我们定义根节点
的父亲为根自己) ,'L','R'同上。

但是 \(\mathrm{Smart}\) 觉得直接按照操作串一步一步走十分无聊,所以 \(\mathrm{Smart}\) 会跳过一些操作(心情不好的时候也可能跳过所有操作, 或不跳过) ,现在 \(\mathrm{Smart}\) 想知道他会走到多少种可能的终点。 由于答案可能很大, 所以只需输出答案\(\mod 1,000,000,007\)的值。

输入输出格式

输入格式

第一行一个由'L','R' 两种字符构成的串。

第二行一个由'U','L','R' 三种字符构成的串。

输出格式

说明:

输出一行,为答案\(\mod 1000000007\)。

\(30\%\)的数据: 初始串长度\(\le 10\),操作串长度\(\le 5\);

\(50\%\)的数据: 初始串长度\(\le 100\), 操作串长度\(\le 10\);

另有\(20\%\)的数据: 操作串中没有'U'操作。

\(100\%\)的数据: 初始串长度\(\le 10^5\),操作串长度\(\le 10^5\)。


感觉非常神的一题,考试时至少想了两个小时无果。

想的是特殊数据,知道特殊数据了以后其实好做了

其间想过 几种简单DP 容斥 打表 子问题分治 字典序(康拓)展开 特殊情况找规律 几个方法 全凉了

事实上后面一段时间我一直在想“一个01串有多少种不同的子序列?”这个抽象的问题,殊不知,原本的题目给出的模型和解法更加贴近。

我们先给出一个大题的思路,然后具体讲解。

将答案分成2^字符集大小的容器进行统计

具体的,我们把统计的节点分为以下4类

分别代表:左右儿子都没去过的点,只去过左儿子的点,只去过右儿子的点,两个儿子都去过的点

我们用容器分别存这四类点的个数

然后从左往右做操作,更新谁谁走成了谁睡

如果加入'U'其实也很简单

只有最开始的'U'是有用的,把最开始的操作存起来,然后碰到一个就倒着弹出一个,更新某个状态就行啦


Code:

#include <cstdio>
#include <cstring>
#define ll long long
const ll mod=1e9+7;
const int N=1e5+10;
char t[N],s[N];
int tot;
ll dp[4];
int main()
{scanf("%s",s+1);tot=strlen(s+1);scanf("%s",t);int n=strlen(t);dp[0]=1;for(int i=0;i<n;i++){if(t[i]=='L'){(dp[1]+=dp[0])%=mod;(dp[0]+=dp[2])%=mod;(dp[3]+=dp[2])%=mod;dp[2]=0;}else if(t[i]=='R'){(dp[2]+=dp[0])%=mod;(dp[0]+=dp[1])%=mod;(dp[3]+=dp[1])%=mod;dp[1]=0;}else if(tot){if(s[tot--]=='L') ++dp[1];else ++dp[2];}}ll ans=((dp[0]+dp[1])%mod+(dp[2]+dp[3])%mod)%mod;printf("%lld\n",ans);return 0;
}

2018.8.17([数据已删除])

转载于:https://www.cnblogs.com/butterflydew/p/9494355.html

安徽师大附中%你赛day5 T3 树上行走 解题报告相关推荐

  1. 武汉工程大学第一届程序设计女生赛(牛客contest 4746)解题报告 Apare_xzc

    武汉工程大学第一届程序设计女生赛解题报告 xzc 2020.3.8 比赛链接:武汉工程大学第一届程序设计女生赛 A. Multiplication (101/861) 分析: 问x平方几次后就会> ...

  2. 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告

    [WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...

  3. 2011大纽约区域赛试题 Decoding EDSAC Data 解题报告

    2011大纽约程序设计竞赛,D题 Decoding EDSAC Data(题目链接). D ⋅ Decoding EDSAC Data The world's first full-scale, st ...

  4. ACM/ICPC2016沈阳网络赛(不完全)解题报告

    比赛地址: http://acm.hdu.edu.cn/contests/contest_show.php?cid=724 1003.hannnnah_j's Biological Test 题目大意 ...

  5. 2020蓝桥杯国赛Java大学B组解题报告

    文章目录 试题 A: 美丽的 2 试题 B: 扩散 试题 C: 阶乘约数 试题 D: 本质上升序列 试题 E: 玩具蛇 试题 F: 蓝肽子序列 试题 H: 画廊 试题 A: 美丽的 2 问题描述 小蓝 ...

  6. 2018第九届蓝桥杯省赛B组一点反思+解题报告

    划水!诶难受,可能自己是那种不会比赛的人吧.溜了溜了. 1.标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写 ...

  7. 关于安徽赛区推广校赛的实施办法

    关于安徽赛区 推广校赛的实施办法 全国组委会:   安徽赛区作为第一个省级赛区自2010年举办至今,受到安徽省教育厅和安徽各高校高度认可,是安徽省教育厅重点支持的大学生学科和技能竞赛A类赛事.但安徽赛 ...

  8. 中国最新奥数竞赛成绩出炉:南师大附中女生严彬玮满分夺冠!60人国家集训队名单公布...

    雷刚 发自 副中心  量子位 报道 | 公众号 QbitAI 第35届中国数学奥林匹克竞赛成绩公布. 同时也意味着新一届中国奥数国家集训队,正式集结. 60名中学生. 湖北贡献9人.广东7人,上海6人 ...

  9. 2021年兰州师大附中高考成绩查询,2021年兰州重点高中名单及排名,兰州高中高考成绩排名榜...

    "一千个人眼中,就有一千个哈姆雷特".关于兰州高职学校排名,每个人的观点也是各不相同,今天就给大家分享一下我心中的兰州高中排名及格局分布,主要参考依据是近年中考录取分数线及高考成绩 ...

  10. 2021年兰州师大附中高考成绩查询,西北师范大学附属中学2021年排名

    我们想了解的是这个学校的师资怎样,办学这么久以来有获得了什么样的成绩,获得了什么样的荣誉,这个学校是省级示范高中还是市级示范高中,而这个级别的什么样的排名情况,下面我为大家整理了作为省级示范高中学校的 ...

最新文章

  1. 我们为什么要探索人脑的奥秘?
  2. thinking in object pool
  3. commit与rollback命令
  4. mysql 临时表 插入_mysql临时表插入数据有关问题
  5. geometry-api-java 学习笔记(四)多线段 polyline
  6. 几个简单的Linux驱动程序
  7. Vue指令之v-on
  8. 36. In Depth Magento System Configuration
  9. 160个crackme 008 Andrénalin.1
  10. 有哪些软件堪称「神器」,却不被大众所知?
  11. ffmpeg h264 视频编码 模糊问题、MP4播放速度快问题
  12. Vue-amap 实现获取定位功能
  13. 苹果显示付款方式无效_最全实用收藏贴,如何设置苹果手机支付?令人头疼的问题终于解决...
  14. Rstudio 更改工作路径和安装包的路径
  15. DLL注入_远程线程注入
  16. 【Java基础】Map遍历的5种方式
  17. 十三道Python练习题
  18. eureka注册中心wro.css wro.js 404
  19. 美宇航局下一个挑战项目:高科技飞艇
  20. Vue-Router的push和replace方法[Uncaught (in promise) Error]解决方案

热门文章

  1. 企业邮箱是什么?企业邮箱和个人邮箱的区别在哪里
  2. VS编程,WPF控件增加图片背景的一种方法
  3. PHP开发微信商家转账到零钱接口
  4. 简单的网络打印的配置与管理(IP地址...)
  5. 穿越派·派盘 + 思源笔记 = 私人笔记本
  6. 【论文研读】-用于约束多目标优化的新型双阶段双种群进化算法
  7. pairing function
  8. A recap of native memory
  9. CISCO 基于时间访问控制
  10. arduino 继电器控制led灯开关