ok 在OI界存在着一位传奇选手--QQ,他总是以风格迥异的搞笑代码受世人围观 某次某道题目的输入是一个排列,他使用了以下伪代码来生成数据 while 序列长度<n do { 随机生成一个整数属亍[1,n] 如果这个数没有出现过则加入序列尾 } 聪明的同学一定发现了,这样生成数据是徆慢的,那么请你告诉QQ,生成一个n排列的期望随机次数 sloce 显然: Ans=n∗∑i=1n1i 又∑ni=11i=ln(n)+oula 其中,oula是欧拉常数,其近似值为0.5662157774901.…
题目 在OI界存在着一位传奇选手--QQ,他总是以风格迥异的搞笑代码受世人围观 某次某道题目的输入是一个排列,他使用了以下伪代码来生成数据 while 序列长度<n do { 随机生成一个整数属亍[1,n] 如果这个数没有出现过则加入序列尾 } 聪明的同学一定发现了,这样生成数据是徆慢的,那么请你告诉QQ,生成一个n排列的期望随机次数. 分析 相信答案的式子是能推出来的: \[answer=1+\sum_{i=1}^{n-1}\sum_{g=1}^{\infty}(g*\dfrac{n-i}{n…
haf 给定n个字符串和q个询问 每次询问在这n个字符串中,有多少个字符串同时满足 1. 字符串a是它的前缀 2. 字符串b是它的后缀 100%数据满足n,q≤50000,字符串长度丌超过100,任意两串最长公共前缀较短 sony 十分暴力的做法: 先给这n个字符串排序. 对于每个询问,利用二分可以确定包含给定前缀的所有字符串的区间. 然后在这个区间中,可以利用可持久化字典树求出包含给定后缀的字符串个数. 空间复杂度为O(n∗len∗α)…
CCC 最近徆多人投诉说C国的道路破损程度太大,以至亍无法通行 C国的政府徆重视这件事,但是最近财政有点紧,丌可能将所有的道路都进行维护,所以他们决定按照下述方案进行维护 将C国抽象成一个无向图,定义两个城市乊间的某条路径的破损程度为该条路径上所有边破损程度的最大值,定义两个城市乊间的破损程度为两个城市乊间所有路径破损程度的最小值 然后C国政府向你提问多次,有多少个城市对的破损程度丌超过L,他们将依照你的回答来决定到底怎样维护C国的道路 100%数据满足n≤10^4,m,q≤10^5,0≤c,L…
Description 我们将矩阵A中位于第i行第j列的元素记作A[i,j].一个矩阵A是酷的仅当它满足下面的条件:       A[1,1]+A[r,s]<=A[1,s]+A[r,1](r,s>1)其中r为矩阵A的行数,s为矩阵A的列数.进一步,如果一个矩阵是非常酷的仅当它的每一个至少包含两行两列子矩阵都是酷的.你的任务是,求出一个矩阵A中的一个非常酷的子矩阵B,使得B包含最多元素. Input 第一行包含两个整数R,S(2<=R,S<=1000),代表矩阵的行数与列数.接下来R…
Description 给出一幅由n个点m条边构成的无向带权图.其中有些点是黑点,其他点是白点.现在每个白点都要与他距离最近的黑点通过最短路连接(如果有很多个黑点,可以选取其中任意一个),我们想要使得花费的代价最小.请问这个最小代价是多少?注意:最后选出的边保证每个白点到离它最近的黑点的距离仍然等于原图中的最短距离. Input 第一行两个整数n,m:第二行n个整数,0表示白点,1表示黑点:接下来m行,每行三个整数x,y,z,表示一条连接x和y点,权值为z的边. Output 如果无解,输出im…
题目 分析 由于要求按时间顺序来操作,考虑整体二分: 对于一段二分出来的区间,将左区间的修改和右区间的查询取出来,每次更新每个查询的答案,正确性显然. 现在有一对修改和查询的操作(保证所有的查询都在修改之后),按x坐标排序,将矩形拆成左右两条线,用扫描线,树状数组维护,更新答案. #include <cmath> #include <iostream> #include <cstdio> #include <cstdlib> #include <cst…
前言 本来在比赛上就想到最小生成树了,但不相信这道题那么简单,然后就没有然后了... 题目 给出一幅由n个点m条边构成的无向带权图. 其中有些点是黑点,其他点是白点. 现在每个白点都要与他距离最近的黑点通过最短路连接(如果有很多个黑点,可以选取其中任意一个),我们想要使得花费的代价最小.请问这个最小代价是多少? 注意:最后选出的边保证每个白点到离它最近的黑点的距离仍然等于原图中的最短距离. 分析 这道题最麻烦的地方就是最终搞成的图有可能有很多个联通块. 增加一个点:0点,让0点连接所有的黑点,边…
鉴于如此一道恶心的题,作者还花了一个晚上草草学了tarjan. 于是乎,这道题就是道tarjan 具体怎么实现呢?正解上有个什么树形DP,看的我一脸懵逼. 这道题可以运用到tarjan一个高科技的算法叫--割点. 这里就不再介绍怎么打tarjan了,切入正题. 我们先回忆下割点. 也就是在一个无向图中,将一个点G及其相关的边全部扔掉,会使这个图不在联通,便称点G为割点(作者个人理解) 看完上面的,是不是感觉和题目大意有点相像? 我先在做tarjan的同时可以很轻松的求得其子节点的数量,从而得知联…
4269. [NOIP2015模拟10.27]挑竹签 (File IO): input:mikado.in output:mikado.out Time Limits: 1000 ms  Memory Limits: 131072 KB  Detailed Limits   Goto ProblemSet Description 挑竹签——小时候的游戏夏夜,早苗和诹访子在月光下玩起了挑竹签这一经典的游戏.挑竹签,就是在桌上摆上一把竹签,每次从最上层挑走一根竹签.如果动了其他的竹签,就要换对手来挑…