last

涂色游戏 题解

末鹿安然 提交于 2019-12-09 13:43:52
bsoj6412 没找到出处。。。 题意简述:给一颗树,一次操作定义为随机选择一个点,染掉该点和它周围一圈的点,问期望多少次染黑所有点。 这是道好题啊!全面考察了容斥、反演、期望和dp,有许多值得注意的细节。 一、做法1(容斥/二项式反演+dp) 1.1 化式子 首先肯定第一个想到的式子就是 \[ Ans = \sum_{i=1}^{\infty} i * P(在染第i次时刚好黑完) \] 这是根据期望的定义直接得到的。 然后发现这个 \(i\) 实在是非常的恶心,因为它居然和无穷有关。但既然是一个合法的期望题,这个 \(i\) 必然可以找到某种转化的手段把它弄成一个能算的且收敛的东西,比如等比数列级数之类的。 于是这里有一个套路化法 \[ \sum_{i=1}^{\infty} i * P(x=i) = \sum_{i=0}^{\infty} P(x>i) \] ( \(P(A)\) 代表事件 \(A\) 发生的概率) 就是改了改枚举的方式,随便想一想应该能够明白了吧( 总之,根据上式我们就可以得到 \[ Ans = \sum_{i=0}^{\infty} P(染i次未黑完) \] 我们成功把 \(i\) 丢到了 \(P\) 里面去。但是我们还是没有办法求这个东西。 发现虽然选点可以进行无数次,但是最多只会选有限个点,许多选点是重复的。用实际选择的点的个数

深入JDK源码之LinkedList类

自闭症网瘾萝莉.ら 提交于 2019-12-09 11:48:42
LinkedList实现列表所有可选的操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable LinkedList类实现Deque接口,为 add、poll 提供先进先出队列操作,以及其他堆栈和双端队列操作。 所有操作都是按照双重链接列表的需要执行的。在列表中索引的操作将从开头或结尾遍历列表(从靠近指定索引的一端)。 注意,此实现不是同步的。如果多个线程同时访问一个链接列表,而其中至少一个线程从结构上修改了该列表,则它必须保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方法来“包装”该列表。最好在创建时完成这一操作,以防止对列表进行意外的不同步访问,如下所示: List list

回文自动机[学习笔记]

佐手、 提交于 2019-12-09 11:17:04
回文自动机一一处理回文串问题的有力武器 这几天一直沉迷字符串数据结构 看了很多大佬的回文自动机学习笔记,稍微有点理解了,整理一下吧 1.概念 \(\quad\) a.大概: 同其他自动机一样,回文自动机是个DAG,它用相当少( \(O(n)\) )的空间复杂度就存储了这个字符串的所有回文串信息。一个回文自动机包含不超过 \(|S|\) 个节点,每个节点都表示了这个字符串的一个不重复的回文子串,同时一个节点会有不超过字符集大小的边连向其他节点,以及一条fail边连向这个点的fail...这些都会在下面介绍 \(\quad\) b.森林: 和别的自动机不太一样,回文自动机是有两棵树的森林:其中一棵是长度为偶数的回文串集合,另一棵是长度为奇数的回文串集合,这两棵树的根节点分别表示长度为0(空串)和-1(无实际含义,便于运算)的回文串; \(\quad\) c.边:自动机中每条有向边都有一个字符类型的权值,起点的串左右分别加上这个字符得到的就是终点的串。举个栗子:设一条边权为 \(c\) 的边连接的两个点分别是 \(A,B\) , \(A\) 表示回文串 \(aba\) ,则 \(B\) 表示的回文串就是 \(cabac\) 。特别的,如果 \(A\) 是那个长度为 \(-1\) 的根, \(B\) 串就是这条边的权值。。。 \(\quad\) d.点:当你插入一个字符的时候

利用HTML5的一个重要特性 —— DeviceOrientation来实现手机网站上的摇一摇功能

蓝咒 提交于 2019-12-09 11:07:16
<script> // DeviceOrientation将底层的方向传感器和运动传感器进行了高级封装,提供了DOM事件的支持。 // 这个特性包括两个事件: // 1、deviceOrientation:封装了方向传感器数据的事件,可以获取手机静止状态下的方向数据(手机所处的角度、方位和朝向等)。 // 2、deviceMotion:封装了运动传感器的事件,可以获取手机运动状态下的运动加速度等数据。 // 使用这两个事件,可以很能够实现重力感应、指南针等有趣的功能。 // 现在在很多Native应用中有一个非常常见而时尚的功能 —— 摇一摇,摇一摇找人、摇一摇看新闻、摇一摇找金币。。。 // 也许在android或者ios的客户端上对这个功能你已经很了解了,但是现在,我将告诉你如何在手机网页上实现摇一摇的功能。 // OK,那我们现在就开始吧,嘿嘿~ // 先来让我们了解一下设备运动事件 —— DeviceMotionEvent:返回设备关于加速度和旋转的相关信息,其中加速度的数据包含以下三个方向: // x:横向贯穿手机屏幕; // y:纵向贯穿手机屏幕; // z:垂直手机屏幕。 // 鉴于有些设备没有排除重力的影响,所以该事件会返回两个属性: // 1、accelerationIncludingGravity(含重力的加速度) // 2、acceleration

UN Report: Last 10 Years Likely the Hottest Decade on Record——VOA慢速英语

China☆狼群 提交于 2019-12-09 08:02:27
听力地址: UN Report: Last 10 Years Likely the Hottest Decade on Record 中英对照: 联合国报告称过去十年可能是有记录以来最热的十年 Words in This Story decade – n. any period of 10 years greenhouse gas – n. gases in the atmosphere that trap heat certain – adj. completely sure of something regular – adj. happening repeatedly devastating – adj. causing a lot of damage or destruction acidic – adj. containing acid emission – n. the act of releasing something renewable – adj. any naturally occurring kind of energy, such sunlight or wind impact – n. the effect that a person, event, or situation has on someone or something 来源: https:/

gtid

拜拜、爱过 提交于 2019-12-08 17:25:45
gtid知识: 1、gtid配置 MySQL通过全局变量gtid_mode控制开启/关闭GTID模式。但是gtid_mode是只读的,可添加到配置文件中,然后重启mysqld来开启GTID模式。相关配置项如下: gtid-mode = ON enforce_gtid_consistency = 1 log-slave-updates = 1 log-bin = mysql-bin log-bin-index = mysql-bin.index 2、查看配置 > show global variables like 'gtid_%'\G; *************************** 1. row *************************** Variable_name: gtid_executed Value: 5a1a41db-9f15-11e9-a991-e4434b210720:1-2, 5aa95098-9f15-11e9-98f3-e4434b5a47f8:1-429, 5bcba8f5-9f15-11e9-9b14-e4434b210748:1-6319147104, 5d2b585f-9f15-11e9-a58d-e4434b2106e8:1-1373519, 62cdce4f-9f15-11e9-9f0d-e4434b21b430:1-2,

JDK源码那些事儿之ConcurrentLinkedDeque

試著忘記壹切 提交于 2019-12-08 15:04:39
非阻塞队列ConcurrentLinkedQueue我们已经了解过了,既然是Queue,那么是否有其双端队列实现呢?答案是肯定的,今天就继续说一说非阻塞双端队列实现ConcurrentLinkedDeque 前言 JDK版本号:1.8.0_171 ConcurrentLinkedDeque是一个基于链表实现的无界的线程安全的同时支持FIFO、LIFO非阻塞双端队列。操作上可类比ConcurrentLinkedQueue,利用CAS进行无锁操作,同时通过松弛度阈值设置来减少CAS操作,在理解这个类前可先去参考理解我之前对ConcurrentLinkedQueue的源码分析 为了说明的方便,我们区分下,活动结点是item非null的结点,有效结点是保持着前后关系的结点,作者在注释中解释了将一个结点删除分为3个步骤: logical deletion:逻辑删除,item置为null,前后结点关联关系依旧保持,此时不为活动结点,为有效结点 unlinking:有效结点可以通过前驱和后继指针到达其他活动节点,但是活动节点不可到达有效结点,保证迭代器的正常,并最终可被GC回收 gc-unlinking:有效结点完全孤立,为无效结点,不可到达其他任何活动结点,其他结点也不可到达此结点 区分定义是便于源码分析时的说明,参考下图所示理解: 类定义 public class

redis命令 info persistence

纵然是瞬间 提交于 2019-12-08 10:51:30
loading:服务器是否正在载入持久化文件 rdb_changes_since_last_save:离最近一次成功生成rdb文件,写入命令的个数,即有多少个写入命令没有持久化 rdb_bgsave_in_progress:服务器是否正在创建rdb文件 rdb_last_save_time:离最近一次成功创建rdb文件的时间戳。当前时间戳 - rdb_last_save_time=多少秒未成功生成rdb文件 rdb_last_bgsave_status:最近一次rdb持久化是否成功 rdb_last_bgsave_time_sec:最近一次成功生成rdb文件耗时秒数 rdb_current_bgsave_time_sec:如果服务器正在创建rdb文件,那么这个域记录的就是当前的创建操作已经耗费的秒数 rdb_last_cow_size:RDB过程中父进程与子进程相比执行了多少修改(包括读缓冲区,写缓冲区,数据修改等)。 aof_enabled:是否开启了aof aof_rewrite_in_progress:标识aof的rewrite操作是否在进行中 aof_rewrite_scheduled:rewrite任务计划,当客户端发送bgrewriteaof指令,如果当前rewrite子进程正在执行,那么将客户端请求的bgrewriteaof变为计划任务

leetcode 43. 字符串相乘 C语言

偶尔善良 提交于 2019-12-08 06:02:07
void stringPlus(char *nums,int last,int plus)//plus 0~81 { int flag = 0; while(plus) { if(nums[last]-'0' + plus%10 + flag > 9)//进位 { nums[last] = nums[last] + plus%10 + flag - 10; flag = 1; } else { nums[last] = nums[last] + plus%10 + flag; flag = 0; } plus = plus / 10; last--; } while(flag) { if(nums[last]-'0' + plus%10 + flag > 9)//进位 { nums[last] = nums[last] + plus%10 + flag - 10; flag = 1; } else { nums[last] = nums[last] + plus%10 + flag; flag = 0; } last --; } } char* multiply(char* num1, char* num2) { int MAX_LEN=230; char* ans = (char *)malloc(sizeof(char)*MAX_LEN); for(int i = 0;i!

SELECT LAST_INSERT_ID() returns 0 after using prepared statement

强颜欢笑 提交于 2019-12-07 11:57:03
问题 I am using MySQL and a prepared statement to insert a BLOB record (jpeg image). After executing the prepared statement, I issue a SELECT LAST_INSERT_ID() and it returns 0. In my code I put a breakpoint after the execution command and in a MySQL command (monitor) window, I issue the SELECT LAST_INSERT_ID() and it returns zero. In the MySQL command (monitor) window, I issue an SQL statement to select all the IDs and the last (only) inserted ID is 1 (one). I am using: Server version: 5.1.46