bzoj4770 图样】的更多相关文章

考虑求出所有MST的权值和再除以方案数,方案数显然是2mn. 按位考虑,显然应该让MST里的边高位尽量为0.那么根据最高位是0还是1将点集划分成两部分,整张图的MST就是由两部分各自的MST之间连一条最小边得到的.两部分的MST权值和可以dp得到,即设f[i][j]表示i个点权值在0~2j-1的MST权值和,枚举最高位是0的点的数量k,由f[k][j-1]和f[i-k][j-1]转移而来.问题只剩下求最小边的权值和. 这个东西也不是很好求,考虑求最小边不小于某值的方案数.同样根据最高位是0还是1…
题意 n个点的完全图,每个点的点权是在m位的二进制数中随机选取的.每条边的边权是两个点的点权的异或值. 问最小生成树的边权和的期望.模一个质数输出. 分析 考试的时候写这个题,然后期望得分100->实际得分20,然后调着调着没调出来呢,然后机房跳闸机器还原当时的打表程序没了. 然后悲痛地按考试时的方法重写一遍,重新打表,能A啊... 我的80分呢? 怎样少挂题?提高1A率.怎样提高1A率?少挂题. 首先只有\(2^nm\)种情况,我们可以算出所有的最小生成树的权值之和再除以总的方案数. 对于某种…
平时开发当中会用到很多png图样,但是自己又不太会做,因此做好的办法就是直接在网上下载下来用了,这里给大家推荐一个比较好用的网站,免费的,有很多好的png可以直接下载下来使用. http://www.iconarchive.com/ 在我们浏览器当中输入以上代码就可以得到巨量可用的png图片了.…
P3900 [湖南集训]图样图森破 链接 分析: 感觉像个暴力. 可以枚举回文串的回文中心,即枚举一个串,枚举一个串的位置作为回文中心,然后求出这个串内的回文串的长度. 此时如果回文串两端都没有到这个串的端点,那么以这个点作为回文中心的长度就直接算出来了. 如果回文串的长度刚好是这个串的长度,那么INF. 如果回文串一侧到了端点,那么枚举所有串,看看能否加到另一侧,来构成回文串.此过程记忆化搜索即可. 复杂度$O(nL \log nL)$ 代码: #include<cstdio> #inclu…
3654: 图样图森破 Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 123  Solved: 66[Submit][Status][Discuss] Description 有句老话说得好,人应该要成熟老练,也就是说不能 too simple,也不能 too young.但另外还有这么句老话,人无论何时都应该保持单纯而年轻的心态,换句话说,应该stay simple,stay young.于是人们就疑惑了,到底应不应该听长者的话呢?不过,不管听…
考虑枚举回文中心,然后向两边扩展,当匹配到当前串的边界的时候,枚举下一个串接上. 这个过程可以通过记忆化搜索来完成,设: $f[i][0]$表示对于$i$这个位置,$[i,串结尾]$等待匹配的最长回文子串. $f[i][1]$表示对于$i$这个位置,$[串开头,i]$等待匹配的最长回文子串. 如果在转移的过程中发现两个串都已经匹配到了边界,或者转移有环,那么说明答案无限. 用后缀数组支持lcp的询问,时间复杂度$O(nL+L\log L)$. #include<cstdio> #include…
题目传送门 传送门I 传送门II 题目大意 有一个$n$个点的完全图,每个点的权值是$[0, 2^{m})$中的随机整数,两点间的边的权值是两点点权的异或和,问它的最小异或生成树的边权和的期望. 考虑求最大异或生成树的分治做法,每次按最高位分成$V_0,V_1$两个集合(如果不行,那么这一层就不管). 然后再中间选一条最小边连接两个集合.两个集合分别再分治下去. 现在我们希望求到中间这条最小边的边权的期望. 直接求不好求,考虑换个方式统计. 设$h_{n,m,bit,lim}$表示在第$bit…
基本知识 基本的ER模型包含三类元素:实体.关系.属性. 实体(Entities):实体是首要的数据对象,常用于表示一个人.地方.某样事物或某个事件.一个特定的实体被称为实体实例(entity instance或entity occurrence).实体用长方形框表示,实体的名称标识在框内.一般名称单词的首字母大写. 关系(Relationships):关系表示一个或多个实体之间的联系.关系依赖于实体,一般没有物理概念上的存在.关系最常用来表示实体之间,一对一,一对多,多对多的对应.关系的构图是…
原题: 打印出如下图案(菱形): * *** ***** ******* ***** *** * 我的源码: #!/usr/bin/python # encoding=utf-8 # -*- coding: UTF-8 -*- # 打印以下图案: # * # *** # ***** #******* # ***** # *** # * x = int(input("please input the number:\n")) # *最多的一行的*个数 for i in range(1,x…
题目 分析: 老规矩,遇到期望要准备好随时投降... 大致想到了按位处理,然后分别下去搜索,再用组合数加加减减一下... 但是两个连通块之间连边的期望怎么算呢? 很好,投降... 下来看题解... 果然是记搜.. 首先我们设F(n,m)表示n个点取 [ 0 , 2^m )的值时所有最小生成树代价之和 那么Ans=F(n,m) / 2^(n*m) 再设G(S,T,m)表示一部分点集大小为S,另一部分大小为T,点权取值在[ 0 , 2^m )之间后,所有情况最小边权值的总和 于是F(n,m)可以记搜…