编码问题 题意就是a,b,c.....ab.....编码,给你一个字符串,输出这是第几个: 这里可以用暴力枚举,但也可以用组合数学的高超知识: 既然这样我就说一下排列组合的方法,如果要弄一个 各位数字递增的三位数,只需要在一个有序数列里面取三个数字,此时就无需关注顺序,因为顺序只能是升序的.比如0 1 2 3 4 5 6 7 8 9.取得9 5 8 那么他的顺序就只能是589.总数就是C(x,y),x代表位数,y代表可供选择的数的长度, 就像例子中是c(3,10).对于字母排列,道理也是一样.只…
题目 编码工作常被运用于密文或压缩传输.这里我们用一种最简单的编码方式进行编码:把一些有规律的单词编成数宇. 字母表中共有 \(26\) 个字母 \(\{\tt a,b,\cdots,z\}\),这些特殊的单词长度不超过 \(6\) 且字母按升序排列.把所有这样的单词放在一起,按字典顺序排列,一个单词的编码就对应着它在字典中的位置. 例如: \(\tt a\to 1\) ; \(\tt b\to 2\) ; \(\tt z\to 26\) ; \(\tt ab\to 27\) ; \(\tt a…
题意:给出一棵树,这棵树每个点有权值,然后有3种操作.操作一:修改树根为rt,操作二:修改u到v路径上点权值为w,操作三:询问以rt为根x子树的最小权值. 解法:如果没有修改树根操作那么这题就是树链剖分的裸题.但是修改树根操作会使得题目变得复杂一些,这里直接说结论:我们先直接以1为根建树进行树链剖分,这样的话根固定了那么路径修改操作就照常,然后我们要考虑换根操作对查询的影响(这是重点). 画图分析后可以发现,可以分为3种情况,①x==rt,询问的就是整棵树  ②x不在1到rt的路径上,对查询没有…
题面传送门 题意: 给出集合 \(S=[l_1,r_1]\cup[l_2,r_2]\cup[l_3,r_3]\cup\dots\cup[l_n,r_n]\) 和整数 \(k\),求有多少个三元组 \((a,b,c)\) 满足: \(a,b,c\in S\),\(a<b<c\) \(a,b,c\) 两两异或得到的值均 \(\leq k\) 答案对 \(10^9+7\) 取模. \(1\leq n\leq 2\times 10^4\),\(0\leq l_1\leq r_1\lt l_2\leq…
题目链接 https://www.luogu.org/problemnew/show/P1030 模板题 先讲一下二叉树的遍历 二叉树的遍历 分类 性质 求法 分为三类: 先序遍历(PreOrder):根节点→左子树→右子树 中序遍历(InOrder):左子树→根节点→右子树 后序遍历(PostOrder):左子树→右子树→根节点 我们可知: **序遍历实际上是指根节点的位置 无论哪种遍历顺序,左子树都在右子树的前面 在前序遍历中,第一个点是根节点 在后序遍历中,最后一个点是根节点 例如这样一个…
题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=8). 输入输出格式 输入格式: 2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列. 输出格式: 1行,表示一棵二叉树的先序. 输入输出样例 输入样例#1: BADC BDCA 输出样例#1: ABCD 代码 #include<iostream> #include<cstring> #include<algorithm> #include<cs…
题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度≤8. 输入输出格式 输入格式: 2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列. 输出格式: 1行,表示一棵二叉树的先序. 输入输出样例 输入样例#1: 复制 BADC BDCA 输出样例#1: 复制 ABCD ****深度优先搜索,首先我们要知道一点,后序排列的最后一个点就是根所以根据中序排列我们一点点去推根,从而得到前序排列 #include<cstdio> #include…
P4071 [SDOI2016]排列计数 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列恰好有 m 个数是稳定的 满足条件的序列可能很多,序列数对 10^9+7 取模. 错排+组合数. 首先n-m个元素是完全错排,带公式即可. 剩下的m个是要有序的,也就是从n个选m个. code: #include <iostream> #include <cstdio> #define…
题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=8). 输入输出格式 输入格式: 2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列. 输出格式: 1行,表示一棵二叉树的先序. 输入输出样例 输入样例#1: BADC BDCA 输出样例#1: ABCD 搜索 屠龙宝刀点击就送 #include<cstdio> #include<cstring> int t,q; ],mid[],c[]; char gen(in…
https://www.luogu.org/problem/show?pid=1030#sub 题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=8). 输入输出格式 输入格式: 2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列. 输出格式: 1行,表示一棵二叉树的先序. 输入输出样例 输入样例#1: BADC BDCA 输出样例#1: ABCD #include <algorithm> #include <cstr…