按题意建立好二叉树,再按照先序遍历输出结果. #include<cstdio> #include<vector> #include<queue> #include<string.h> #include<algorithm> using namespace std; struct node { int left, right, date; }node[]; ], flag[]; void dfs(int father) { printf("…
任何一个算法的设计取决于选定的数据结构,而算法的实现依赖于采用的存储结构. 之前线性表的数据元素都是非结构的原子类型,元素的值是不可再分的.下面学习的这两个线性表是很特殊的,其中数据元素本身也可能是一种数据结构. 认识数组和广义表 数组可以看成是一种特殊的线性表,也就是线性表中的数据元素本身也是一个线性表,数组中的个元素具有统一的类型.其实说白了就是在脑海中想数组中的数据如何在内存中以什么形式的线性表来存储.在C语言中,一个二维数组可以定义为其分量类型为一维数组类型的一维数组类型. 数组一旦被建…
1065 Beihang Collegiate Pronunciation Contest 2017 思路 在字符串中不断做匹配 找到一个匹配就输出 时间复杂度\(O(n)\) ps.模式串是定长的,因此看做常数 代码 #include<string> #include<iostream> using namespace std; int main() { int n; cin >> n; string ch; cin >> ch; for (auto i…
1062 ModricWang的撒币游戏 思路 此题为2017年ACM-ICPC亚洲区域赛乌鲁木齐赛区的A题,现场94个队中有38个队做出此题.在这里作为满分以外的题,是为了让大家看一下外面一些题的风格,不要被三位助教的出题风格所局限. 此题首先需要知道一些高中数学概率论的知识.扔起N个硬币,如果每个硬币下落时,正反面朝上的概率都是确定的,那么这些硬币中正面朝上的数量是呈二项分布的. 考虑使用DP,\(prob[i][j]\) 表示扔了第i次后,有j个硬币正面朝上的概率.首先根据题设,\(pro…
1066 ModricWang的水系法术 思路 比较典型的最大流问题,需要注意的是,题目已经暗示(明示)了这里的边是双向的,在建图的时候需要加上反向边的容量值. 解决最大流问题的基本思路就是不断在残量网络上找增广路径,这里可以参考一下我院远古学长Song Renfei对于ISAP算法的讲解:ISAP 时间复杂度\(O(V^2 \sqrt E)\) 代码 #include <iostream> #include <cstring> using std::ios_base; using…
1039 AlvinZH的学霸养成记IV 思路 难题,最大二分图匹配. 难点在于如何转化问题,n对n,一个只能攻击一个,判断是否存在一种攻击方案我方不死团灭对方.可以想到把所有随从看作点,对于可攻击的两个随从间连上边,这样就把问题转化为图了. 需要注意的是属性值的转化:免疫可看做生命值无限,剧毒可看做攻击力无限.(需要一点小小的机智) 图建好了,接下来怎么办呢?假设存在一种方案满足题意,那就是每个我方随从都可以找到敌方随从攻击,由于要团灭,只能存在一对一的情况,不存在多对一或一对多.如何表达这个…
850 AlvinZH的学霸养成记III 思路 难题.概率DP. 第一种思考方式:直接DP dp[i]:从已经有i个学霸到所有人变成学霸的期望. 那么答案为dp[1],需要从后往前逆推.对于某一天,有可能会增加一个学霸or不增加. ①增加:\((dp[i+1] + 1) * P\) ②不增加:\((dp[i] + 1) * (1-P)\) 其中,\(P = i * (n - i) * p / (C(n,2))\),C(n,2) = (n - 1) * n / 2.其含义是:n个人中选出一非学霸一…
1064 Bamboo和"Coco" 分析题意 每个亡灵至少一个花瓣,相邻的亡灵中思念值高的要获得的花瓣高(思念值相等是不需要花瓣一样多的).主要考贪心思路,为了使得花瓣总量最少,每次比思念值更低的"邻近亡灵"的花瓣数多一就可以了 思路 都是先保证每个亡灵至少一个花瓣 思路一 直接模拟思路,同时关心左边和右边(或者说前边和后边),一次循环是不够的,比如3 2 1,修改了1号的花瓣数,再修改2号的花瓣数,此时会对一号产生影响.需要多次遍历,直到没有新的改变为止,算法为…
Bamboo&APTX4844魔发药水 题意 "于是,Bamboo耐着性子,看巫师从袖子里掏出 M 瓶时光泉水和 K 粒绿色能量.每瓶时光泉水重量为 c ,生发效果为 l:每粒绿色能量的重量为w ,生发效果为 r.但一瓶APTX4844的重量不能超过 S,否则很难过安检(难道不是难以下咽?)." "配置魔发药水需要用到至多两种原料:固态的绿色能量和液态的时光泉水.但是由于两者副作用不一样,*制作时优先选用副作用小的绿色能量,即先考虑使用绿色能量使得生发效果最大,然后再…
题目描述: 样例: 实现解释: 所有结点对最短路径的板子题 知识点: 寻找所有结点对最短路径,动态规划 坑点: 无坑,注意建边即可 使用的算法为floyd算法 按照程序顺序解释如下: 首先建图,以邻接矩阵形式,初始化矩阵内容:对i==j的设为权值0,其他的设为INF(正无穷的大小取决于题目),以便后续计算时能区分自身和不可达结点.然后依据输入按照edge[u][v] = w的形式连点即可. 运行floyd算法 动态规划思想展现:最优子结构,状态转移方程 以下图为例:(来源网络) 上图中1号到5号…