
思考&证明
gyarenas
这个作者很懒,什么都没留下…
展开
-
关于补码的一些东西
负数的补码左移后(未溢出)相当于乘2,负数补码右移且符号位补1则相当于处以2而且也是向下取整(例如 -5右移后会变为 -3),所以右移的最终结果是-1而非0,用圆周模型思考比较容易理解。原创 2013-01-04 20:11:12 · 602 阅读 · 0 评论 -
Dilworth定理与有向无圈图的链覆盖
Dilworth定理的应用条件为偏序集,定理转化为图论语言就是偏序集哈斯图的最长反链等于其最小链点覆盖数。 对于有的问题可以通过贪心分解链求最小链点覆盖或直接求其最大反链长度,从而得出解,例如:俩个全序集的笛卡尔积构成的偏序关系。 例题: http://poj.org/problem?id=1065 http://poj.org/problem?id=1548 http://poj.org原创 2016-11-08 12:00:08 · 1258 阅读 · 0 评论 -
所有边权均不相同的无向图最小生成树是唯一的证明
用反证法,假设G存在俩个不同的最小生成树①.设G的俩个不同的最小生成树T1 T2,设这俩颗生成树的并集为子图G1,G1为连通图且T1 T2显然为G1的最小生成树,将G1中两颗生成树的公共边删去,得到子图G2。G2由一个或多个连通分量组成,其中至少有一个连通分量的最小生成树不唯一(否则若所有连通分量的最小生成树唯一,则将删掉的公共边加上,则T1等于T2,这与假设相矛盾)。②.对其中一个最小生原创 2014-12-29 22:10:39 · 26755 阅读 · 6 评论 -
增加最少的边使有向图变为强连通图
http://codeforces.com/contest/22/problem/E标题党。。。此题是这个问题的简化版本,每个点出度至多为一。先强连通缩点,每个点出度至多为一可以保证从任一个入度为0的点出发只能到达一个出度为0的点 。按标号从第一个入度为0的点a开始,找到其对应的出度为0的点(缩后)a',再找到第二个入度为0的点b,连边a'->b,...,直到最后一个出度为0的点z‘,连边原创 2015-04-30 16:14:11 · 3457 阅读 · 0 评论 -
关于除法与乘法逆元关系的一些理解
*表示普通乘法,/表示普通除法,⊙m表示模m乘法首先可以证明⊙m>是一个群,其中Zn为模m的简化剩余系设x,y∈Zn,则有x,y与m互质,所以x⊙my = (x*y)mod m = z,z与m互质,z∈Zn,所以⊙m在Zn上是封闭其单位元为1,且⊙m满足结合律,利用公因数理论可知,x∈Zn,gcd(x, m) = 1,所以必存在y,使得(x*y) mod m = 1,设gcd(y,原创 2013-01-16 11:02:47 · 2174 阅读 · 0 评论 -
数论笔记
以下如无特殊说明,都默认在整数集中,^为幂符号,|为整除符号,%为取模符号,!| 表示不能整除1. 费马数是形如2^(2^n)+1(n >= 0)的数,表位Fn,任意俩个费马数是互质的。 证明:首先,对任意的Fn 都有 Fn%2 = 1,所以对于任意的不为1的d,使得 d|Fn 都有d>2;当n>m时,可以证明 Fm|2^(2^n)-1; ①设Tk = 2^(2^k)-原创 2014-01-14 15:57:15 · 1885 阅读 · 0 评论 -
关于B-K tree与k-d tree一些自己想法
以前用B-K tree做过一个题,最近学习k-d tree,感觉这两个树有某些相似,这个俩种树都是寻找距目标点临近最近的点(B-K tree针对给定距离k以内,k-d tree针对给定最近的k个点)。其中B-K tree只要求数据点之间定义可度量的距离,支持求距给定点距离k以内的数据点。相对于暴力法来说,是常数级别的提高,但有时会很有效(比如数据点之间距离范围很大,但阀值k很小),一个应用就是原创 2015-05-10 19:19:41 · 2437 阅读 · 0 评论 -
关于有重边图的双连通分量
有向图的的情况比较简单只有一种强连通,重边和连向自己的边对于强连通都没有任何影响无向图的双连通要分点双连通(biconnected)和边双连通(edge_biconnected),连向自己的边对于俩种双连通也没有任何影响,但是重边对点双连通没有影响,但是对于边双连通有影响,因为在求边双连通时,要求对于任意俩点至少存在两条“边不重复”的路径,所以这个时候表示图我们不能用vector了,而是用邻接原创 2013-03-24 12:34:11 · 2653 阅读 · 0 评论 -
关于C++中的random_shuffle
由于无法知道源码,所以在fzoj上测试了下,基本可以确定是O(n),但常数较大,在fzoj服务器上1s内可以执行的数据量大约为6x10^7。原创 2013-07-22 16:11:33 · 1416 阅读 · 0 评论 -
Investigating Div-Sum Property UVA11361
思路按照训练指南上说的的递推,table[i][j][k]表示i位数各位数字和对给定数取模为j,数字本身对给定数取模为k的数字个数,最后的统计细节需要注意,要从高位到低位统计,个位要单算。#include #include #include #include #include #include #include #include #include #inc原创 2013-01-18 09:50:46 · 637 阅读 · 0 评论 -
an efficient representation for sparse set
根据同名论文翻译而来。这里说的set,是数学意义上的set,就是集合。一般实现的时候,有两种方法,一是树,二是hash。这两种方法比较通用,但是不够高效。对于特定的场合,比如知道set里元素的取值范围是[0,N],N不会太大,这时候就可以直接用一个bool数组标记这个元素在不在set里。但是如果N比较大的话,会有两个问题,一是初始化时间比较长,二是遍历的时间比较长,都是O(N)的。假设集合转载 2013-01-17 09:02:32 · 700 阅读 · 0 评论 -
循环串问题
首先了解一下最小覆盖串问题即求一个最小的子串使其能够通过复制的方法覆盖整个子串(不用恰好覆盖,可以多出来一块)例如: ABCDABCDAB 的最小覆盖子串为:ABCD假设字符串的存储空间为 str[0]~str[len-1], next数组是KMP算法的回溯数组,一个字符串的最小覆盖子串为str[0]~str[n-1],当且仅当n == len-next[len],证明见:http原创 2012-12-18 21:17:19 · 977 阅读 · 0 评论 -
分球问题2则
很经典的俩个问题了分球问题1: 给定27个小球,已知其中只有一个小球与其他球的重量不同而且比其他的球重,现在给你一个天平(没有砝码,只能把2堆物体放到俩边,比较那一堆重,或相同),问最坏情况下最少称几次可以找到该球? 答案是3次, 用三分法,每次把问题的规模缩减为原来的1/3,所以对于n个小球来说最多只需原创 2012-11-27 22:04:42 · 816 阅读 · 0 评论 -
一个用Raney引理推导Catalan数通项公式的方法
Raney引理:设整数序列A = {Ai, i=1, 2, …, N},且部分和Sk=A1+…+Ak,序列中所有的数字的和SN=1,在A的N个循环表示中,有且仅有一个序列B,满足B的任意部分和Si均大于零。Raney引理有一个很简单的数形结合的证明见《浅谈数形结合思想在信息学竞赛中的应用》。关于Catalan数wiki和百科上写的很详细,其中有一个问题一个栈(无穷大)的进栈序列为1,2原创 2012-12-23 21:57:19 · 1883 阅读 · 0 评论 -
hihoCoder#1090
题目地址:题目大意:在一条单行路(只允许向着同一方向走)上有n辆车,第i辆车以不超过L[i]的速度从位置X[i]走到位置Y[i](X[i] 分析:方便起见我们假设数据已经按照X[i]从小到大的顺序排好序(编号从0到n-1,如无特殊说明我们直接以i表示第i辆车),且车辆行驶方向为从左向右。仔细思考,可以发现下面两条性质:性质一,左边的车对右边的车没有影响,也即原创 2015-10-01 13:38:40 · 1266 阅读 · 0 评论