Mark

[Noi2013]树的计数

做~自己de王妃 提交于 2020-11-27 04:39:39
Description 我们知道一棵有根树可以进行深度优先遍历(DFS)以及广度优先遍历(BFS)来生成这棵树的DFS序以及BFS序。两棵不同的树的DFS序有可能相同,并且它们的BFS序也有可能相同,例如下面两棵树的DFS序都是1 2 4 5 3,BFS序都是1 2 3 4 5 现给定一个DFS序和BFS序,我们想要知道,符合条件的有根树中,树的高度的平均值。即,假如共有K棵不同的有根树具有这组DFS序和BFS序,且他们的高度分别是h1,h2,...,hk,那么请你输出 (h1+h2..+hk)/k Input 有3行。 第一行包含1个正整数n,表示树的节点个数。 第二行包含n个正整数,是一个1~n的排列,表示树的DFS序。 第三行包含n个正整数,是一个1~n的排列,表示树的BFS序。 输入保证至少存在一棵树符合给定的两个序列。 Output 仅包含1个实数,四舍五入保留恰好三位小数,表示树高的平均值。 Sample Input 5 1 2 4 5 3 1 2 3 4 5 Sample Output 3.500 HINT 【评分方式】 如果输出文件的答案与标准输出的差不超过0.001,则将获得该测试点上的分数,否则不得分。 【数据规模和约定】 20%的测试数据,满足:n≤10; 40%的测试数据,满足:n≤100; 85%的测试数据,满足:n≤2000; 100%的测试数据,满足

BZOJ 3244: [Noi2013]树的计数

我怕爱的太早我们不能终老 提交于 2020-11-27 04:28:18
传送门 神仙题... 和树的深度有关,由于 $BFS$ 序的性质,显然可以通过把 $BFS$ 序分成若干段来求出深度,每一段就对应某一深度从左到右的所有节点,那么如果确定了分的段数就确定了树的深度(分的段数 $+1$) 为了方便,先把 $BFS$ 序变成从 $1$ 到 $n$ 的序列, $DFS$ 序当然也要随着变一下 考虑每个位置是否可以分段,无非 $3$ 种情况: $1.$ 此位置必须分,那么对树的深度贡献就是 $1$ $2.$ 此位置不能分,那么贡献就是 $0$ $3.$ 此位置可分可不分,那么贡献就是 $0.5$(此位置分的树的方案数和不分的树的方案数是一样的,如果分贡献 $1$,不分贡献 $0$,那么平均贡献就是 $0.5$) 考虑用 $BFS$ 序和 $DFS$ 序之间的关系求出每个位置的限制,设节点 $i$ 的 $BFS$ 序为 $bfn[i]$,$DFS$ 序为 $dfn[i]$ 对于 $BFS$ 序连续的两点 $x,y=x+1$(此时已经按 $bfn$ 重新标号了),如果 $dfn[x]>dfn[y]$ ,说明 $y$ 在 $x$ 的下一层 大概图长这样: 可以发现只有这种情况才会出现 $dfn[x]>dfn[y]$ 的情况,因为如果 $x$ 和 $y$ 在同一层那么显然 $y$ 会更晚被 $dfs$ 到 所以如果 $dfn[x]>dfn[x+1]$,那么 $x$

RISC-V为什么会成为热点?

狂风中的少年 提交于 2020-11-26 14:12:43
作者 | 贸泽电子 Mark Patrick(英国) 译者 | 禾沐 新的处理器指令集架构(ISA)并不会经常出现。加州大学伯克利分校开发的开源RISC-V ISA 已经在嵌入式产业中产生了不小的波澜,项目的目的是让开发者能够设计处理器核和生成对应的软件编译器。目前,该项目由RISC-V基金会运作,成员包括众多大学、跨国科技企业(比如谷歌、IBM、微软、英伟达和甲骨文)、芯片厂商和创业公司。 RISC-V 的目标是从其他处理器ISA的错误中学习,这之中的核心是稳定性,既包括指令集和核心本身,也扩展到芯片设计者、编译器作者、操作系统构架师和开发工具供应商。稳定性让强力的处理器核更加易于获取,并增强其可用性,这对于鼓励更多的工程师在整个生态圈中使用这一开源技术而言非常重要。应用开发者可以针对一个冻结的ISA 进行代码优化,在达到最小的内存使用和功耗的同时保证扩展性和对未来设备的兼容性。这使得处理器核开发者可以开发各种不同的指令集实现,从简单的多级流水线(pipeline)到乱序执行(out of order execution)。它们会有不同的延迟、尺寸和功耗,但是它们相互兼容,而且与生态系统中的工具兼容。 整个生态系统的稳定性对于RISC-V 指令集而言至关重要,在设计时RISC-V 考虑了32/64/128位地址空间并保证三者之间的兼容性;其架构还支持扩展

Vue.js 源码分析(二) 基础篇 全局配置

£可爱£侵袭症+ 提交于 2020-11-24 19:52:16
Vue.config是一个对象,包含Vue的全局配置,可以在启动应用之前修改下列属性,如下: ptionMergeStrategies ;自定义合并策略的选项 silent     ;是否关闭警告,默认为false,如果设置true,那么将不会有各种报错 productionTip    ;开发模式下是否在控制台显示生产提示,即一条You are running Vue in development mode提示,设置false,即可关闭该提示 devtools     ;是否允许vue-devtools(Vue调试神器)检查代码,浏览器环境下为true performance ;是否开启性能追踪,只有在开发模式和支持 performance.mark API 的浏览器上才有效 errorHandler ;指定组件的渲染和观察期间未捕获错误的处理函数。这个处理函数被调用时,可获取错误信息和 Vue 实例。 warnHandler ;Vue 的运行时警告赋予一个自定义处理函数。注意这只会在开发者环境下生效,在生产环境下它会被忽略。 ignoredElements ;忽略某些自定义元素 keyCodes ;给v-on 自定义键位别名。 isReservedTag ;保留标签,如有,则这些标签不能注册成为组件 例如当我们直接引入vue的js文件时: <! DOCTYPE html > <

HEX文件格式

北战南征 提交于 2020-11-24 14:33:47
Embedded的世界里,Hex文件是可以烧录到MCU中,被MCU执行的一种文件格式。 整个文件以行为单位,每行以冒号开头,内容全部为16进制码(以ASCII码形式显示)。 // 一个简单结构的HEX文件内容 :020000040008F2 :10000400FF00A0E314209FE5001092E5011092E5A3 :00000001FF 例子: Hex文件里每一行都可以理解为该结构: Record mark(:) - 数据长度Length(1Byte) - 地址Load offset(2Byte) - 数据类型Record type(1Byte) - 数据INFO or DATA(nByte) - 校验码CHKSUM(1Byte) 可以按照如下的方式进行拆分来分析其中的内容,例如 “:1000080080318B1E0828092820280B1D0C280D2854” 可以被看作“0x10 0x00 0x08 0x00 0x80 0x31 0x8B 0x1E 0x08 0x28 0x09 0x28 0x20 0x28 0x0B 0x1D 0x0C 0x28 0x0D 0x28 0x54” 第一个字节 0x10表示本行数据的长度,第二、三字节 0x00 0x08表示本行数据的起始地址; 第四字节 0x00表示数据类型,数据类型有:0x00、0x01、0x02、0x03

累到想删库,程序员职业倦怠的真实生活

独自空忆成欢 提交于 2020-11-24 10:26:49
很不幸,倦怠在软件开发中是一个非常真实的现象,尤其是创立并维护一个具有大量用户的开源项目。就这个话题,我深有体会。所以我来分析我的个人经验。 即使软件编程是你在这世上最喜欢的活动之一,每个整天写代码的人都会经历这样的事情,突然感觉“我想做别的事情,而不是坐在这写代码”。 你突然意识到,你已把冰激凌当成三餐,持续吃了好几年。你已厌倦了冰淇淋,不想再看到它。但偶尔吃冰淇淋的人不明白这一点,他们会想:你怎么会不想要冰淇淋了呢?—— Gary Bernhardt 我对编程开发的倦怠情况有一些个人经验,还有几个如何正视、防范和简单应对的小窍门 我为自己设定了一些开源社区的目标后,我很努力地为此工作,有着好运相伴,我取得了成功。随着项目的人气不断攀升,我对继续创建新项目的动力下降了。同时,为了满足成功项目带来的大量用户群所提出的要求,我的负担越来越重,而维护项目的压力也在不断增加。 这是我想要的,是吗? 倦怠十分狡猾,它悄然而至。它慢慢地折磨你,直到你认为这种感觉已经成为了新常态,这时你再也无法轻易跳出自己挖的坑了。—— Zach Holman 我记得曾经有一次,我躺在沙发上,也就是我现在坐的地方,一边解决新出现的慢性偏头痛 ,一边回顾我的生活。就像看推文一样,我不断地刷新并思考过当时编程世界中的一些政治问题,我发现自己对这些事情非常紧张,这本身就是一个问题。不仅如此

头号玩家在线观看_百度云迅雷下载

谁说我不能喝 提交于 2020-11-24 06:33:57
原名:Ready Player One 地区: 美国 语言:英语 / 日语 / 汉语普通话 首播: 2018 -03-30(中国大陆) / 2018-03-11(西南偏南电影节) / 2018-03-29(美国) 电视台: 类型: 动作 / 科幻 / 冒险 别名:玩家一号 / 挑战者1号(港) / 一级玩家(台) / 一号玩家 编剧:扎克·佩恩 / 恩斯特·克莱恩 导演:史蒂文·斯皮尔伯格 主演:泰伊·谢里丹 / 奥利维亚·库克 / 本·门德尔森 / 马克·里朗斯 / 丽娜·维特 / 森崎温 / 赵家正 / 西蒙·佩吉 / T·J·米勒 / 汉娜·乔恩-卡门 / 拉尔夫·尹爱森 / 苏珊·林奇 / 克莱尔·希金斯 / 劳伦斯·斯佩尔曼 / 佩蒂塔·维克斯 / 艾萨克·安德鲁斯 状态:HD高清 IMDB: tt1677720 剧情介绍   故事发生在2045年,虚拟现实技术已经渗透到了人类生活的每一个角落。詹姆斯哈利迪(马克·里朗斯 Mark Rylance 饰)一手建造了名为“绿洲”的虚拟现实游戏世界,临终前,他宣布自己在游戏中设置了一个彩蛋,找到这枚彩蛋的人即可成为绿洲的继承人。要找到这枚彩蛋,必须先获得三把钥匙,而寻找钥匙的线索就隐藏在詹姆斯的过往之中。   韦德(泰尔·谢里丹 Tye Sheridan 饰)、艾奇(丽娜·维特 Lena Waithe 饰)、大东(森崎温 饰

中英文1:2等宽字体

只谈情不闲聊 提交于 2020-11-21 12:04:45
折腾了半天字体。 起因是在linux下用ReText写rst格式文档,写标题的时候报错文字下的标记长度不够,明明是对对齐的。原因是中英文字体不是严格1:2等宽,1个中文字宽度不等于2个英文字宽度,造成错觉。换了几个等宽字体也不行。 搜索折腾了一番。总结如下: 最简单实用的办法是安装一个为中文优化过的等宽英文字体,设置字体时就选这个等宽英文字体。这种字体不多,例如:ubuntu mono。据说还有mplus fonts,应该是含有中日文的,没试过。 gnome terminal和vim,gvim有特殊处理,不用安装特殊字体,自动中英文1:2等宽。 Windos 7下,我记得有款达人自制的雅黑Consolas混合字体,挺棒的。中英文看起来都比较舒服。至于是不是中英文1:2等宽,有段时间没用Windows 7,不太记得了。 Windows 10下,看程序心情。 正常程序notepad, notepad++, 选择普通的等宽英文字体,自动中英文1:2等宽。 自制雅黑Consolas混合字体,不再中英文1:2等宽。 较高版本的Visual Studio 2012, 2017、SQL Server Management Studio 2017, 字体不会自动等宽。进入抽风模式 原本包含1:2等宽中英文的字体,如“新宋体”,能保持中英文1:2等宽 ubuntu mono,设置12号字体

JAVA I/O(三)内存映射文件

冷暖自知 提交于 2020-11-21 05:41:43
《Java编程思想》中对内存映射文件有详细的介绍,此处仅做简单记录和总结。内存映射文件允许创建和修改因为太大而不能放入内存的文件。 1. 内存映射文件简单实例 import java.io.IOException; import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; public class LargeMappedFiles { private static int LENGTH = 0x0000FFF ; public static void main(String[] args) throws IOException{ MappedByteBuffer out = new RandomAccessFile("test.dat", "rw" )           .getChannel() .map(FileChannel.MapMode.READ_WRITE, 0 , LENGTH); for ( int i = 0; i < LENGTH; i++ ) { out.put(( byte )'x' ); } for ( int i = LENGTH/2; i < LENGTH/2 + 6; i++ ) { System

[触动精灵]零基础小白学触动5-8

荒凉一梦 提交于 2020-11-21 04:00:43
零基础小白学触动 - 05 - 触动常用函数 点击 滑动 原理 其实都可以分解成 按下=》 等待一定时间或者移动动作=》 松开 点击: tSLib库的函数tap(x,y) 后面还有2个参数 可以自己看手册 https://www.zybuluo.com/miniknife/note/293935#函数tap-点击 滑动 moveTo(x1,y1,x2,y2,step) 详细的 https://www.zybuluo.com/miniknife/note/293935#函数moveto-滑动 ?如何实现精确滑动 https://zimaoxy.com/b/t-860-1-3.html 深入研究 暂时还没理解思路 而触动手册里面给的例子测试过 无法做到完美的精确滑动 就不用了 还有其他模式的滑动 在当前滑动无效的情况下 延时 mSleep() 坐标初始化函数 init(0) 没什么说的 0是home在下 1是home在右 2是home在左 脚本开始要坐标初始化下 而且不能把init() 放到其他文件然后require导入 是对main.lua无效的 血泪的教训 小知识:require 调用文件的使用注意 require会自动判断当前原码是否已经载入该文件 如果已经载入这个文件就不会再继续载入 给我们一个省事的用法 无法叠加require 比如说 我在主脚本里面调用自己的模版