高一数学集合中如何用数轴表示集合怎么确定取不取等于号 比如这道题

可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

来自科学教育类芝麻团 今天 09:51

数轴上与表示1的点的距离是2的点所表示的数有(3和-1)

摘要: 题目描述 有 $n$ 个箱子,每个箱子里有且仅有一把钥匙,每个箱子有且仅有一把钥匙可以将其打开。现在随机打开 $m$ 个箱子,求能够将所有箱子打开的概率。 题解 组合数学+概率dp 题目约定了每个点的入度和出度均为1,因此最终的图一定是若干个环。每个环都至少选择一个点即可满足要求。 预处理出每个环的

摘要: 题目描述 给出 $n$ 个点和 $n-1$ 种颜色,每种颜色有若干条边。求这张图多少棵每种颜色的边都出现过的生成树,答案对 $10^9+7$ 取模。 输入 第一行包含一个正整数 N(N<=17), 表示城市个数。 接下来 N-1 行,其中第 i行表示第 i个建筑公司可以修建的路的列表: 以一个非负数

摘要: 题目描述 给定一棵n个点的有根树,编号依次为1到n,其中1号点是根节点。每个节点都被染上了某一种颜色,其中第i个节点的颜色为c[i]。如果c[i]=c[j],那么我们认为点i和点j拥有相同的颜色。定义depth[i]为i节点与根节点的距离,为了方便起见,你可以认为树上相邻的两个点之间的距离为1。站在

摘要: 题目描述 Alice有n个字符串S_1,S_2...S_n,Bob有一个字符串集合T,一开始集合是空的。 接下来会发生q个操作,操作有两种形式: “1 P”,Bob往自己的集合里添加了一个字符串P。 “2 x”,Alice询问Bob,集合T中有多少个字符串包含串S_x。(我们称串A包含串B,当且仅当

摘要: 题目描述 你有一个字符串S,一开始为空串,要求支持两种操作 在S后面加入字母C 删除S最后一个字母 问每次操作后S有多少个两两不同的连续子串 输入 一行一个字符串Q,表示对S的操作 如果第i个字母是小写字母c,表示第一种加字母c的操作 如果为-表示删除操作,保证所有删除操作前S都非空 |Q|<=10

摘要: 题目描述 给出一棵n个点、以1为根的有根树,点有点权。要求支持如下两种操作: M x y:将点x的点权改为y; Q x:求以x为根的子树的最大连通子块和。 其中,一棵子树的最大连通子块和指的是:该子树所有子连通块的点权和中的最大值 (本题中子连通块包括空连通块,点权和为0)。 给出一棵n个点、以1为

摘要: 题目描述 给出一棵树,点有点权。多次增加某个点的点权,并在某一棵子树中询问:选出若干个节点,使得每个叶子节点到根节点的路径上至少有一个节点被选择,求选出的点的点权和的最小值。 输入 输入文件第一行包含一个数n,表示树的大小。 接下来一行包含n个数,表示第i个点的权值。 接下来n-1行每行包含两个数f

摘要: 题目描述 给出 $n$ 个字符,初始每个字符单独成字符串。支持 $m$ 次操作,每次为一下三种之一: $1\ i\ j$ :将以 $i$ 结尾的串和以 $j$ 开头的串连到一起。 $2\ i$ :将 $i$ 所在串从 $i$ 位置和 $i$ 下一个位置之间断开。 $3\ S\ k$ :对于字符串 $

摘要: 题目描述 加里敦星球的人们特别喜欢喝可乐。因而,他们的敌对星球研发出了一个可乐机器人,并且放在了加里敦星球的1号城市上。这个可乐机器人有三种行为:停在原地,去下一个相邻的 城市,自爆。它每一秒都会随机触发一种行为。现在给出加里敦星球城市图,在第0秒时可乐机器人在1号城市,问经过了t秒,可乐机器人的行

摘要: 题目描述 给出平面上 $n$ 个圆,在x轴上选出尽可能少的点,使得每个圆中至少有一个点。求这个最小点数。 输入 第1行: N R 分别表示激光点的个数和射电望远镜能检测到的半径 第2~N+1行: Xi Yi 表示 激光点的坐标位置 1≤R≤50 1≤N≤100 -1000≤ Xi Yi ≤ 1000

摘要: 题目描述 现在有一个长度为n的随机排列,求它的最长上升子序列长度的期望。 为了避免精度误差,你只需要输出答案模的余数。 输入 输入只包含一个正整数n。N<=28 输出 输出只包含一个非负整数,表示答案模的余数。 可以证明,答案一定为有理数,设其为a/b(a、b为互

摘要: 题目描述 给你一个长度为 $n$ 的序列,将其分成若干段,每段选择一个数,获得 $这个数\times 它在这段出现次数的平方$ 的价值。求最大总价值。 $n\le 10^5$ 。 输入 第 1 行:一个整数,表示 N。 第 2 .. N + 1 行:每行一个整数,第 i + 1 行表示 si。 输出

摘要: 题目描述 小N手上有一个N*M的方格图,控制某一个点要付出Aij的代价,然后某个点如果被控制了,或者他周围的所有点(上下左右)都被控制了,那么他就算是被选择了的。一个点如果被选择了,那么可以得到Bij的回报,现在请你帮小N选一个最优的方案,使得回报-代价尽可能大。 输入 第一行两个正整数N,M表示方

摘要: 题目描述 给出一棵 $n$ 个点的树,每条边的边权为1或0。求有多少点对 $(i,j)$ ,使得:$i$ 到 $j$ 的简单路径上存在点 $k$ (异于 $i$ 和 $j$ ),使得 $i$ 到 $k$ 的简单路径上0和1数目相等,$j$ 到 $k$ 的简单路径上0和1数目也相等。 输入 第1行包含

摘要: 题目描述 两人进行 $T$ 轮游戏,给定参数 $F$ ,每轮给出 $N$ 堆石子,先手和后手轮流选择石子数大于等于 $F$ 的一堆,将其分成任意(大于1)堆,使得这些堆中石子数最多的和最少的相差不超过1(即尽量均分)。求先手和后手谁必胜。 输入 输入第一行包含两个正整数T和F,分别表示游戏组数与给定

摘要: 题目描述 给你一棵 $n$ 个点的树,对这棵树进行随机点分治,每次随机一个点作为分治中心。定义消耗时间为每层分治的子树大小之和,求消耗时间的期望。 输入 第一行一个整数n,表示树的大小接下来n-1行每行两个数a,b,表示a和b之间有一条边注意点是从0开始标号的 输出 一行一个浮点数表示答案四舍五入到

摘要: 题目描述 给定一个长度为N的颜色序列C,对于该序列中的任意一个元素Ci,都有1<=Ci<=M。对于一种颜色ColorK来说,区间[L,R]内的权值定义为这种颜色在该区间中出现的次数的平方,即区间[L,R]内中满足Ci=ColorK的元素个数的平方。接下来给出Q个询问,询问区间[L,R]内颜色[a,b

摘要: 题目描述 给出 $n$ 个瓶子和无限的水,每个瓶子有一定的容量。每次你可以将一个瓶子装满水,或将A瓶子内的水倒入B瓶子中直到A倒空或B倒满。$m$ 次操作,每次给 $[l,r]$ 内的瓶子容量增加 $x$ ,或询问使用 $[l,r]$ 内瓶子能够凑出的最小体积。 输入 第一行包括两个数字:瓶子数n,

摘要: 题目描述 给出 $n$ 个瓶子和无限的水,每个瓶子有一定的容量。每次你可以将一个瓶子装满水,或将A瓶子内的水倒入B瓶子中直到A倒空或B倒满。从中选出 $k$ 个瓶子,使得能够通过这 $k$ 个瓶子凑出的最小体积最大。求这个体积。 输入 第1行:2个整数N,K, 第2..N 行:每行1个整数,第i+1

摘要: 题目描述 给出一个数字串,多次询问一段区间有多少个子区间对应的数为P的倍数。其中P为质数。 输入 第一行一个整数:P。第二行一个串:S。第三行一个整数:M。接下来M行,每行两个整数 fr,to,表示对S 的子串S[fr…to]的一次询问。注意:S的最左端的数字的位置序号为 1;例如S为213567,

摘要: 题目描述 给出一棵 $n$ 个点的树,每个点有物品重量 $w$ 、体积 $c$ 和数目 $d$ 。要求选出一个连通子图,使得总体积不超过背包容量 $m$ ,且总重量最大。求这个最大总重量。 输入 输入第一行一个正整数T,表示测试数据组数。 对于每组数据, 第一行两个正整数n;m; 第二行n个非负整数

摘要: 题目描述 有 $n$ 个点,点 $i$ 和点 $j$ 之间可以连 $0\sim c_{i,j}$ 条无向边。求连成一张无向连通图的方案数模 $10^9+7$ 。两个方案不同,当且仅当:存在点对 $(i,j$ ,使得 $i$ 与 $j$ 之间的边数不同。 输入 标准输入。输入第一行包含一个正整数n,表

摘要: 题目描述 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树旁,独自思索着人生的哲理。李哲是一个喜爱思考的孩子,当他看到在月光的照射下柠檬树投在地面上的影子是如此的清晰,马上想到了一个问题:树影的面积是多大呢?李哲知道,直接

摘要: 题目描述 一个原力网络可以看成是一个可能存在重边但没有自环的无向图。每条边有一种属性和一个权值。属性可能是R、G、B三种当中的一种,代表这条边上原力的类型。权值是一个正整数,代表这条边上的原力强度。原力技术的核心在于将R、G、B三种不同的原力融合在一起产生单一的、便于利用的原力。为了评估一个能源网络

摘要: 题目描述 n 个沙茶,被编号 1~n。排完队之后,每个沙茶希望,自己的相邻的两人只要无一个人的编号和自己的编号相差为 1(+1 或-1)就行; 现在想知道,存在多少方案满足沙茶们如此不苛刻的条件。 输入 只有一行且为用空格隔开的一个正整数 N,其中 100%的数据满足 1≤N ≤ 1000; 输出

摘要: 题目描述 一个长度为N的序列的首项为X,以后的每一项要么比前一项大A,要么比前一项小B。已知总和为M,求一组可行方案。 输入 第一行一个正整数N。第二行四个整数依次是X,A,B,M。 输出 输出一行N个整数,用空格隔开。数据保证有解。 样例输入 410 1 2 37 样例输出 10 11 9 7 题

摘要: 题目描述 赌城拉斯维加斯的米高梅大赌场最近推出了一种新式赌法。它的玩法是由庄家设局(所用赌具是一批五颜六色的筹码),赌徒只要交付一定数额的赌资即可入局。开赌前庄家将手中的筹码依次排开铺成一排构成一局,然后公布若干个筹码序列供赌徒选择,赌徒可以从庄家设的局中取走与公布序列相一致的筹码,然后庄家将余下的

摘要: 题目描述 给你一个数列,每次你可以选择连续的一段,付出 $a+b\times 极差^2$ 的代价将其删去,剩余部分拼到一起成为新的数列继续进行此操作。求将原序列全部删去需要的最小总代价是多少。 输入 第一行包含一个正整数n,表示成绩单的数量。 第二行包含两个非负整数a,b,表示给定的评估参数。 第三

摘要: 题目描述 给你一个字符串L和一个字符串集合S,如果S的某个子串在S集合中,那么可以将其删去,剩余的部分拼到一起成为新的L串。问:最后剩下的串长度的最小值。 输入 输入的第一行包含一个字符串,表示L。 第二行包含一个数字n,表示集合S中元素个数。 以下n行,每行一个字符串,表示S中的一个元素。 输入字

摘要: 题目描述 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”。它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年的降雨量严格小于X年。例如2002,2003,2004和2005年的降雨量分别为4920,5901,2832和3890,则可以说“2005年是自2003年以来最多的”,但不能

摘要: 题目描述 给定一张n个点,m条双向边的无向图。 你要从1号点走到n号点。当你位于x点时,你需要花1元钱,等概率随机地买到与x相邻的一个点的票,只有通过票才能走到其它点。 每当完成一次交易时,你可以选择直接使用那张票,也可以选择扔掉那张票然后再花1元钱随机买另一张票。注意你可以无限次扔票。 请使用最佳

摘要: 题目描述 给定n个点,m条双向边的图。其中有k个点是重要的。每条边都有一定的长度。 现在要你选定一些边来构成一个图,要使得k个重要的点相互连通,求边的长度和的最小值。 输入 共m+2行 第1行:n,k,m,n个点,k个重要的点,m条边; 第2行共K个点 第3至第m+2行,每行包括3个数字,a,b,c

摘要: 题目描述 Coffee的世界里也是有棒棒糖卖的,Coffee买了N(1≤N≤50000)只连着的。这N只棒棒糖包裹在小塑料袋中,排成一列,相邻的两只棒棒糖的塑料袋是接起来的。为了方便,我们把棒棒糖从左到右编号为1..N。每只棒棒糖有一种口味。第i只的口味是ci(1≤ci≤50000)。两只棒棒糖i,

摘要: 题目描述 JYY有N个平面坐标系中的矩形。每一个矩形的底边都平行于X轴,侧边平行于Y轴。第i个矩形的左下角坐标为(Xi,Yi),底边长为Ai,侧边长为Bi。现在JYY打算从这N个矩形中,随机选出两个不同的矩形,并计算它们的并的大小。JYY想知道,交的大小的期望是多少。换句话说即求在所有可能的选择中,

摘要: 题目描述 在Byteland的首都,有一个矩形围栏围起来的公园。在这个公园里树和访客都以一个圆形表示。公园有四个出入口,每个角落一个(1=左下角,2=右下角,3=右上角,4=左上角)。访客能通过这些出入口进出公园。访客在同时碰到一个角落的两条边时就可以通过该角落进出公园。访客在公园里可以自由地移动,

摘要: 题目描述 给你一棵以1为根的有根树,初始除了1号点为黑色外其余点均为白色。Bob初始在1号点。每次Alice将其中至多k个点染黑,然后Bob移动到任意一个相邻节点,重复这个过程。求最小的k,使得无论Bob怎样移动,经过的节点都是黑色节点。 输入 第一行,包含1个整数,n,表示建筑的数量。 接下来n-

摘要: 题目描述 给定n个正整数a1,a2,…,an,求 的值(答案模10^9+7)。 输入 第一行一个正整数n。 接下来n行,每行一个正整数,分别为a1,a2,…,an。 输出 仅一行答案。 样例输入 3 6 10 15 样例输出 1595 题解 欧拉函数 由于 $\varphi$ 是积性函数,所以可以单

摘要: 题目描述 求一个数列本质不同的至少含有两个元素的上升子序列数目模10^9+7的结果。 题解 树状数组 傻逼题,离散化后直接使用树状数组统计即可。由于要求本质不同,因此一个数要减去它前一次出现时的贡献(即以它上一次出现的位置为最后一个元素的上升子序列数目)统计到答案中。 由于要包含至少两个元素,因此还

摘要: 题目描述 "可爱的妹子就像有理数一样多,但是我们知道的,你在数轴上随便取一个点取到有理数的概率总是0,"芽衣在床上自顾自的说着这句充满哲理的话,"诶,柚子,我写完概率论的作业你就和我出去约会怎么样""好呀,但是你要做完才可以哦"柚子回答道,芽衣立刻从床上翻下来冲到了座位上,诶,就一道题啊,真好,题目

摘要: 题目描述 Alice和Bob做游戏,给出一张有向图表示运输网络,Alice先给Bob一种最大流方案,然后Bob在所有边上分配总和等于P的非负费用。Alice希望总费用尽量小,而Bob希望总费用尽量大。求两人都采取最优策略的情况下最大流及总费用。 输入 第一行三个整数N,M,P。N表示给定运输网络中节

摘要: 题目描述 给你一个序列,支持4种操作:1.查询区间最大值;2.查询区间历史最大值;3.区间加;4.区间赋值。 输入 第一行一个正整数T,表示Bob需要监视CPU的总时间。 然后第二行给出T个数表示在你的监视程序执行之前,Bob干的事让CPU在这段时间内每个时刻的使用率达已经达到了多少。 第三行给出一

摘要: 题目描述 给出数轴上坐标从小到大的 $R$ 个点,坐标范围在 $1\sim L$ 之间。选出一段连续的点,满足:存在一个点,使得所有选出的点到其距离和不超过 $B$ 。求最多能够选出多少点。 $R\le 10^5,L\le 10^9,B\le 2\times 10^{15}$ 输入 第一行 三个整数

摘要: 题目描述 有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态。要求第i行第j列的格子只能参与mi,j次交换。 输入 第一行包含两个整数n,m(1<=n, m<=20)。以下n行为初始状态,每行为一个包含m个字符的01串,其中0表示黑色棋子,1

摘要: 题目描述 给你一张 $n$ 个点 $m$ 条边的DAG,$1$ 号节点没有入边。再向这个DAG中加入边 $x\to y$ ,求形成的新图中以 $1$ 为根的外向树形图数目模 $10^9+7$ 。 输入 输入文件的第一行包含四个整数 n、m、x 和 y ,依次代表枫叶上的穴位数、脉络数,以及要添加的脉

摘要: 题目描述 给出一个 $n$ 个点的有向图,每条边的权值都在 $[1,9]$ 之间。给出 $t$ ,求从 $1$ 到 $n$ ,经过路径边权和恰好为 $t$ 的方案数模2009。 输入 第一行包含两个整数,N T。 接下来有 N 行,每行一个长度为 N 的字符串。 第i行第j列为'0'表示从节点i到节

摘要: 题目描述 给你一棵 $n$ 层的完全二叉树,每个节点可以染黑白两种颜色。对于每个叶子节点及其某个祖先节点,如果它们均为黑色则有一个贡献值,如果均为白色则有另一个贡献值。要求黑色的叶子节点数目不超过 $m$ ,求最大总贡献值。 $n\le 10$ 输入 第一行两个数 n;m。接下来 2^(n-1) 行

摘要: 题目描述 棋盘是一个n×m的矩形,分成n行m列共n*m个小方格。现在萌萌和南南有C种不同颜色的颜料,他们希望把棋盘用这些颜料染色,并满足以下规定: 1. 棋盘的每一个小方格既可以染色(染成C种颜色中的一种) ,也可以不染色。 2. 棋盘的每一行至少有一个小方格被染色。 3. 棋盘的每一列至少有一个小

摘要: 题目描述 给一棵树,每条边有权.求一条简单路径,权值和等于K,且边的数量最小.N <= 200000, K <= 1000000 输入 第一行 两个整数 n, k第二..n行 每行三个整数 表示一条无向边的两端和权值 (注意点的编号从0开始) 输出 一个整数 表示最小边数量 如果不存在这样的路径 输

摘要: 题目描述 给定一个 $n\times m$ 的方格图,每个格子有 ↑、↓、←、→,表示从该格子能够走到相邻的哪个格子。有一些格子是空着的,需要填上四者之一,需要满足:最终的方格图中,从任意一个位置出发都能够走出方格图。求方案数 mod 10^9+7。 $数据组数\le 10$ ,$n,m\le 30

摘要: 题目描述 给定 $n$ 和 $m$ ,求所有 长度为 $n$ ,字符集大小为 $m$ 的字符串,每个前缀的最短循环节长度乘积 的总和。 $n\le 12,m\le 10^9$ 题解 DFS+KMP 对于字符串中的每一种字符,将其看作:该字符第一次出现位置之前的字符种类数+1,把得到的序列称为“该字符

摘要: 题目描述 给出一个长度为 $2^n$ 的序列,编号从0开始。每次操作后,如果 $i$ 与 $j$ 的二进制表示只差一位则第 $i$ 个数会加上操作前的第 $j$ 个数。求 $t$ 次操作后序列中的每个数是多少。 输入 第一行两个正整数 n , t,意义如题。

摘要: 题目描述 给出一个有 $2^n$ 个叶子节点的完全二叉树。每个叶子节点可以选择黑白两种颜色。 对于每个非叶子节点左子树中的叶子节点 $i$ 和右子树中的叶子节点 $j$ :如果 $i$ 和 $j$ 的颜色都为当前节点子树中颜色较多(相等视为白色)的那个,则不需要付出代价;都为较小的那个则需要付 $2

摘要: 题目描述 IOI铁路是由N+2个站点构成的直线线路。这条线路的车站从某一端的车站开始顺次标号为0...N+1。 这条路线上行驶的电车分为上行电车和下行电车两种,上行电车沿编号增大方向行驶,下行电车沿编号减小方向行驶。乘坐这两种电车的话,移动1站的距离需要T秒。换句话说,乘坐上行电车从车站i走到车站i

摘要: 题目描述 佩内洛普是新建立的超级计算机的管理员中的一员。 她的工作是分配工作站给到这里来运行他们的计算研究任务的研究人员。 佩内洛普非常懒惰,不喜欢为到达的研究者们解锁机器。 她可以从在她的办公桌远程解锁这些机器,但她并不觉得这卑贱的任务配得上她,所以她决定忽略安全指南偷偷懒。她可以直接地要求,研究

摘要: 题目描述 输入 第一行两个空格隔开的正整数n和d,分别表示关数和相邻僵尸间的距离。接下来n行每行两个空格隔开的正整数,第i + 1行为Ai和 Xi,分别表示相比上一关在僵尸队列排头增加血量为Ai 点的僵尸,排头僵尸从距离房子Xi米处开始接近。 输出 一个数,n关植物攻击力的最小总和 ,保留到整数。

摘要: 题目描述 输入 第一行包含一个正整数N,表示树中结点的个数。第二行包含N个正实数,第i个数表示xi (1<=xi<=10^5)。第三行包含N个正实数,第i个数表示yi (1<=yi<=10^5)。第四行包含N个正实数,第i个数表示pi (1<=pi<=10^5)。第五行包含N个正实数,第i个数表示q

摘要: 题目描述 一个 $n$ 行的代码出了bug,每行都可能会产生这个bug。你要通过输出调试,在其中加入printf来判断bug出现的位置。运行一次程序的时间为 $r$ ,加入一条printf的时间为 $p$ ,求最坏情况下调出程序的最短时间。 输入 输入包括一行三个整数: n(1≤n≤10^6),代码

摘要: 题目描述 给出 $n$ 个点,每次选择任意一条边,问这样 $n-1$ 次后得到一棵树的方案数是多少。 输入 一个整数N。 输出 一行,方案数mod 9999991。 样例输入 4 样例输出 96 题解 Prufer序列 答案完全可以看作两部分:生成一棵树的方案数*最终的树的个数。 生成一棵树的方案数

摘要: 题目描述 给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? 输入 第一行为N(0 < N < = 1000),接下来N行,第i+1行给出第i个节点的度数Di,如果对度数不要求,则输入-1 输出 一个整数,表示不同的满足要求的树的个数,无解输出0 样例输

摘要: 题目描述 给出数列 $A$ 的递推公式如下图所示,$T$ 次给定 $n$ ,求 $A_n$ 。 输入 输入文件第一行有且只有一个正整数T,表示测试数据的组数。第2~T+1行,每行一个非负整数N。 输出 输出文件共包含T行。第i行应包含一个不含多余前缀0的数,它的值应等于An(n为输入数据中第i+1行

摘要: 题目描述 给一颗n个节点的树,边权均为1,初始点权均为0,m次操作:Q x:询问x的点权。M x d w:将树上与节点x距离不超过d的节点的点权均加上w。 输入 第一行两个正整数:n,m接下来的n-1行,每行三个正整数u,v,代表u,v之间有一条边。接下来的m行,每行给出上述两种操作中的一种。 输出

摘要: 题目描述 在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i]。不幸的是,这片土地常常发生地震,并且随着时代的发展,城市的价值也往往会发生变动。接下来你需要在线处理M次操作:0 x k 表示发生了一次地震,震中城市为x,

摘要: 题目描述 给出一个n*m的矩阵,某些格子不能通过,某些格子只能上下通过或左右通过。求经过所有非不能通过格子的哈密顿回路条数。 输入 第一行有两个数N, M表示地图被分割成N*M个块,接下来有N行,每行有M个字符。 . 表示这个块可以通过 - 表示这个块只可以左右通过 | 表示这个块只可以上下通过 #

摘要: 题目描述 给你一个 m * n 的矩阵,每个矩阵内有个权值V(i,j) (可能为负数),要求找一条路径,使得每个点最多经过一次,并且经过的点权值之和最大。 输入 第一行 m, n,接下来 m行每行 n 个数即 V(i,j) 输出 一个整数表示路径的最大权值之和. 样例输入 2 3 1 -2 1 1

摘要: 题目描述 给你一个 m * n 的矩阵,每个矩阵内有个权值V(i,j) (可能为负数),要求找一条回路,使得每个点最多经过一次,并且经过的点权值之和最大。 输入 输入文件中的第一行为两个正整数n和m,表示游乐场的大小为n×m。因为这个娱乐场很狭窄,所以n和m满足:2<=n<=100,2<=m<=6。

摘要: 题目描述 平面上摆放着一个n*m的点阵(下图所示是一个3*4的点阵)。Curimit想知道有多少三点组(a,b,c)满足以a,b,c三点共线。这里a,b,c是不同的3个点,其顺序无关紧要。(即(a,b,c)和(b,c,a)被认为是相同的)。由于答案很大,故你只需要输出答案对1,000,000,007

摘要: 题目描述 给你 $n$ 个平面向量,选出它们中的一部分,使得它们的和的长度最大。求这个最大长度的平方。 输入 第一行包含一个正整数n(n<=200000),表示指令条数。 接下来n行,每行两个整数x,y(|x|,|y|<=10000),表示你可以从(a,b)移动到(a+x,b+y)。 输出 输出一行

摘要: 题目描述 你要维护一个向量集合,支持以下操作: 1.插入一个向量(x,y) 2.删除插入的第i个向量 3.查询当前集合与(x,y)点积的最大值是多少。如果当前是空集输出0 输入 第一行输入一个整数n,表示操作个数 接下来n行,每行先是一个整数t表示类型,如果t=1,输入向量 (x,y);如果t=2,

摘要: 题目描述 给出字符串s1、s2、s3,找出一个字符串w,满足: 1、w是s1的子串; 2、w是s2的子串; 3、s3不是w的子串。 4、w的长度应尽可能大 求w的最大长度。 输入 输入有三行,第一行为一个字符串s1第二行为一个字符串s2, 第三行为一个字符串s3。输入仅含小写字母,字符中间不含空格。

摘要: 题目描述 有N个位置,M个操作。操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c。如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数是多少。 输入 第一行N,M接下来M行,每行形如1 a b c或2 a b c 输出 输出每个询问的

摘要: 题目描述 给定一个M行N列的01矩阵,以及Q个A行B列的01矩阵,你需要求出这Q个矩阵哪些在原矩阵中出现过。所谓01矩阵,就是矩阵中所有元素不是0就是1。 输入 输入文件的第一行为M、N、A、B,参见题目描述。接下来M行,每行N个字符,非0即1,描述原矩阵。接下来一行为你要处理的询问数Q。接下来Q个

摘要: 题目描述 给出一张 $n$ 个点 $m$ 条边的无向图和 $p$ 个特殊点,每个特殊点有一个颜色。要求选出若干条边,使得颜色相同的特殊点在同一个连通块内。输出最小边权和。 输入 第一行包含三个整数 n;m;p,表示情报站的数量,可以建立的通道数量和重要情报站的数 量。接下来 m 行,每行包含三个整数

摘要: 题目描述 给出一个N×M的方格图,每个格子有自己权值,权值为0的格子已被选定。现要再选定一些格子,使得所有选定的格子(包括一开始已被选定的格子)四联通,并且选定的格子的权值之和最小。输出这个最小权值及一种可行方案。 输入 第一行有两个整数,N和 M,描述方块的数目。 接下来 N行, 每行有 M 个非

摘要: 题目描述 给你(0,0)、(n,0)、(x,y)和另外m个点,除(0,0)(n,0)外每个点横坐标都大于0小于n,纵坐标都大于0。 输入 第一行,三个整数n,x,y分别表示河边城市和首都是(0,0),(n,0),(x,y)。 第二行,一个整数m。 接下来m行,每行两个整数a,b表示A国的一个非首都非

摘要: 题目描述 给出一个序列,要求删除一段非空区间,使得剩下的数的个数大于等于2。求所有删除方式剩下的数的最大公约数的和。 输入 第一行包含一个正整数n(3<=n<=100000),表示序列的长度。 第二行包含n个正整数a_1,a_2,...,a_n(1<=a_i<=10^9),分别表示序列中的每个元素。

摘要: 题目描述 致力于建设全国示范和谐小村庄的H村村长dadzhi,决定在村中建立一个瞭望塔,以此加强村中的治安。我们将H村抽象为一维的轮廓。如下图所示 我们可以用一条山的上方轮廓折线(x1, y1), (x2, y2), …. (xn, yn)来描述H村的形状,这里x1 < x2 < …< xn。瞭望塔

摘要: 题目描述 给出一棵n个点的树,求有多少个si使得整棵树可以分为n/si个连通块。 输入 第一行一个正整数N,表示这棵树的结点总数,接下来N-1行,每行两个数字X,Y表示编号为X的结点与编号为Y的结点相连。结点编号的范围为1-N且编号两两不同。 输出 一行一个整数Ans,表示所求的方案数。 样例输入

摘要: 题目描述 小Z所在的城市有N个公交车站,排列在一条长(N-1)km的直线上,从左到右依次编号为1到N,相邻公交车站间的距离均为1km。 作为公交车线路的规划者,小Z调查了市民的需求,决定按下述规则设计线路: 1.设共K辆公交车,则1到K号站作为始发站,N-K+1到N号台作为终点站。 2.每个车站必须

摘要: 题目描述 给出一棵树,支持三种操作: 加入一条路径; 删除一条路径; 查询有多少条路径包含某给出路径。 输入 第一行一个正整数n。 接下来n - 1 行每行两个整数u, v,表示一条星际航道连接行星 u 与行星 v。 接下来一行一个正整数m,表示已经被发现的跳跃点个数。 接下来m行每行两个整数s,

摘要: 题目描述 给定一棵N个点的树,求树上一条链使得链的长度乘链上所有点中的最小权值所得的积最大。 其中链长度定义为链上点的个数。 输入 第一行N 第二行N个数分别表示1~N的点权v[i] 接下来N-1行每行两个数x、y,表示一条连接x和y的边 输出 一个数,表示最大的痛苦程度。 样例输入 3 5 3 5

摘要: 题目描述 给定一个NM的01矩阵,每次可以选定一个位置,将它和它相邻格子的数取反。问:怎样操作使得所有格子都变为0。当有多组解时,优先取操作次数最小的;当操作次数相同时,优先取字典序最小的。 输入 第一行两个整数N和M。 接下来是一个NM的01原矩阵。 1 ≤ N,M ≤ 20 输出 输出NM的答案

摘要: 题目描述 http://uoj.ac/problem/274 题解 语文题+LCT 对于这种语文题建议还是自己读题好一些。。。 读懂题后发现:由于温度互不相同,最大生成树上的路径必须走(不走的话温度大的边少了,字典序一定会更小),并且不能多走边(因为多走的话串会变长,长度大反而亏),因此答案就是最大

摘要: 题目描述 P 博士将他的计算任务抽象为对一个整数的操作。 具体来说,有一个整数 $x$ ,一开始为0。 接下来有 $n$ 个操作,每个操作都是以下两种类型中的一种: 1 a b :将 $x$ 加上整数 $a?2^b$ ,其中 $a$ 为一个整数,$b$ 为一个非负整数 2 k :询问 $x$ 在用二

摘要: 题目描述 如果两个长度相等的字符串,如果存在一种字符的一一映射,使得第一个字符串的所有字符经过映射后与第二个字符串相同,那么就称它们“匹配”。现在给出两个串,求第一个字符串所有长度等于第二个字符串的长度的子串中与第二个字符串“匹配”的所有子串的位置。 输入 输入文件的第一行包含两个正整数case和C

摘要: 题目描述 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色。最左边是白色棋子,最右边 是黑色棋子,相邻的棋子颜色不同。 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色。最左边是白色棋子,最右边 是黑色棋子,相邻的棋子颜色不同。 小奇可以移

摘要: 题目描述 给出一棵树,初始每个点都是非必经的。多次改变某个点的必经状态,并询问从任意一个点出发,经过所有必经的点并回到该点的最小路程。 输入 第一行,两个整数N、M,其中M为宝物的变动次数。 接下来的N-1行,每行三个整数x、y、z,表示村庄x、y之间有一条长度为z的道路。 接下来的M行,每行一个整

摘要: 题目描述 给一棵m个结点的无根树,你可以选择一个度数大于1的结点作为根,然后给一些结点(根、内部结点和叶子均可)着以黑色或白色。你的着色方案应该保证根结点到每个叶子的简单路径上都至少包含一个有色结点(哪怕是这个叶子本身)。 对于每个叶结点u,定义c[u]为从根结点从U的简单路径上最后一个有色结点的颜

摘要: 题目描述 给你一个 $1\sim n$ 的排列 $a_i$ ,若 $i\le j$ 且 $a_i\ge a_j$ ,则 $i$ 到 $j$ 有一条边。现在给你这张图,求既是独立集(任意两个选定点都没有边)又是覆盖集(任意一个非选定点都存在一个选定点与之相连)的点集数模 $10^9+7$ 。 输入 输

摘要: 题目描述 $n$ 张牌,$r$ 轮游戏,每轮从左向右操作,遇到第 $i$ 张牌有 $p_i$ 的概率选中,选中会产生 $d_i$ 的贡献,丢弃掉该牌并结束这一轮,否则继续下一张。问最终的期望贡献。 输入 输入文件的第一行包含一个整数 T,代表测试数据组数。 接下来一共 T 组数据。 每组数据的第一行

摘要: 题目描述 给出一个圈和若干段,问:对于所有的 $i$ ,选择第 $i$ 段的情况下,最少需要选择多少段(包括第 $i$ 段)能够覆盖整个圈? 输入 第1行,包含2个正整数N,M,分别表示边防战士数量和边防站数量。 随后n行,每行包含2个正整数。其中第i行包含的两个正整数Ci、Di分别表示i号边防战士

摘要: 题目描述 给出一个长度为 $n$ 的序列,序列中每一个数都是正整数。现在给出 $m$ 个指定区间以及 $q$ 次操作,每次操作将某个位置的数-1(最多减到0),并询问有多少个指定区间的区间和为0。强制在线。 给出一个长度为 $n$ 的序列,序列中每一个数都是正整数。现在给出 $m$ 个指定区间以及

摘要: 题目描述 定义一个区间(l,r)的长度为r-l,空区间的长度为0。 给定数轴上n个区间,请选择其中恰好k个区间,使得交集的长度最大。 输入 第一行包含两个正整数n,k(1<=k<=n<=1000000),表示区间的数量。 接下来n行,每行两个正整数l,r(1<=l<r<=10^9),依次表示每个区间

摘要: 题目描述 给出 $n$ 个括号序列,从中选出任意个并将它们按照任意顺序连接起来,求以这种方式得到匹配括号序列的最大长度。 输入 第一行包含一个正整数n(1<=n<=300),表示括号序列的个数。 接下来n行,每行一个长度在[1,300]之间的括号序列,仅由小括号构成。 输出 输出一行一个整数,即最大

摘要: 题目描述 小Q的工作是采摘花园里的苹果。在花园中有n棵苹果树以及m条双向道路,苹果树编号依次为1到n,每条道路的两端连接着两棵不同的苹果树。假设第i棵苹果树连接着d_i条道路。小Q将会按照以下方式去采摘苹果: 1.小Q随机移动到一棵苹果树下,移动到第i棵苹果树下的概率为d_i/(2m),但不在此采摘

摘要: 题目描述 给出一个长度为n的序列,求一段长度大于等于k的字串,使得它们的平均值最大。 输入 第一行包含两个整数n,k(1<=n<=<=k<=n),分别表示题目的总量和题数的下界。 第二行包含n个整数a_1,a_2,...,a_n(|a_i|<=10^8),分别表示每道题目的难度系数。

摘要: 题目描述 有一棵n个点的无根树,每条边有一个正整数权值,表示长度,定义两点距离为在树上的最短路径的长度。 已知2到n-1每个点在树上与1和n的距离,请根据这些信息还原出这棵树。 输入 第一行包含一个正整数n(2<=n<=500000),表示点数。 第二行包含n-2个正整数d(1,2),d(1,3),

摘要: 题目描述 给定N个同心的扇形,求有多少面积,被至少K个扇形所覆盖。 输入 第一行是三个整数n,m,k。n代表同心扇形的个数,m用来等分 [-π,π]的弧度。 从第二行开始的n行,每行三个整数r,a1,a2。描述了一个圆心在原点的扇形,半径为r,圆心角是从弧度πa1/m到πa2/m,a1可能大于a2,

摘要: 题目描述 给出一个长度为 $m$ 的序列 $a$ ,编号为 $a_1\sim a_m$,其中 $n$ 个位置的数已经确定,剩下的位置的数可以任意指定。现在令 $b$ 表示 $a$ 的前缀异或和,求 $\sum\limits_{i=1}^mb_i$ 的最小值。 输入 输入第一行两个非负整数n,m,分别

摘要: 题目描述 给出一张无向图,求它的一棵生成树,使得选出的所有边的方差最小。输出这个最小方差。 输入 第一行两个正整数N,M 接下来M行,每行三个正整数Ui,Vi,Ci N<=100,M<=2000,Ci<=100 第一行两个正整数N,M 接下来M行,每行三个正整数Ui,Vi,Ci N<=100,M<=

摘要: 题目描述 给出两个基因串,你需要在其中插入任意个空格,使得两个串长度相同。如果两个串的某同一位置都是字母则获得某给定收益,对于每个串的每个长度为k的连续空格段要付出a(k-1)+b的损失。求最大净收益。 输入 输入第1行一个字符串,表示小A的DNA序列。 输入第2行一个字符串,表示小B的DNA序列。

摘要: 题目描述 给定一个序列A[i],每次询问l,r,求[l,r]内最长子串,使得该子串为不上升子串或不下降子串 输入 第一行n,表示A数组有多少元素接下来一行为n个整数A[i]接下来一个整数Q,表示询问数量接下来Q行,每行2个整数l,r 输出 对于每个询问,求[l,r]内最长子串,使得该子串为不上升子串

摘要: 题目描述 求一个序列所有的子区间,满足区间众数的出现次数大于区间长度的一半。 输入 第一行2个用空格隔开的非负整数n,type,表示序列的长度和数据类型。数据类型的作用将在子任务中说明。 第二行n个用空格隔开的非负整数,依次为A1,A2,...,An,描述这个序列。 N<=<=Typ

摘要: 题目描述 给出一个序列,多次询问一个区间的所有子区间最小值之和。 输入 输入文件的第一行包含两个整数n和q,分别代表序列长度和询问数。接下来一行,包含n个整数,以空格隔开,第i个整数为ai,即序列第i个元素的值。接下来q行,每行包含两个整数l和r,代表一次询问。 输出 对于每次询问,输出一行,代表询

摘要: 题目描述 给出一个长度为 $n$ 的序列,求所有长度大于等于2的子序列个数,满足:对于子序列中任意两个相邻的数 $a$ 和 $b$ ($a$ 在 $b$ 前面),${a\choose b}\mod 2\neq 0$。答案对 $10^9+7$取模。 输入 第一行一个整数 $n$ 。 接下来 $n$ 行

摘要: 题目描述 有一个n*m的矩阵,初始每个格子的权值都为0,可以对矩阵执行两种操作: 1. 选择一行, 该行每个格子的权值加1或减1。 2. 选择一列, 该列每个格子的权值加1或减1。 现在有K个限制,每个限制为一个三元组(x,y,c),代表格子(x,y)权值等于c。问是否存在一个操作序列,使得操作完后

摘要: 题目描述 有一张n×m的数表,其第i行第j列(1 <= i <= n ,1 <= j <= m)的数值为能同时整除i和j的所有自然数之和。给定a,计算数表中不大于a的数之和。 输入 输入包含多组数据。输入的第一行一个整数Q表示测试点内的数据组数,接下来Q行,每行三个整数n,m,a(|a| < =10

摘要: 题目描述 现在,我想知道自己是否还有选择。 给定n个点m条边的无向图以及顺序发生的q个事件。 每个事件都属于下面两种之一: 1、删除某一条图上仍存在的边 2、询问是否存在两条边不相交的路径可以从点u出发到点v 输入 第一行三个整数n,m,q 接下来m行,每行两个整数u,v,表示u和v之间有一条边 接

摘要: 题目描述 一个有向图G=(V,E)称为半连通的(Semi-Connected),如果满足:对于u,v∈V,满足u→v或v→u,即对于图中任意两点u,v,存在一条u到v的有向路径或者从v到u的有向路径。若G'=(V',E')满足V'是V的自己,E'是E中所有跟V'有关的边,则称G'是G的一个导出子图。

摘要: 题目描述 给出一个长度为 n 的序列,要求支持如下两种操作: A l r x :将 [l,r] 区间内的所有数加上 x ; Q l r : 询问 [l,r] 区间的最大连续子段和。 其中,一个区间的最大连续子段和指的是:该区间所有子区间的区间和中的最大值(本题中子区间包括空区间,区间和为 0 )。

摘要: 题目描述 给你n个flag,你要把每个染色成红黑白黄四色之一,满足: 1.相邻旗不能同色 2.白不能和黄相邻,红不能和黑相邻 3.不能存在连续三个球依次是“黑白红”或“红白黑” 4.翻转后相等视为等价 设不等价方案数为f(n),给定l,r,求 Sigma f(i),其中L<=i<=R模1000000

摘要: 题目描述 给你一个n×m的矩形,要你找一个子矩形,价值为左上角左下角右上角右下角这四个数的最小值,要你最大化矩形的价值。 输入 第一行两个数n,m,接下来n行每行m个数,用来描述矩形 n, m ≤ 1000 输出 输出一个数表示答案 样例输入 2 2 1 2 3 4 样例输出 1 题解 二分+暴力

摘要: 题目描述 给出一个凸多边形,多次询问某个点是否在这个凸多边形的内部,强制在线。 输入 第一行一个数n,接下来n行,每行两个整数x,y。输入按照逆时针顺序输入一个凸包。 接下来一个数m,最后有m行,第一行两个整数 x,y,表示第一个人的坐标。 对于第i个询问(i>=2) ,输入两个数dx,dy。 如果

摘要: 题目描述 $n$ 个连续的位置,每个位置可以填入 S 和 E ,第 $i$ 个位置填入 S 可以获得 $s_i$ 的收益,填入 E 可以获得 $e_i$ 的收益。要求每连续的 $k$ 个位置必须包含至少 $t1$ 个 S 和至少 $t2$ 个 E ,问最大收益以及方案。 输入 第一行四个整数,n,k

摘要: 题目描述 给出一张有向图,每个点最多只有一条出边。多次修改一个点的出边,并询问从某个点开始经过多少个点能够到达出度为0的点(走不到则输出-1) 输入 第一行为两个整数N和M,代表序列长度和操作次数。 第二行为N个整数,代表初始的小伙伴序列。 接下来有M行,每行代表一个操作。 如果这一行的第一个数是1

摘要: 题目描述 给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有need条白色边的生成树。题目保证有解。 输入 第一行V,E,need分别表示点数,边数和需要的白色边数。 接下来E行,每行s,t,c,col表示这边的端点(点从0开始标号),边权,颜色(0白色1黑色)。 输出 一行表示所

摘要: 题目描述 给出一张 $n$ 个点 $m$ 条边的有向图,边权为非负整数。求满足路径长度小于等于 $1$ 到 $n$ 最短路 $+k$ 的 $1$ 到 $n$ 的路径条数模 $p$ ,如果有无数条则输出 $-1$ 。 输入 第一行包含一个整数 $T$ , 代表数据组数。 接下来 $T$ 组数据,对于每

摘要: 题目描述 定义和谐矩阵为长不小于 Mina 且宽不小于 Minb 的矩阵,矩阵的权值为整个矩阵内所有数的和。给定一个长为 N,宽为 M 的矩阵 A,求它的所有和谐子矩阵中权值第 K 小的矩阵,并输出它的权值。 输入 第 1 行为五个正整数,分别为 N , M , Mina , Minb , K,相邻

摘要: 题目描述 你有n个物品和m个包。物品有重量,且不可被分割;包也有各自的容量。要把所有物品装入包中,至少需要几个包? 输入 第一行两个整数n,m(1<=n<=24,1<=m<=100),表示物品和包的数量。第二行有n个整数a[1],a[2],…,a[n](1<=a[i]<=10^8),分别表示物品的重

摘要: 题目描述 给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小 输入 第一行给出数字N,代表有N个数 下面一行给出N个数 输出 S的最小值 样例输入 2 样例输出 99 题解 扩展裴蜀定理 裴蜀定理:二元一次不定方

摘要: 题目描述 现有一个n行m列的棋盘,一只马欲从棋盘的左上角跳到右下角。每一步它向右跳奇数列,且跳到本行或相邻行。跳越期间,马不能离开棋盘。例如,当n = 3, m = 10时,下图是一种可行的跳法。 试求跳法种数mod 30011。 输入 仅有一行,包含两个正整数n, m,表示棋盘的规模。 输出 仅有

摘要: 题目描述 windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数? 输入 包含两个整数,A B。 输出 一个整数,表示答案 样例输入 【输入样例一】 1 10 【输入样例二】 25 50

摘要: 题目描述 B数的定义:能被13整除且本身包含字符串"13"的数。 例如:130和2613是B数,但是143和2639不是B数。 你的任务是计算1到n之间有多少个数是B数。 输入 输入数据只有一个数,为n。(1<=N<=10^15) 输出 输出数据包含一行,为1到n之间B数的个数。 样例输入 13 样

摘要: 题目描述 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整。给你一个长度为n的序列s。回答Q个这样的询问:s的左端点在[a,b]之间,右端点在[c,d]之间的子序列中,最大的中位数。其中a<b<c<d。位置也从0开始标号。我会使用一些方式强制你

摘要: 题目描述 对于一个数列A[1..N],一种寻找最大值的方法是:依次枚举A[2]到A[N],如果A[i]比当前的A[1]值要大,那么就令A[1]=A[i],最后A[1]为所求最大值。假设所有数都在范围[1, K]内,按上面的步骤执行,有多少个长度N的数列满足A[1]被更新的次数恰好为P呢? 输入 本题

摘要: 题目描述 给出一张n个点m条边的有向图,每条边 (u,v,x,y) 描述了 u 的点权乘 x 等于 v 的点权乘 y (点权可以为负)。问:是否存在满足条件的图。 输入 有多组数据,第一行给定整数T,表示总的数据组数,之后依次给出T组数据。每一组数据的第一行给定整数N和 M,表示齿轮总数和链条总数。

摘要: 题目描述 字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列。令给定的字符序列X=“x0,x1,…,xm-1”,序列Y=“y0,y1,…,yk-1”是X的子序列,存在X的一个严格递增下标序列<i0,i1,…,ik-1>,使得对所有的j=0,1

摘要: 题目描述 给出递推公式 $x_{i+1}=(ax_i+b)\mod p$ 中的 $p$、$a$、$b$、$x_1$ ,其中 $p$ 是质数。输入 $t$ ,求最小的 $n$ ,使得 $x_n=t$ 。若不存在则输出-1。 输入 输入含有多组数据,第一行一个正整数 T ,表示这个测试点内的数据组数。

摘要: 题目描述 一个数,初始为 0 。 l 次操作,每次给这个数加上 xi ( xi 可能为负),如果其小于 0 则变成 0 ,如果大于等于 n 则变成 0 并给 ans 加 1 。已知最后的 ans 等于 k ,求 n 可能的最小值和最大值。如果没有满足条件的 n ,输出 -1 。 输入 第一行两个整数

摘要: 题目描述 平面上有n个点,每个点有一种颜色。对于某一条线段,选择所有其上方或下方的点。求:在不包含所有颜色的点的前提下,选择的点数最多是多少。(本题中如果存在某颜色没有相应的点,那么选择任何线段都不算做包含所有颜色) 输入 包含多组测试数据,第一行输入一个正整数 T 表示测试数据组数。 接下来 T

摘要: 题目描述 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在lxhgww想从A点走到D点,他想知道最少需要走多长时间。 输入 输入数据第一行是4个整数,表示A和B的坐

摘要: 题目描述 给出一棵以1为根的有根树,q次询问,每次询问给出a和k,求点对 (b,c) 的数目,满足:a、b、c互不相同,b与a距离不超过k,且a和b都是c的祖先。 输入 输入文件的第一行含有两个正整数n和q,分别代表有根树的点数与询问的个数。接下来n - 1行,每行描述一条树上的边。每行含有两个整数

摘要: 题目描述 给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。有q次询问,每次询问给出l r z,求sigma_{l<=i<=r}dep[LCA(i,z)]。(即,求在[l,r]区

摘要: 题目描述 给出一棵n个点的树,每个点有黑白两种颜色。q次询问,每次询问给出x和y,问能否选出一个x个点的联通子图,使得其中黑点数目为y。 输入 第一行一个正整数 T 表示数据组数。对于每一组数据,第一行有两个用空格隔开的正整数,分别是 n 和 q ,表示树的节点数和询问次数。接下来 n-1 行,每行

摘要: 题目描述 你分别有a、b、c个血量为1、2、3的奴隶主,假设英雄血量无限,问:如果对面下出一个K点攻击力的克苏恩,你的英雄期望会受到到多少伤害。 输入 输入包含多局游戏。 第一行包含一个整数 T (T<100) ,表示游戏的局数。 每局游戏仅占一行,包含四个非负整数 K, A, B 和 C ,表示克

摘要: 题目描述 给出一棵树,点有点权。支持两种操作:修改一个点的点权,查询链上mex。 输入 第一行包括两个整数n,m,代表树上的结点数(标号为1~n)和操作数。第二行包括n个整数a1...an,代表每个结点的食材初始的美味度。接下来n-1行,每行包括两个整数u,v,代表树上的一条边。接下来m行,每行包括

摘要: 题目描述 将一棵n个点的树分为若干“块”,每个块满足:大小在B到3B之间,并且这个“块”添加某个点后连通。求方案。 输入 第一行包含两个数N,B(1<=N<=1000, 1 <= B <= N)。接下来N-1行,每行描述一条边,包含两个数,即这条边连接的两个城市的编号。 输出 如果无法满足国王的要求

摘要: 题目描述 给出一个网格图,其中某些格子有财宝,每次从左上角出发,只能向下或右走。问至少走多少次才能将财宝捡完。此对此问题变形,假设每个格子中有好多财宝,而每一次经过一个格子至多只能捡走一块财宝,至少走多少次才能把财宝全部捡完。 输入 第一行为正整数T,代表数据组数。 每组数据第一行为正整数N,M代表

摘要: 题目描述 给出一棵n个点的树,给定m条路径,每条路径有一个权值。q次询问求一个路径包含的所有给定路径中权值第k小的。 输入 第一行三个数 n和P 和Q,表示树的大小和盘子的个数和水果的个数。 接下来n-1 行,每行两个数 a、b,表示树上的a和b 之间有一条边。树中顶点 按1到 n标号。 接下来 P

摘要: 题目描述 给定一棵树,每个节点有上下两个格子,每个格子的状态为能走或不能走。m次操作,每次修改一个节点的状态,或询问:把一条路径上的所有格子拼起来形成一个宽度为2的长方形,从起点端两个格子的任意一个开始走,每个能走的格子最多只能经过一次,这个条件下能够走的最多格子数。 输入 第一行包含两个正整数n和

摘要: 题目描述 给出一个序列,每次可以给一段染成同一种颜色,问最少要染多少次能够染成给定方案。 输入 输入仅一行,包含一个长度为n的字符串,即涂色目标。字符串中的每个字符都是一个大写字母,不同的字母代表不同颜色,相同的字母代表相同颜色。 输出 仅一行,包含一个数,即最少的涂色次数。 样例输入 RGBGR

摘要: 题目描述 数轴上有C个点,每个点有一个坐标和一个访问时间,必须在这个时间后到达这个点才算访问完成。可以在某个位置停留。每在数轴上走一个单位长度消耗一个单位的时间,问:访问所有点并最终到B花费的最小时间。 输入 第1行输入三个整数C,H,B,B是出口的位置.之后C行每行输入两个整数,分别表示一个老师所

摘要: 题目描述 给定一个长度为n的数列{a1,a2...an},每次可以选择一个区间[l,r],使这个区间内的数都加一或者都减一。问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列有多少种。 输入 第一行一个正整数n 接下来n行,每行一个整数,第i+1行的整数表示

摘要: 题目描述 n个人围成一圈玩游戏,一开始庄家是1。每次从m张卡片中随机选择1张,从庄家向下数个数为卡片上的数的人,踢出这个人,下一个人作为新的庄家。最后一个人获胜。问每个人获胜的概率。 输入 第一行包括两个整数N,M分别表示玩家个数和卡牌总数。 接下来一行是包含M个整数,分别给出每张卡片上写的数字。

摘要: 题目描述 给定一张图,对于每一条边询问:(1)是否存在割断该边的s-t最小割 (2)是否所有s-t最小割都割断该边 输入 第一行有4个正整数,依次为N,M,s和t。第2行到第(M+1)行每行3个正 整数v,u,c表示v中转站到u中转站之间有单向道路相连,单向道路的起点是v, 终点是u,切断它的代价是

摘要: 题目描述 有$n$个怪兽,每个怪兽可以花费$k_i$的代价消灭,或者花费$s_i$的代价将其变为$r_i$个给定的新的怪兽。问消灭1号怪兽的最小代价。 输入 第一行包含一个整数N。 接下来N行,每行描述一个怪兽的信息; 其中第i行包含若干个整数,前三个整数为Si,Ki和Ri,表示对于i号怪兽, 普通

摘要: 题目描述 一位冷血的杀手潜入 Na-wiat,并假装成平民。警察希望能在 N 个人里面,查出谁是杀手。警察能够对每一个人进行查证,假如查证的对象是平民,他会告诉警察,他认识的人, 谁是杀手, 谁是平民。 假如查证的对象是杀手, 杀手将会把警察干掉。现在警察掌握了每一个人认识谁。每一个人都有可能是杀手

摘要: 题目描述 给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排序分为两种:1:(0,l,r)表示将区间[l,r]的数字升序排序2:(1,l,r)表示将区间[l,r]的数字降序排序最后询问第q位置上的数字。 输入 输入数据的第一行为两个整数n和m。n表示序列的长度,m表示局部排序的次数。1

摘要: 题目描述 求,其中p和q是奇质数。 输入 只有一行,两个奇质数,分别表示p,q。 输出 一个数,表示算式结果。 样例输入 5 样例输出 6 题解 数论 神TM数学结论题。。。 当$p\neq q$时,考虑其几何意义:前面的那个式子是直线$y=\frac qpx$在$x\in [1,\frac{p-1

摘要: 题目描述 给出一棵树,定义一个点到一条路径的距离为这个点到这条路径上所有点的距离的最小值。求一条长度不超过s的路径,使得所有点到这条路径的距离的最大值最小。 输入 包含n行: 第1行,两个正整数n和s,中间用一个空格隔开。其中n为树网结点的个数,s为树网的核的长度的上界。设结点编号依次为1, 2,

摘要: 题目描述 求一张图的严格次小生成树的边权和,保证存在。 输入 第一行包含两个整数N 和M,表示无向图的点数与边数。 接下来 M行,每行 3个数x y z 表示,点 x 和点y之间有一条边,边的权值为z。 输出 包含一行,仅一个数,表示严格次小生成树的边权和。(数据保证必定存在严格次小生成树) 样例输

摘要: 题目描述 给定一个01矩阵,找出一个面积最大的子矩阵,使得其中的元素均为1。输出这个最大面积乘3。 输入 第一行两个整数N,M,表示矩形土地有N行M列。接下来N行,每行M个用空格隔开的字符'F'或'R',描述了矩形土地。 输出 输出一个整数,表示你能得到多少银子,即(3*最大'F'矩形土地面积)的值

摘要: 题目描述 给定一个1...n的序列,有m次操作,每次操作有6步: 1、从序列开头(左端)取出A个数(此时序列剩下n-A个数) 2、从序列开头取出B个数 3、将第1步取出的A个数按原顺序放回序列开头 4、从序列开头取出C个数 5、将第2步取出的B个数逆序放回序列开头 6、将第4步取出的C个数按原顺序放

摘要: 题目描述 JudgeOnline/upload/.doc 输入 第一行是两个整数A与B(1≤A,B≤10),中间用空格分隔,表示该迷宫是A行B列的。 第2行至第A+1行,每行有B个1至100以内的整数,表示该迷宫每一格的危险程度。 以下一行是一个整数K。接着K行每行有四个整数X0,

摘要: 题目描述 给你两个整数N和K,要求你输出N!的K进制的位数。 输入 有多组输入数据,每组输入数据各一行,每行两个数——N,K 输出 每行一个数为输出结果。 样例输入 2 5 2 10 10 10 100 200 样例输出 1 1 7 69 题解 数论 题目转化一下变为求$\lfloor\log_kn

摘要: 题目描述 一张未知的有重边无自环的图,只知道点数为n,边数为m。可以标记若干个点,如果一个点被标记,那么与它距离不超过k的点(包括本身)都会被覆盖。 显然对于每张不同图,让所有点被覆盖的最小代价是不一样的。 问:对于所有这样的图,它可能产生的最小覆盖代价是多少。 输入 输入一行三个数,分别为n,m,

摘要: 题目描述 有一个长度为n的序列,有三个操作1.I a b c表示将[a,b]这一段区间的元素集体增加c,2.R a b表示将[a,b]区间内所有元素变成相反数,3.Q a b c表示询问[a,b]这一段区间中选择c(c<=20)个数相乘的所有方案的和mod 的值。 输入 第一行两个数

摘要: 题目描述 一张n个点m条边的图,通过每条边需要一定的时间。有一些限制条件,每个限制条件形如“x保护y”,表示到达y的最短时间不能小于到达x的最短时间(即如果在其之前到达,则需要等待至xd到达)。问1到n的最短时间。 输入 第一行两个正整数 N, M。 接下来 M行,每行三个正整数 ui, vi, w

摘要: 题目描述 有一个大小为n的可重集S,小奇每次操作可以(此处“可以”指的是“必须”)加入一个数a+b(a,b均属于S),求k次操作后它可获得的S的和的最大 值。(数据保证这个值为非负数) 输入 第一行有两个整数n,k表示初始元素数量和操作数,第二行包含n个整数表示初始时可重集的元素。 对于100%的数

摘要: 题目描述 给出两个长度为5n的序列,1~n这n个数在每个序列中都出现了恰好5次。求这两个序列的最长公共子序列。 输入 输入文件中第一行有一个整数N,表示这个星球上某种生物使用了N种不同的碱基,以后将它们编号为1…N的整数。 以下还有两行,每行描述一个DNA序列:包含5N个1…N的整数,且每一个整数在

摘要: 题目描述 你要打一只h点血的怪物,每回合你攻击会造成a点伤害,回合结束后怪物会回b点血,你每攻击k回合需要休息一次,该回合不能造成伤害。怪物血量降到0以下就会死亡,问最后能否打死怪物。 输入 There are multiple test cases, terminated by a line "0

摘要: 题目描述 B进制数,每个数字i(i=0,1,...,B-1)有a[i]个。你要用这些数字组成一个最大的B进制数X(不能有前导零,不需要用完所有数字),使得X是B-1的倍数。q次询问,每次询问X在B进制下的第k位数字是什么(最低位是第0位)。 输入 第一行包含两个正整数B(2<=B<=10^6),q(

摘要: 题目描述 从$n$个数中选出$n-k$个,使得它们的二进制或(or)最大。输出这个值。 输入 第一行包含两个正整数$n,k(2\le n\le \le k\le 100,k<n)$,分别表示宝石的个数以及要扔掉的宝石个数。 第二行包含$n$个整数$w_1,w_2,...,w_n(0\

摘要: 题目描述 印尼首都雅加达市有 N 座摩天楼,它们排列成一条直线,我们从左到右依次将它们编号为 0 到 N?1。除了这 N 座摩天楼外,雅加达市没有其他摩天楼。 有 M 只叫做 “doge” 的神秘生物在雅加达市居住,它们的编号依次是 0 到 M?1。编号为 i 的 doge 最初居住于编号为 Bi

摘要: 题目描述 给出一个长度为n的序列,求所有元素的和在[L,R]范围内的连续子序列的个数。 输入 第一行包含三个整数N,L和R,分别表示寿司盘数,满意度的下限和上限。 第二行包含N个整数Ai,表示小Z对寿司的满意度。 N≤100000,|Ai|≤100000,0≤L, R≤10^9 输出 仅一行,包含一

摘要: 题目描述 给出n个互不相同的数,按照某种方式插入到序列中(初始序列为空)。每次插入的数如果大于上一次插入的数则插入到序列最右端,否则插入到序列最左端。现给出最终的序列,求插入的方案数 mod 。 输入 输出 样例输入 4 03 1704 样例输出 8 题解 区

摘要: 题目描述 给出一个长度为n的序列,m询问,每次询问求出[l,r]范围内的每一个数加上x再与b异或能够得到的最大值。 输入 第1行,两个整数,n,m,表示菜品数和顾客数。 第2行,n个整数,a1,a2,...,an,表示每道菜的评价值。 第3至m+2行,每行4个整数,b,x,l,r,表示该位顾客的期望

摘要: 题目描述 模10^9+61 输入 第一行包含一个正整数 T ,表示有 T 组测试数据。 接下来依次给出每组测试数据。对于每组测试数据: 第一行包含一个正整数 n 。 第二行包含 n 个非负整数,表示 A_1,A_2,?,A_n 。 保证在一行中的每个整数之间有恰好一个空格,没有其他额外的空格。 10

摘要: 题目描述 有n个物品,每个都是3种之一。现要将这n个物品分成两个序列,对于每个序列中的每个物品,可以得到 它及它前面相邻的两个物品(不足则取全部)中不同种类的个数 的收益。问最大的总收益。 输入 输入的第一行包含一个整数N (1 ≤ N ≤ 100 000), 表示食品车的数目。 第二行包含一个由N

摘要: 题目描述 给出一棵n个点,以1为根的有根树,每个点初始染有互不相同的颜色。定义一条路径的权值为路径上的颜色种类数。现有m次操作,每次操作为以下三种之一: 1 x: 把点x到根节点的路径上所有的点染上一种没有用过的新颜色。 2 x y: 求x到y的路径的权值。 3 x y: 在以x为根的子树中选择一个

摘要: 题目描述 N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数。 输入 第一行四个整数N、M、K、type,代表点数、边数、询问数以及询问是否加密。接下来M行,代表图中的每条边。接下来K行,每行两个整数L、R代表一组询问。对于type=0的测试点,读入的L和R即为询问的L、R

摘要: 题目描述 给出一个长度为n的序列,每个数都可以由前60个质数的乘积表示,初始每个数都是3。支持两种操作:(1)修改一个数 (2)查询一段区间内所有数的乘积的欧拉函数值模。 输入 第一行一个整数x表示领袖清点和变动存款的总次数。 接下来x行,每行3个整数ai,bi,ci。ai为0时表示

摘要: 题目描述 给出一张2*n的网格图,初始每条边都是不连通的。多次改变一条边的连通性或询问两个点是否连通。 输入 第一行只有一个整数C,表示网格的列数。接下来若干行,每行为一条交通信息,以单独的一行“Exit”作为结束。我们假设在一开始所有的道路都是堵塞的。我们保证 C小于等于100000,信息条数小于

摘要: 题目描述 给定一棵以1为根的有根树,初始所有节点颜色为1,每次将距离节点a不超过l的a的子节点染成c,或询问点a的颜色 输入 第一行一个数T,表示数据组数 接下来每组数据的第一行三个数n,c,q表示结点个数,颜色数和操作数 接下来一行n-1个数描述2..n的父节点 接下来q行每行三个数a,l,c 若

摘要: 题目描述 n个人排成一排,有m个条件,第i个条件要求ai和bi相邻,求方案数。 输入 输入有m+1行,第一行有两个用空格隔开的正整数n、m,如题所示。接下来的m行,每一行有两个用空格隔开的正整数,第i行为Ai和Bi,表示Ai的暗恋对象为Bi,保证Ai互不相等。 输出 输出只有一行,这一行只有一个数字

摘要: 题目描述 给出一张无向图,求满足 0号点到所有点的路径长等于原图中它们之间最短路 的生成树的个数。 输入 第一行一个整数N,代表原图结点。 接下来N行,每行N个字符,描绘了一个邻接矩阵。邻接矩阵中, 如果某一个元素为0,代表这两个点之间不存在边, 并且保证第i行第i列的元素为0,第i行第j列的元素(

摘要: 题目描述 给出一棵n个节点的树,每一个节点开始有一个互不相同的颜色,初始根节点为1。 定义一次感染为:将指定的一个节点到根的链上的所有节点染成一种新的颜色,代价为这条链上不同颜色的数目。 现有m次操作,每次为一下三种之一: RELEASE x:对x执行一次感染; RECENTER x:把根节点改为x

摘要: 题目描述 一张N个点M条边的无向图,从A走到B,要求:每一次不能立刻沿着上一次的边的反方向返回。求方案数。 输入 第一行:五个整数N,M,t,A,B。 N表示学校里的路口的个数 M表示学校里的路的条数 t表示HH想要散步的距离 A表示散步的出发点 B则表示散步的终点。 接下来M行 每行一组Ai,Bi

摘要: 题目描述 一张n个点的有向图,每个点有一个权值。一开始从点$v_0$出发沿图中的边任意移动,移动到路径上的第$i$个点 输入 每一行中两个数之间用一个空格隔开。 输入文件第一行包含两个正整数 n, m,分别表示 G 中顶点的个数和边的条数。 第二行包含 n个非负实数,依次表示 n个顶点权值 w(1)

摘要: 题目描述 给出一个数$m$和$n$次操作,第$i$操作有$p_i$的概率成功,成功后会使$m$加上$a_i$($a_i$为正整数或$-1$),求$n$次操作以后成功的操作次数不少于$l$且$m\ge 0$的概率。 输入 第一行三个整数N,L,M。第二行N个实数,第i个实数pi表示第i项挑战成功的百分

摘要: 题目描述 给定长度为2N的序列,1~N各处现过2次,i第一次出现位置记为ai,第二次记为bi,求满足ai<aj<bi<bj的对数 样例输入 4 3 2 4 4 1 3 2 1 样例输出 3 题解 树状数组 WH说是CDQ分治直接把我整蒙了。。。 把所有数按照第一次出现位置从小到大排序,然后扫一遍。此

摘要: 题目描述 n个点e条边的有向图,每条边是m种类型之一。第i种类型在第x时刻通过所花费的时间为$(a_i*x+b_i)\mod c_i+d_i$。可以在某个点停留。问:在s时刻从1号点出发,到达每个点所花费的最小时间。 输入 第一行包含4个正整数n,m,s,e(2<=n<=<=m<=5

摘要: 题目描述 给定一个序列$a$,求满足$i<j<k$且$a_i<a_j<a_k$的三元组$(i,j,k)$的个数。 输入 第一行1个数 n 第二行n个数 a_i 输出 一个数,表示能为长者续几秒,由于长者是不朽的, 所以能活很久,不妨将答案对****取模吧 样例输入 4 1 2 3 4

摘要: 题目描述 一个n*n*n的立方体,每个位置为0或1。有些位置已经确定,还有一些需要待填入。问最后可以得到的 相邻且填入的数不同的点对 的数目最大。 输入 第一行包含一个数N,表示魔方的大小。 接下来 N2 行,每行N个字符,每个字符有三种可能: P:表示此方格已经填充了正能量水晶; N:表示此方格已

摘要: 题目描述 刚开通的SH微博共有n个用户(1..n标号),在短短一个月的时间内,用户们活动频繁,共有m条按时间顺序的记录: ! x 表示用户x发了一条微博; + x y 表示用户x和用户y成为了好友 - x y 表示用户x和用户y解除了好友关系 当一个用户发微博的时候,所有他的好友(直接关系)都会看到

摘要: 题目描述 给出一个N个点M条边的无向带权图,以及Q个询问,每次询问在图中删掉一条边后图的最小生成树。(各询问间独立,每次询问不对之后的询问产生影响,即被删掉的边在下一条询问中依然存在) 输入 第一行两个正整数N,M(N<=50000,M<=100000)表示原图的顶点数和边数。 下面M行,每行三个整

摘要: 题目描述 我们称一个正整数N是幸运数,当且仅当它的十进制表示中不包含数字串集合S中任意一个元素作为其子串。例如当S=(22,333,0233)时,233是幸运数,2333、20233、3223不是幸运数。给定N和S,计算不大于N的幸运数个数。 输入 输入的第一行包含整数N。接下来一行一个整数M,表示

摘要: 题目描述 给一个树,n 个点,有点权,初始根是 1。 m 个操作,每次操作: 1. 将树根换为 x。 2. 给出两个点 x,y,从 x 的子树中选每一个点,y 的子树中选每一个点,如果两个点点权相等,ans++,求 ans。 输入 第一行两个数表示 n,m。 第二行 n 个数,表示每个点的点权 a[

摘要: 题目描述 给你一个长度为N的序列ai,1≤i≤N和q组询问,每组询问读入l1,r1,l2,r2,需输出 get(l,r,x)表示计算区间[l,r]中,数字x出现了多少次。 输入 第一行,一个数字N,表示序列长度。 第二行,N个数字,表示a1~aN 第三行,一个数字Q,表示询问个数。 第4~Q+3行,

摘要: 题目描述 给你N颗宝石,每颗宝石都有重量和价值。要你从这些宝石中选取一些宝石,保证总重量不超过W,且总价值最大为,并输出最大的总价值。数据范围:N<=100;W<=2^30,并且保证每颗宝石的重量符合a*2^b(a<=10;b<=30) 输入 输入文件中包含多组数据。每组数据的格式如下:第一行是两个

摘要: 题目描述 给出两个长度分别为n、m的序列A、B,求出B的所有长度为n的连续子序列(子串),满足:序列中第i小的数在序列的Ai位置。 输入 第一行包含两个整数n, m (2≤n≤m≤1000000)。 第二行包含n个整数si,构成1,2,…,n的排列,1≤si≤n且si≠sj。 第三行包含m个整数hi

摘要: 题目描述 志向远大的YY小朋友在学完快速排序之后决定学习平衡树,左思右想再加上SY的教唆,YY决定学习Treap。友爱教教父SY如砍瓜切菜般教会了YY小朋友Treap(一种平衡树,通过对每个节点随机分配一个priority,同时保证这棵平衡树关于priority是一个小根堆以保证效率)。这时候不怎么

摘要: 题目描述 有n个点、m条边、和k种商品。第$i$个点可以以$B_{ij}$的价格买入商品$j$,并以$S_{ij}$的价格卖出。任何时候只能持有一个商品。求一个环,使得初始不携带商品时以某种交易方式走过一圈所得的利润/路径长度(向下取整)最大。 输入 第一行包含3个正整数N,M和K,分别表示集市数量

摘要: 题目描述 为了庆祝新的一年到来,小M决定要粉刷一个大木板。大木板实际上是一个W*H的方阵。小M得到了一个神奇的工具,这个工具只需要指定方阵中两个格子,就可以把这两格子为对角的,平行于木板边界的一个子矩形全部刷好。小M乐坏了,于是开始胡乱地使用这个工具。 假设小M每次选的两个格子都是完全随机的(方阵中

摘要: 题目描述 给出一个只包含小写字母的字符串的长度、以每一个字符为中心的最长回文串长度、以及以每两个相邻字符的间隙为中心的最长回文串长度,求满足条件的字典序最小的字符串。 给出一个只包含小写字母的字符串的长度、以每一个字符为中心的最长回文串长度、以及以每两个相邻字符的间隙为中心的最长回文串长度,求满足条

摘要: 题目描述 一个串T是S的循环节,当且仅当存在正整数k,使得S是$T^k$(即T重复k次)的前缀,比如abcd是abcdabcdab的循环节。给定一个长度为n的仅由小写字符构成的字符串S,请对于每个k(1<=k<=n),求出S长度为k的前缀的最短循环节的长度$per_i$。字符串大师小Q觉得这个问题过

摘要: 题目描述 给出一棵以1为根的带边权有根树,对于每个根节点以外的点$v$,如果它与其某个祖先$a$的距离$d$不超过$l_v$,则可以花费$p_vd+q_v$的代价从$v$到$a$。问从每个点到1花费的最小代价(中途可以经停其它点) 输入 第 1 行包含2个非负整数 n,t,分别表示城市的个数和数据类

牛牛最近迷上了一种叫斗地主的扑克游戏。斗地主是一种使用黑桃、红心、梅花、方片的A到K加上大小王的共54张牌来进行的扑克牌游戏。在斗地主中,牌的大小关系根据牌的数码表示如下:3<4<5<6<7<8<9<10<J<Q<K<A<2<小王<大王,而花色并不对牌的大小产生影响。每一局游戏中,一副手牌

摘要: 题目描述 给出一棵n个点的树,以及m次操作,每次操作从起点向终点以每秒一条边的速度移动(初始时刻为0),最后对于每个点询问有多少次操作在经过该点的时刻为某值。 输入 第一行有两个整数N和M 。其中N代表树的结点数量, 同时也是观察员的数量, M代表玩家的数量。 接下来n-1 行每行两个整数U和V ,

摘要: 题目描述 给出三个行数和列数均为N的矩阵A、B、C,判断A*B=C是否成立。 输入 题目可能包含若干组数据。对于每组数据,第一行一个数N,接下来给出三个N*N的矩阵,依次为A、B、C三个矩阵。 输出 对于每组数据,若A*B=C成立,则输出Yes,否则No。每个答案占一行。 样例输入 1 2 2 10

摘要: 题目描述 求 输入 第一行包含一个正整数T,表示有T组测试数据。接下来T<=10^5行,每行给出一个正整数N,N<=10^6。 输出 包含T行,依次给出对应的答案。 样例输入 7 1 10 100 0000 样例输出 1 4 1830

摘要: 题目描述 输入 输入一个正整数N,代表有根树的结点数 输出 输出这棵树期望的叶子节点数。要求误差小于1e-9 样例输入 1 样例输出 1. 题解 生成函数+导数 先考虑节点个数为$n$的二叉树有多少个:$c_0=1,c_i=\sum\limits_{j=0}^{i-1}c_j*c_

摘要: 题目描述 在一条直线上有 N 个炸弹,每个炸弹的坐标是 Xi,爆炸半径是 Ri,当一个炸弹爆炸时,如果另一个炸弹所在位置 Xj 满足: Xi?Ri≤Xj≤Xi+Ri,那么,该炸弹也会被引爆。 现在,请你帮忙计算一下,先把第 i 个炸弹引爆,将引爆多少个炸弹呢? 输入 第一行,一个数字 N,表示炸弹个

摘要: 题目描述 给你一张有向图,问:编号-位置序(即每个编号的位置对应的序列)最小(例如1优先出现在前面,1位置相同的2优先出现在前面,以此类推)的拓扑序是什么? 输入 第一行是一个正整数D,表示数据组数。 接下来是D组数据。 对于每组数据: 第一行两个用空格分开的正整数N和M,分别表示菜肴数目和制作顺序

摘要: 题目描述 给定长度为n的数列X={x1,x2,...,xn}和长度为m的数列Y={y1,y2,...,ym},令矩阵A中第i行第j列的值Aij=xi xor yj,每次询问给定矩形区域i∈[u,d],j∈[l,r],找出第k大的Aij。 输入 第一行包含两个正整数n,m,分别表示两个数列的长度 第二

摘要: 题目描述 给出二维平面上n个与y轴平行的线段,求最大的k,使得存在一条形如$y=ax^2+bx(a<0,b>0)$的抛物线与前k条线段均有公共点 输入 输入文件第一行是一个正整数N,表示一共有N关。接下来有N行,第i+1行是用空格隔开的三个正整数xi,yi1,yi2(yi1<yi2 ),表示第i关出

摘要: 题目描述 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的.例如,对于直线:L1:y=x; L2:y=-x; L3:y=0则L1和L2是可见的,L3是被覆盖的.给出n条直线,表示成y=Ax+B的形式(|A

摘要: 题目描述 逆时针给出n个凸多边形的顶点坐标,求它们交的面积。例如n=2时,两个凸多边形如下图: 则相交部分的面积为5.233。 输入 第一行有一个整数n,表示凸多边形的个数,以下依次描述各个多边形。第i个多边形的第一行包含一个整数mi,表示多边形的边数,以下mi行每行两个整数,逆时针给出各个顶点的坐

摘要: 题目描述 Mike有一个农场,这个农场n个牲畜围栏,现在他想在每个牲畜围栏中养一只动物,每只动物可以是牛或羊,并且每个牲畜围栏中的饲养条件都不同,其中第i个牲畜围栏中的动物长大后,每只牛可以卖a[i]元,每只羊可以卖b[i]元,为了防止牛羊之间相互影响,Mike找到了m条规律,每条规律给出一个三元组

摘要: 题目描述 小明有许多潜在的天赋,他希望学习这些天赋来变得更强。正如许多游戏中一样,小明也有n种潜在的天赋,但有一些天赋必须是要有前置天赋才能够学习得到的。也就是说,有一些天赋必须是要在学习了另一个天赋的条件下才能学习的。比如,要想学会"开炮",必须先学会"开枪"。一项天赋可能有多个前置天赋,但只需习

摘要: 题目描述 在一个n*m的棋盘上要放置若干个守卫。对于n行来说,每行必须恰好放置一个横向守卫;同理对于m列来说,每列必须恰好放置一个纵向守卫。每个位置放置守卫的代价是不一样的,且每个位置最多只能放置一个守卫,一个守卫不能同时兼顾行列的防御。请计算控制整个棋盘的最小代价。 输入 第一行包含两个正整数n,

摘要: 题目描述 热情好客的请森林中的朋友们吃饭,他的朋友被编号为 1~N,每个到来的朋友都会带给他一些礼物:。其中,第一个朋友会带给他 1 个,之后,每一个朋友到来以后,都会带给他之前所有人带来的礼物个数再加他的编号的 K 次方那么多个。所以,假设 K=2,前几

原标题:缠论起源:2万字长文揭秘通往异世界大门的测度论,推荐交易者细读

扑克导言:要想在交易中实现稳定的盈利,理论体系的指导必不可少。而要形成一套完整的理论体系,需要的是深刻到骨子里的严谨。近年来出现了一套名为“缠论”的交易理论,以其理论的高深、预测的准确而受到投资者的广泛关注。今天,扑克投资家为大家推送的就是一篇有关缠论的两万多字的奇文。文章将缠论背后与数学有关的基本概念做了详尽的阐释和辨析,我们希望能借此为投资者打开一扇通往全新世界的大门,为交易提供新的思路。

本文来自网络,版权归原作者所有。扑克投资家几经努力查找原作者而不得。本着分享交易精华的目的,扑克投资家先行编辑推送。我们渴望作者本人,或知情者看到此文后,尽快与我们取得联系。

扑克大宗产业&金融知识库搜索引擎已经发布,请在公众号前台输入关键词(例如,输入“人工智能”),即可获取更多干货内容。或在 “号内搜”输入任何您想查找的内容,也可获得相关文章推送。详情见文末关键词列表。

点没有长度和面积,为什么由点组成的线和面会具有长度和面积?

“长度”“面积”这些词汇究竟是在怎样的意义上被使用的?

有的时候我们把点的长度叫做零,有的时候叫做无穷小,这两个称呼是不是都有道理?

无穷个零相加是不是还得零?(其实和第一个问题是一个意思,无穷个点怎么加成线段的?)

当然,小乐的问题是着眼于哲学,而我的回答将会着眼于数学,——我不是学哲学的,但是大概也知道在哲学上这些词汇常常导致混乱的争论,比如芝诺悖论之类。幸运的是,早在一百年前,通过一大批杰出的数学家的努力,以上这些问题已经被精确地给出了解答,这就是在数学中被称为“测度论”的一套理论体系。这里“精确”的意思是说,这套理论体系完全基于形式逻辑,而且只采用了非常少的公理(下面会陈述之),从而,在这套理论中不存在任何模糊或者逻辑上模棱两可之处(除了几个需要加以特别说明的地方=_=!)。换句话说,我们不仅可以认为数学家能够确定无疑的回答以上这些问题,而且可以认为人类在今天能够确定无疑的回答以上这些问题(在承认那些公理的前提下)。

不幸的是,这一断言几乎必然会遭到哲学家的反对。一方面是因为哲学家们倾向于每个人自己创造一组定义,——从我在未名哲学版见过的一系列关于芝诺悖论的讨论来看,这样的结果是所有的论述最终都流于自说自话。另一方面大概也因为学术壁垒的缘故,哲学家们大概从来也没有了解过数学家们已经在此问题上做出过的卓越工作,(确实,很多细节是过于数学化了一点……)。有鉴于此,我答应小乐以尽可能通俗的方式(在不损害准确性的前提下)大致介绍一下测度论的内容。我想在这个版面上大概还会有不少别的朋友对此感兴趣吧。

当我们使用“无穷”这个词的时候,我们必须时刻谨记,这个词有两种截然不同的意义——不,我这里说的不是亚里士多德关于实无穷和潜无穷的那些绕口令,而是某些重要得多的本质问题,对他们的清晰阐释开始于伟大的德国数学家康托Georg Cantor ():当我们说一个集合有无穷多个元素的时候,我们必须指明这里的无穷是哪一种,是“可数无穷”还是“不可数无穷”。虽然都是无穷集合,但是它们会体现出截然不同的性质。

为了说明这一问题,我们引进集合的“势(cardinality)”的概念。简单说来,势就是集合的元素的个数。一个集合有三个元素,我们就称其势为3。两个集合如果元素个数相等,我们就称它们为等势的。——很显然,要判断两个集合是不是等势,只需要看这两个集合之间能不能建立起元素的一一对应即可,如果可以的话,我们就说这两个集合的元素是一样多的。

到这里为止都显得很简单。可是最有趣的部分马上就要出现了:康托指出,不但对于有限个元素的集合我们可以讨论它们的势,对于无穷个元素的集合,我们同样可以讨论它们之间是否等势。换句话说,我们可以讨论两个无穷集合的元素是不是一样多!

之所以如此,是因为集合之间的“一一对应”本质上只是个数学概念,是可以被精确研究的对象(请回忆高中数学课本关于映射的那一章)。从而,随便拿两个集合来,它们之间是否能建立一一对应只是数学上的问题而已。

以下是一些最基本也是最著名的例子和命题,请尽量耐心的阅读。所有这些陈述都是可以基于最简单的形式逻辑给出严格证明的:

每一个集合都和它自身等势。

全体正整数的集合和全体正偶数的集合等势。

注:这是第一个有趣然而迷惑人的结果。我们等于是在说:一个集合可以和它的一部分一样多!——但是这并不是一个悖论。我们通常觉得一个集合不能和它的一部分一样多只是针对有限集合而言的,本来就没人说过无限集合不能和它的一部分一样多,只是有时候大家会不自觉地有这个误解而已。

全体正整数的集合和全体有理数的集合等势。(什么是有理数来着?查书去!)

注:这是在数学上很重要的一个例子,说明一个实数中的稠密集可以和一个离散集等势,不过大家看到这里大概已经开始打瞌睡了……跳过这个例子!

全体正整数的集合和全体实数的集合不等势。

注:睁大眼睛,迄今为止最重要的一句话出现了!你永远不可能在全体正整数的集合和全体实数的集合之间建立起一一对应来。对这个陈述的证明是数学上最有趣也最迷人的证明之一,可惜的是篇幅所限我不能在这里证明给大家看。那么只讨论结论好了:并不是所有的无穷集合都是等势的,有一些无穷集合比另一些无穷集合的元素更多,换句话说,无穷之间也是有大小的。

任给一个无穷集合,我们都能够造出一个集合包含它,而且和它不等势。

注:换句话说,无穷和无穷相比,没有最大,只有更大。——但是请注意,虽然我们能够造出越来越大的无穷集合,但是我们并不真正对那些太大的无穷感兴趣,因为和这个世界没什么关系。

如果两个集合都和第三个集合等势,那么它们彼此也等势。

注:好像也是废话,但是它引出了下面的重要陈述。

有很多集合都和全体正整数的集合等势,从而它们彼此也等势,我们称所有这样的集合为“可数无穷的(countably infinite)”。有很多无穷集合比全体正整数的集合的势更大,我们称所有这样的集合为不可数无穷的(uncountably infinite)。但是,不存在无穷集合的势比全体正整数的集合的势更小。

注:我们待会儿再来讨论为什么起这么两个名字。前面的例子告诉我们,全体正偶数的集合是可数无穷的,全体有理数的集合是可数无穷的,但是全体实数的集合是不可数无穷的。

在不可数无穷集合中间,有些集合是和全体实数的集合等势的,这些集合被称为“连续统(continuum)”

注:好了,现在我们对全体无穷集合建立了一个简单的分类。最小的一类称为可数无穷集。剩下的都叫不可数无穷集。不可数无穷集里面又有特殊的一类叫作连续统,剩下当然还有一些非连续统的不可数无穷集,但是它们几乎和真实世界没有任何关系,所以忽略之。(有人不愿意忽略它们,非要去研究里面的一些麻烦的问题,于是产生了数学中间最让人头晕的一部分结论,比如什么哥德尔不完全性定理之类……这个定理偏偏还特别著名,很多人都问过我它究竟说的是啥。相信我,你不可能弄明白的。)

也就是说,我们真正关心的是两类特殊的无穷集合,一类称为可数无穷集,一类称为连续统。所有的可数无穷集彼此等势,所有的连续统彼此等势,但是任何可数无穷集和连续统之间不等势,后者总是更大一些……真绕嘴阿。

下面是一些可数无穷集和连续统的例子:

自然数集,整数集,有理数集。(基本上,如果你在平面上或者直线上随手点无穷个点,并且这些点彼此都不挨着,那么它们的总数就是可数无穷的。但是也存在一些不这么简单的可数无穷集。)

实数集,直线上点的个数,平面上点的个数,一个正方形里点的个数,或者简而言之,一切几何对象里的点的个数都是连续统。(这里一个常常被人提到的推论就是直线上的点和平面上的点一样多,——都是连续统那么多。其实证明很简单,但是一言难尽,请查书去。)

好了,现在我们可以讨论这两个名字是怎么来的了。请注意,所有的可数无穷集都是可以和正整数建立起一一对应的,这是什么意思呢?这意味着,我们可以把一个可数无穷集中的每个元素都对应到一个正整数,这相当于给他们编了号码,从而我们可以去数它们(这就是可数这个词的来历)。也就是说,我们可以按照1号、2号、3号这么一直数下去,虽然总数是无穷的,但是只要我们在理论上一直数完所有的自然数,我们就能真正数遍这个集合的所有元素(至少在想像里是这样)。

而连续统集合却不是这样。一个直线上的点是连续统,这就是说,无论怎么巧妙的给这些点编号,我们都是不可能给所有的点都编上号码然后一个一个的数下去把它们都数完的。它们是“不可数”的。

有人会说,这不是自欺欺人么?反正都是无穷个,反正事实上总也不可能数得完,那么在理论上区分“想像中数得完”和“想像中也数不完”有什么实际意义呢?

有的。正是这一点微妙的差别,使得有些事情我们能够对可数集去做却不能对连续统集合去做,也正是这一点差别,促成了从没有大小的点到有大小的直线和平面之间的巨大的飞跃。

让我们暂时放下关于无穷的那些讨论,回到主题:我们通常所说的长度面积体积这些词,究竟是什么意思?

为了更清楚的阐明这个主题,让我们把目光只集中在最简单的一维情形,也就是说,我们只考虑“长度” 这个词。我们希望,取出直线上的一部分,就有一个“长度” 存在。如果能做到这一点,那么类似的,面积和体积之类的高维词汇也可以类似的得以理解。

我们把目前要回答的问题列在下面:

是不是直线上任何一部分都可以有长度?直线上的一个线段当然应该有长度,直线上的两段分离的线段也有总长度,单点有没有长度呢?随便从直线上挖出一些点来得到的也许是虚虚实实的一个“虚线段”有没有长度?是不是我们从直线上任意取出一个子集合(线段啦单点啦都可以看成是直线的特殊的子集合),都可以定义它的长度?

——这件事无论在数学上还是应用上都是重要的,如果能够给直线的任何子集定义长度,那就太方便了。

如果上面这件事是可以的话,那么随便给一个直线上的点集,长度怎么计算?

事实上,在数学中这些问题都能够得到解答,但是首先让我们把上面问题里的“长度” 这个词都换成更准确的一个术语:测度(measure)。之所以要采用这么一个新造的词,首先是因为“长度”有时候有局限性。一个线段的长度好理解,一个复杂的点集,说长度就会显得很奇怪;不仅如此,在二维情形下我们还要研究面积,三维还要研究体积,四维还要研究不知道什么积……为了省去发明一个又一个新词的苦恼,我们把这些东西统一叫做二维测度,三维测度……一了百了。

好吧,那么,我们来定义(一维)测度。

——不,不要误会,我并不是要在此刻写出一大段难懂的话,告诉大家“测度就是什么什么什么什么。” 或者更谦逊一点,说“我认为,测度就是什么什么什么什么。” ——也许这是一般人看来自然不过的工作方式,但不是数学家的。

这是因为,我们现在要定义的是某种特别基础的概念。也许在定义某些很复杂的高层概念的时候这种方式很自然,可是概念越基础,这种方式带来的问题就越大。关于测度这种层次的概念几乎必然伴随着用语言难于精确描述的种种晦涩的思考,一旦一个人试图把他对这个词的理解宣诸笔墨,那么无论他多么小心翼翼的整理他的陈述,在别人看起来他的定义都必然漏洞百出,有无数可以商榷的地方。——而因为这个概念在整个逻辑体系中的位置过于基础,任何商榷又都必然说起来云山雾罩,像哲学家们通常进行的关于基础概念的争论一样令人头昏脑胀。如果数学家们要开会用这种方法给出测度的定义,那一百个数学家一定会提出一百零一种定义来,最终的结果是什么有效的结论也得不到。

数学家们采用的是完全不同的方式:我们先不要贸然去说“什么是测度”,而是先问问自己,当我们想发明一个新的定义的时候,我们在这个定义的背后是想达到怎样一种目的?换句话说,我们想让这个定义实现哪些事情?

首先,测度——不管它具体怎么定义,其作用的对象按照我们的期望是直线上的任意一个子集,而最后得到的测度应该是一个具体的数字。也就是说,所谓定义测度,就是我们需要找到一种方法,使得随便拿来直线上的一个子集,我们都能够最终得到一个数字作为其“长度”。(在这里我们把无穷大也看成是测度,例如整根直线的测度就是无穷大。)

然后,这种方法总要满足一些必要的约束。——不能随便给一个线段标上一个数字,就说它是测度了。这些约束有哪些呢?

第一,空集(注意是说空集而不是说单点集)本身也是直线的子集,也应该有个测度。我们应当保证空集的测度是零。这是很显然的,否则这个测度就毫无实际意义了。

第二,既然每个子集都有一个测度,那么把两个彼此本身不相交的子集并在一起得到的新的子集也应该有个测度,并且这个测度应该等于两者之和。——这也是很直观的要求。两个线段如果不相交,那么他们的总长度应该等于两者长度之和。更高维的情况也一样,两个二维图形如果不相交,那么总面积应当等于各自面积之和,诸如此类。

更进一步,三个不相交子集的测度之和也应该等于这三个子集并起来的集合的测度,四个也对,五个也对,依此类推,无穷个不相交子集的测度之和也应该等于把它们并起来得到的集合的测度。——注意,是可数无穷个!

(为什么呢?直接说任意无穷个不好么?干嘛只限定是可数无穷个?)

数学家是很谨慎的。上面这个性质被称为可数无穷个集合的测度的“可加性” ,承认可数无穷个集合有可加性是不得不为之,因为在实际应用中我们确实常常会遇到对可数无穷个子集求总测度的问题,可是任意无穷个子集的测度也能相加,这个陈述就太强大了,我们一时还说不好测度有没有这么强的性质,还是先只承认可加性对可数无穷个集合成立好了。

“且慢” ,数学家说,“先别找太多的约束,看看这两条约束本身能够在多大程度上给出测度的定义好了。”

(什么嘛,这两条约束根本什么都没说。第一条是废话,第二条也是很显然的性质,要是只满足这两条就可以叫做测度,那测度的定义也太宽松了,我随随便便就能构造出好多种不同的测度出来。)

也许是这样,可是到时候再添上新的约束也不迟。这也是数学家们常用的办法,先定义尽量宽松的概念,然后再一点一点的附加条件,得到更细致和特殊的子概念。就目前的情况来说,看起来这两条约束确实是宽松了点……

不幸的是,——也许出乎你的意料,——这两条约束不是太宽松,而是已经太严苛了。我们可以证明,给直线的每个子集都标上数字作为测度,保证空集的测度是零,并且测度满足可数无穷个集合的可加性,这件事情在逻辑上并无内在的矛盾,但是这样的测度必然具有一些数学上非常古怪的性质。也就是说,这样的测度根本不能用来作为对长度的定义!

(关于这件事的证明其实很简单,但是需要一点数学基础才能读懂。关于什么是“古怪的性质”,后面还会提及。)

在这种情形下,我们只好退而求其次,减少对测度这个概念的期望。——可是前面提到的两条性质都再基本不过了,如果连它们都不能满足,我们定义出来测度又有什么用呢?——于是数学家们另辟蹊径,不是放松这两条限制,而是放松它们的适用范围:我们不去强求测度能对直线的每个子集都有定义,也就是说,我们只挑出直线的一些子集来定义测度,看看能不能避免逻辑上的困境。

需要挑出那些子集呢?很显然,我们希望对于平时人们能接触到的各种常见的子集都能定义测度,所以单点集是需要的,线段也是需要的,而若干线段的交集或并集(这里若干还是指至多可数个)也是需要的,对它们的交集或并集再作交集或者并集也是需要的……

在数学中,我们把所有线段反复做交集或并集生成的这一大类集合称为可测集(当然它有更严格的定义,不过大概就是这个意思)。不要小看这种生成方式,事实上,你能想象得到的直线的子集其实都是可测集,——要找出一个非可测集的集合反倒是有点困难的事情。虽然可测集不包括直线的全体子集,但是如果我们能对所有可测集定义合理的测度,那这个测度也足以应付人们的需要了。

所幸的是这确实是可以做到的。在测度论中有很大的一部分篇幅是用来论述测度是怎么对可测集得以建立的,这部分内容一般被表述为一个称为Caratheodory’s theorem的理论。言简意赅地说:是的,只针对可测集定义的,满足前面那两条假设的“合理”测度总是能够建立得起来的。这里所谓的“合理”,就是说它能够用来作为我们心目中那个“长度”而存在。为了说明这一点,让我们想想我们离我们的目的地还差多远:直到现在为止,我们还是完全不知道一个测度究竟是什么样子。举例来说,按照我们的想法,一个单点集的测度应当是零(对应于点没有长度的直观),而实数轴上从0点到1点的线段的测度应当是1,更一般地,从a点到b点的线段的测度应当是b-a,——可是这一切我们统统还不知道呢!

这一切确实还未曾得到说明,而且更关键的是,仅仅有前面给出的那两条假设,我们也确实无法推理得出上面那些结论。这也是数学家们的通常做法:先有一个一般的概念,然后通过给它添上一些新的独立约束来构造出更细致的概念。我们现在已经有了一个一般的测度的概念,把它总结一下,就是说:

对于直线的一大类子集(也就是可测集,谢天谢地,我们在应用中真正关心的集合都属于可测集),我们能够在不伤害逻辑的自洽性的前提下,给他们中的每个都标上一个数字,称为测度,并且这些数字满足下面两条性质:

空集对应的数字(空集的测度)是零。

若干个(但是至多可数无穷个)彼此不相交的子集,它们并在一起得到的子集的测度,刚好等于这些子集各自测度之和。

我们只知道这样的测度是存在的,但是很显然并不唯一,因为我们未曾对这些具体的数值作过任何限定。为了使测度能够符合我们心目中的那个“长度”的概念,我们需要进一步添上一条需要满足的性质:

如果把直线看作实数轴,那么从数轴上a点到b点的线段(这是直线的一个子集)对应的测度应当等于b-a,例如,数轴上从2到3的这一段线段的测度应该等于1。

乍一看这好像只是个不完全的限定,我们只规定了最简单的线段的测度,却没有规定剩下那许多奇奇怪怪的集合的测度,可是好在有数学推理来替我们包办剩下的一切:只要添上这条约束,那么所有的可测集的测度的具体大小就会以唯一不导致逻辑上的矛盾的方式被确定下来。也就是说,对于任何一个可测集,我们都有办法算出它所对应的那个唯一可能的测度来。(怎么算的?如果你不想看到数学式子的话就别问了……)

需要说明的是,同样也是根据这三条,我们就能够发现单点的测度必须是零(否则就会导致计算上的矛盾)。注意:这里的逻辑完全是数学的而不是哲学的,也就是说,我们是可以“推导”出单点的测度是零这样的结论的。

各位看到这里可能会很疑惑,我究竟在干什么?我并没有回答事先许诺要回答的任何一个问题(为什么点的长度是零而线段就不是,诸如此类),而是蛮横无理的把它们作为规定和规定的推论强制性的摆在这里,作为测度的定义的一部分。这算什么回答?

请允许我把对此的解释(以及对前面所有那些哲学性问题的解释)放在后面,先暂且回到测度的定义本身上来。

前面说了,只要能满足头两条性质,我们就称定义出来的那个东西为测度,加上第三条只是为了让这个测度符合我们对长度的具体数值的要求。也就是说,加上第三条性质后,我们定义出的应当只是测度中的具体某一种,一般把它称为勒贝格测度(Lebesgue measure)。再强调一遍,正如前面所说的那样,勒贝格测度并不能定义在直线的所有子集上而只能定义在其中的可测集上。但是我们在数学中和应用中能够遇到的集合差不多全是可测集。

(那就总还有几个不可测集了?是的,确实存在一些特别诡异的集合是不可测集。关于不可测集的构造和性质一直是数学上一个有趣的话题,——虽然并不重要,因为事实上在真实世界里我们遇不到它,它们只是作为抽象的数学构造出现的。我们后面还会再次谈及这个问题。)

既然勒贝格测度只是测度的一种,那就是说,数学上是承认不同于勒贝格测度的更一般的测度存在的。这些测度只满足三条性质的前两条,而未必满足第三条,也就是说,这些“测度”并不保证从0点到1点的线段的测度是1,甚至也未必保证单点集的测度是零。它们的性质可能和通常人们对长度的理解很不相同。

(为什么呢?既然明显和常识相悖,为什么还要保留这些人造的概念呢?)

这是因为,尽管数学家发明测度的概念的初衷确实只是想把“长度”的概念精确化和逻辑化,(事实上也确实做到了,就是勒贝格测度),但是人们很快发现,那些更一般的测度虽然未必还符合人们对“长度”这个词的理解,但是它们作为一种数学概念却能在大量的学科里得到应用,甚至成为很多理论的基础语言。一个最简单的例子是概率论,这门古老的学科在测度论建立之后就完全被测度的语言所改写,以至于今天一个不懂一般测度的人完全没办法研究概率论;另一个例子是著名的狄拉克测度(Dirac measure),这个曾经令数学家也有点头痛的非正常测度在物理学和信号处理等领域里扮演了非常关键的角色。

——不过,这是后话了。

回到我们的主题:“长度”的意义上来。

先总结一下我们已经知道了的事情:

所谓(一维)测度,就是要给直线上的每个子集标上一个数字,使得它们满足下面两条性质:

空集对应的数字(空集的测度)是零。

若干个(但是至多可数无穷个)彼此不相交的子集,它们并在一起得到的子集的测度,刚好等于这些子集各自测度之和。

这样的测度存在很多种,而且几乎全都行为古怪。为了更好的符合“长度”的概念,我们添上第三条要求:

如果把直线看作实数轴,那么从数轴上a点到b点的线段(这是直线的一个子集)对应的测度应当等于b-a。

满足这三条性质的对直线上的每个子集定义的测度是不存在的。但是,如果放松要求,不对直线的每个子集定义而只对直线的可测子集定义测度,那么这样的测度存在并且唯一,数学上称为勒贝格测度。靠一系列定理的帮助,对直线的任何一个可测集(一般来说你能想象到的任何子集都是可测集),都有一套严密定义的公式能够把这个测度的具体大小算出来。

于是,数学家郑重宣布:

勒贝格测度就是人们通常所说的“长度”的严密定义,而且是唯一正确的定义。

“什么?”我们的哲学家朋友们一定要跳起来了。“你上面绕来绕去的说了一大堆让人听不懂的话也就罢了,你怎么能说这是关于长度唯一正确的定义呢?这顶多是你们数学家对这个词的理解而已,我最讨厌你们学理科的用这种自以为掌握绝对真理的口气说话了!”

“是么?”数学家回答道,“难道长度这个词还可能有别的理解不成?”

“当然可以。”哲学家愤愤不平地说。“亚里士多德说过……,莱布尼茨说过……,康德说过……,江泽民同志说过……,总之,人类对长度这个词的理解是经历过漫长的争论的,而且必然还会一直争论下去。每个人都有权提出自己的观点啊。”

“我不管他们怎么说,”数学家说,“我只问你心里有没有对长度的定义?”

“当然有了。”哲学家骄傲地说,“我认为,长度就是……”

“慢着,”数学家迫不及待的打断他,“我不想听你的哲学论文,我只问你,在你对长度的定义里,空集有没有长度?有的话,是不是零?”

“是……的。”其实哲学家暂时没想到空集这么细节的事情,但是他觉得反正这个无关紧要吧,所以先首肯了。

“那么,按照你定义的长度,数轴上从2.76这个点到6.98这个点的线段的长度,是不是等于6.98-2.76=4.22?”

“这个废话,不然还叫什么长度啊。”哲学家有点不耐烦了。

“还有,如果我把可数无穷个有长度的集合放在一起,总长度等不等于各自的长度之和?”

“这个……”哲学家对于“可数无穷”这个词有点拿不准,“反正两个线段的总长度是等于它们各自的长度之和的,至于无穷个……好吧就算是吧,那又怎样?”

“那就结了。”数学家慢条斯理地说。“我根本不关心你关于长度的哲学观念是怎么建立起来的,我只想说,如果你的观念没有内在的逻辑矛盾,那它就一定和我们数学家所说的勒贝格测度是一回事。这就是我为什么说勒贝格测度是唯一正确的长度的定义。——你当然可以有你自己的定义,只不过它一定正好就是勒贝格测度!”

“什么和什么呀!”哲学家有点懵了。“可是你什么也没有定义啊,你只是自己号称证明了一个所谓勒贝格测度的存在,可是我们关心的是为什么!我们哲学家要问的是为什么从2.76这个点到6.98这个点的线段的长度等于4.22,你却把它写在了定义里,这并没有回答问题本身啊。”

“唉,”轮到数学家不耐烦了。“从2.76这个点到6.98这个点的线段的‘长度’当然也可以不等于4.22,只要你不取勒贝格测度而换一种测度就成了,——问题是人们不喜欢那样啊。不是为什么它的长度等于4.22,而是你首先要求了4.22这一属性,然后把它叫做长度。为什么只有在春天桃花才会开?因为是你把桃花会开的那个季节叫做春天的!”

嗯,我不知道这段对话是把问题讲清楚了还是搅得更混乱了。当然这里面还有许许多多的细节需要阐明,下面让我们来更仔细的讨论一下吧。

“长度是什么?为什么从2.76这个点到6.98这个点的线段的长度等于4.22?”正如前面那个数学家所说的,这个问法本身就是不合适的。我们给从2.76这个点到6.98这个点的线段赋予一种属性是4.22,给从姚明的头到姚明的脚的线段赋予一种属性是2.26米,现在我们把这种属性叫做长度,如此而已。——这完全是人为的设定,没有任何先验的意义。数学家已经说了,你当然也可以给从2.76这个点到6.98这个点的线段赋予另一种属性是3.86,给从姚明的头到姚明的脚的线段赋予另一种属性是0.03米,只要你足够细心,这种做法是不会引起问题的,只不过你自己定义的那种属性不再被人们称作“长度”罢了。你可以把它称为“短度”或者别的什么,没有问题。

有趣的是,——测度论的伟大也就体现在这里,——只要我们承认了诸如从2.76这个点到6.98这个点的线段的长度等于4.22这样一些朴素的论断,那么仅仅靠着逻辑推演,我们就能够给直线的几乎所有子集——可测集——计算出对应的“长度”来,哪怕它们已经变得不是那么直观。譬如说,单点集的“长度”是0(不是什么无穷小,就是0),2到5之间的全体无理数的集合的“长度”是3,某个广义康托集(一种有着复杂分形结构的点集)的“长度”是2.86……这一切本来似乎都可以问一问为什么的事情,其实都只是逻辑的自然推论罢了,你要是不承认它们,就必然导致逻辑上的不自洽。

——为什么这个东西的长度是0?那个东西的长度是2.3?为什么这个奇奇怪怪的集合也会有长度?为什么它的长度不等于别的,偏偏等于根号2?

因为长度满足那三条性质,所以必然如此。

——为什么长度要满足那三条性质?

因为人们把满足那三条性质的属性就叫做长度。你当然也可以用别的几条性质定义出来一个什么度,只是不能再叫长度就是了。

这就是“长度”这个词的全部意义。

“可是,”我们的哲学家还是不甚满意,“我还是觉得你没有真正回答我想问的问题。”

“还有什么呢?”数学家说,“我上面这些理论不都已经自圆其说了么?”

“就是这个自圆其说让我特别恼火。”哲学家说。“我总觉得你绕过了我真正的问题。我问为什么长度要这么定义,你说因为人们把这样定义出来的属性就叫长度,这当然没错,可是我其实想问的是,为什么会有这样一种属性存在?为什么自然界中的事物可以具有长度——或者用你的话说——这种属性?你当然可以告诉我说,因为数学上证明了你的那什么勒贝格测度一定存在,可是我不想听你那个证明,我想听到的是一个更深入的解释,为什么长度是得以存在的?”

“因为……因为我们能证明它实际上存在……”数学家迷惑不解的说。

“我不是问你它存不存在,我是问它为什么存在!”哲学家怒气冲冲的说。“你不觉得这是件不太自然的事情么?反正是一堆点,你又说了点的长度是零,可是一旦把点排列起来得到的线段就有了测度,在这个过程中发生了什么呢?这个不为零的长度是怎么出现的呢?——别又对我说你能证明它不为零,我要问的是为什么,——比证明更本质一步的那个为什么!”

“啊,”数学家字斟句酌地说,“你想问的其实是为什么线段的测度不等于简单地把点的测度加在一起对吧。是啊,这确实是个有趣的问题……”

这确实是个有趣的问题。

如果我们仔细检查关于勒贝格测度的那三条公理,会发现关于第一条和第三条并没有什么可多说的,可是第二条——至多可数个彼此不相交的子集的并集的测度等于这些子集各自测度之和——却多少让人心生疑惑。这句话读起来总是有点别扭。

如果我们把它换成“有限个彼此不相交的子集的并集的测度,等于这些子集各自测度之和”,听起来就会舒服多了,可是这里做了某种推广,从有限到无限,而且还不是任意无限个而是“至多可数无穷”个,这是为什么呢?

首先,这种推广是必须的:只对有限个的子集定义测度的可加性,这样得出来的测度会不满足人们的需要,——不仅仅是给长度一个精确定义的需要。测度论不只是为哲学家发明的,它要在数学的其他领域里以及别的自然科学领域里得到应用,而在这些场合里,我们时刻会碰到对无穷个集合的并集的测度的计算。我们必须在定义里就保证测度能够无穷相加。

而是另一方面,为什么又偏偏要限制可数无穷个集合才有可加性呢?

事实上,我们很容易就会发现,正是这一点促成了前面那个问题的出现:为什么线段具有长度?如果我们假设任意无穷个彼此不相交的子集的并集的测度等于这些子集各自测度之和,那么,既然线段是由无穷个点构成的而点又没有长度,那线段也应该没有长度才对。难道这一条是专门为了避免这个悖论才设置的么?

不是。我们很快就能看到,这种对于可数性的限制,有着更为本质的原因存在。

首先,让我们想想看把很多数相加是什么意思。我们一开始学到的加法是针对两个数而言的,给定任意两个数,我们能够算出它们的和。进而,我们把这一过程推广到了三个数求和:先对其中两者求和,然后再把这个和同第三者相加。依此类推,我们可以把四个数相加,把五个数相加……

请注意,这里的过程完全是递归的(inductively):只有定义了n个数的和,我们才能够继而定义n+1个数的和。然后,这样一直进行下去,我们就能够对任意有限多个数求和。——只是“任意有限”,还不是“无限”。

从有限到无限这一步跨越其实走得颇为艰难。哲学家也好别的领域的科学家也好常常随心所欲的使用数学词汇而并不特别在意自己是否真的明了它们的严格意义,可是数学家却不能如此自由。真正把无穷个数加起来,也就是数学中所谓的“级数”(series),这套理论的严密化在数学史上经历了相当长的一段时间。最终,借助于极限理论的帮助,真正严格的关于级数求和的理论才得以建立。——也就是说,事实上,什么样的无穷级数可以相加,什么时候不能相加,相加的时候要注意什么问题,这一切都受到了理论的约束。在这些理论的基础上,我们才能够确定当我们随口说出“把这无穷个数加在一起”的时候,我们确实知道我们在说什么。

什么是级数呢?级数就是把有限个自然数相加的自然推广:既然定义了n个数的和我们就能够进而定义n+1个数的和,那么,把这个过程递归地进行下去,我们就能够对任意有限多个数求和。当有无穷个数需要我们求和的时候,我们就只对它们中的前N个求和,并且让这个N不断变大,如果这一过程有极限,这个极限就被我们称为这个无穷数的和。

请注意上面这段话背后的涵义:当我们说“对无穷个数求和”的时候,我们其实潜在地要求了这些数的总个数必须能够通过n->n+1->n+2……这样的过程来逼近,然后通过极限的方式定义它们的和。这也就是说,这些数的总个数必须是可数个!

让我们回忆一下什么是“可数个”:“可数个”就是能够和自然数集建立起一一对应的那么多个,用更直观的语言来说,“可数个”就是“可以一个一个数下去”的那么多个。只有一个集合里包含可数个元素的时候,我们才能够对于它应用数学归纳法,因为数学归纳法的本质就是“一个一个数下去”:当一件事对n成立时,我们进而要求它对n+1成立,这样的过程进行下去的极限,就是可数无穷。

那么,既然多个数的加法本质上是个递归过程,——只有先把n个数加起来,我们才能进而加上第n+1个数,——所以加法至多能对“可数无穷”个数来定义(也就是级数加法)。把“不可数无穷个”数加在一起,这件事情是毫无意义的!

这正是前面所有那些所谓哲学悖论的根源:当人们想当然的说着“把无穷个点的测度加在一起”的时候,他们以为他们是在说一件自然而然的事情,可是事实上,除非这无穷个点是可数个,否则这里的加法根本无法进行。不幸的是,任何线段都偏偏是由不可数个点构成的(它们是连续统)。

为什么线段是由点构成的,而线段的测度却不等于组成它的那些点的测度之和?因为“组成它的那些点的测度之和”这个短语根本没有意义,所以两者也不必相等。

这个回答也许有些出人意料,可是事情就是如此。很多问题之所以令人迷惑,不是因为它们真的是什么悖论,而只是因为问题本身没有被恰当的叙述。人们常常自以为是的使用很多词汇却罔顾自己是不是了解它们的真实含义,譬如说“求和”。人们随心所欲地说“把若干个数加在一起”却忘了其实不可能真的把它们“一下子”加在一起,加法是个递归过程,这就决定了如果要加的东西的个数太多(不可数那么多),它们就加不起来了。

(不得不补充一点——一个很扫兴的补充——在数学中,某些场合下我们真的必须要对不可数个数定义总和……数学家总是这样,为了各种极端情况而拓展自己的定义。在这些情况下,这种不可数个数的和也是能定义出来的。但是,这件事并不会对上面那些论述造成削弱:这里的特殊意义上的“和”是为了应付特别的目的而定义的,它和我们平时所说的求和已经不是一个意思了。)

也许哲学家还会追问:既然线段的测度不是组成它的那些点的测度之和,那么这个测度是从哪里来的呢?

它们不是哪里来的……它们是线段自己所固有的。这就是为什么我们在定义长度的时候非要加上第三条公理的原因:我们必须在定义里就写明线段的测度,否则就没有办法建立起直线的所有可测子集的测度的架构。事实上,既然点的长度是零,根据可数可加性我们很容易推出一切可数集的长度也都是零,所以在某种意义上说来,“长度” 是本质上只属于连续统的一种性质。换句话说,只有进入了连续统的范畴,不为零的长度才可能出现。这就是为什么我们不能从单点集出发定义长度的原因。

那么,我们现在可以回答那个著名的“飞矢不动”的悖论了:一支飞驰的箭,在每一个确定的时刻都静止在一个确定的位置上,为什么经过一段时间后会移动一段距离?

答案是:因为任何一段时间(不管多么短暂)都是一个连续统,包含了不可数个时刻,所以箭在每一时刻的静止根本不需要对一整段时间之内的移动负责。——后者并不是前者的相加,而前者也根本不可能相加。

因为连续统不可数,所以我们能够在每时每刻里都静止的存在,同时又能在一段时间内自-由运动。这也许是大自然的巧妙安排吧。

长度的意义说了这么多,到此差不多就可以告一段落了。但是关于在前面的讨论中出现的许多数学概念和思想,却还不妨多说几句。事实上,测度论虽然只是数学中一个具体的分支,但是它的发展和演进却和数学史上最有趣的篇章之一——所谓的“第三次数学危机”——联系在一起。关于这桩公案,坊间的科普书目已经汗牛充栋,我也并不想在这里再重复一遍那些随手就可以找得到的八卦,而只是想针对某些特别的概念和理论略加说明,至少,这对愿意继续阅读别的数学或者数学科普著作的朋友来说,会有点作用吧。

这个概念无疑常常困扰没有受过现代数学训练的阅读者们,这是很自然的事情,因为它可以从直觉上意识得到,却又难于精确地把握:无穷小是什么?是不是可以精确定义的数学概念?它是一个数?还是一段长度?能不能对无穷小做计算?诸如此类等等。由于这个概念几乎天然的和各种哲学式的思辨联系在一起,使得甚至哲学家们也对它颇为关注,——当然,还有数之不尽的民科们。

关于无穷小的讨论者,最著名的大概莫过于莱布尼茨,他花了大把的精力试图精确阐述无穷小的概念并且以此作为整个微积分学的基石。在莱布尼茨看来,无穷小是一个比任何数都小但是不等于零的量,对它可以做四则运算,尤为关键的是可以做除法:两个相关的无穷小量的比值就是一个函数的导数。以此为基本语言他开始建立微积分学的基本理论,——他基本上成功了。直至今天,数学家采用的关于微分的记号仍然来自莱布尼茨,而数学学科内部关于微积分学的专门称呼——“分析学”——也来自于莱布尼茨自己对他的理论的叫法:无穷小分析。尽管牛顿和莱布尼茨在微积分的发明权上争得不可开交,可是几个世纪过去,至少在这两件事情上莱布尼茨大获全胜。

可是,也许你想不到的一件吊诡的事情是:尽管莱布尼茨在微积分学的建立过程里做出如此重要的贡献,他的思想的基石——无穷小量——却是一个在今天的数学语言里被完全抛弃了的概念。人们发现这个词汇除了带来混乱之外并没有什么特别的用处,于是作为一种语言,它被丢弃了。事实上,即使在莱布尼茨的同时期人看来,无穷小也是一个有点让人不舒服的词:比任何大于零的数都小,却不是零。我们当然可以把它仅仅作为一种人为的逻辑概念来使用,可是这样一个怪东西的存在,既使得数学的基本对象——实数的结构变得混乱,也在很多场合带来了麻烦的难于回答的问题(尽管它也确实带来了不少方便)。在分析学蓬勃发展的十八世纪,一代又一代数学大师为此争论不休,大家混乱而各行其是地使用这个词,却没人能说清楚它的精确含义。终于,从十九世纪初期开始,以柯西(Cauchy)和魏尔斯特拉斯(Weierstrass)为代表的一大批数学家开始为分析学的严密化做出了大量的工作,他们试图在完全不采用“无穷小量”这个概念的前提下重新建立整个分析学,——他们也成功了。

于是这个词就被抛弃了。时至今日,这个词尽管在很多数学书里仍然会出现,但是这时它仅仅作为一个纯粹修辞上的词汇而不是严格的数学概念,——人们通常用它来指代“极限为零的变量”(感谢十九世纪那一大批数学家,极限这个词已经是有了严密清晰的定义而不再仅仅是某种哲学性的描述),也有的时候它被用来作为对微积分运算中的某些符号的称呼,但是无论何时,人们在使用它的时候都明确的知道自己想说什么,更关键的是,人们知道自己并不需要它,而只是偶尔像借助一个比喻一样借助它罢了。

那么,回到这个词最本源的意义:到底有没有这样一个量,比一切给定的正实数都小却又不是零?或者这个问题还有一系列等价的提法:在直线上存不存在两个“相邻”的点?存不存在“长度”的最小构成单位?等等等等。

在今天我们已经能够确定无疑的回答这些问题了:不,不存在。

事实上,这个问题的彻底解答甚至比柯西和魏尔斯特拉斯的时代还要晚:它本质上是关于实数的结构的理解的问题。即使柯西本人——尽管他奠定了现代极限理论的基础——也并不真正了解“实数是什么”这样一个简单的问题。关于严密的实数理论的最终建立,一般认为是皮亚诺(peano),康托(Cantor)和戴德金(Dedekind)这几位十九世纪下半叶的数学家的成就。所谓的“戴德金分划”仍然是今天的教科书里对“实数”这一概念所介绍的标准模型。在这套模型里,人们能够在逻辑上完全自洽的前提下回答有关实数结构的一切问题,而正如前面指出过的那样,它完全摈弃了“无穷小”的存在。

(是不是数学家说无穷小量不存在,这个词就没意义了呢?)

这又回到了前面我们屡次面对的那个关于数学断言的权威性的问题。如果承认无穷小是一个有关数的概念,那么,数学家的工作已经告诉我们,在实数理论中没有无穷小的位置。事实上,康托本人就曾经证明过承认无穷小是同承认实数中基本的阿基米德原理相矛盾的。(阿基米德原理是一个关于实数性质的基本原理,如果阿基米德原理是错的,整个数学大概都无法得以建立。)但是,如果把问题拉到数学的疆域以外,如果认为人们有权利不按照数学家的方式讨论数本身的性质,那么我们面对的就已经是全然另一层次的问题,——也就不可能在这里得到详尽的讨论了。

有趣的是,和无穷小如此相似的一个词——无穷大——却在今天的数学语言中占有与之判若云泥的一个地位:人们谈论它,研究它,还给它以专门的记号(倒8字)。造成这一多少有点奇特的事实的关键在于,和通常人们的误解不同,无穷大其实并不是无穷小这个词在概念上的对偶(尽管乍一看似乎如此)。事实上,就某种意义而言,说它是零这个词的对偶也许更为恰当一些。

让我们回顾一下这个概念在数学中的递进过程:我们都知道存在这样的数列(例如自然数列),可以一直变得越来越大,直到比任何给定的数都更大,这种时候,我们把这样的数列称为“趋于无穷大”或者直接就简称它是无穷大。——请注意,在这里无穷大仅仅是作为人们对一个数列或者变量的极限的叫法而存在的,我们并没有承认它是一个数或者一个确定的对象,而只是一个形容词而已。每个具体的数都不可能真的比别的数都大,尽管一系列数可以没有止境地变得越来越大,这实质上就是亚里士多德所强调的“潜无穷”。

如果事情只是到此为止,那一切相安无事,无穷大这个词今天的地位也只不过和无穷小一样仅仅作为对一种极限的描述而存在罢了。可是这里有某种微妙的差别:正如前面提到过的那样,“无穷小”不是别的,只是一个变量极限为零而已,所以我们总可以认为无穷小只是一种说法,在必要的时候可以用“趋于零”这样一个替代说法来换掉它。可是“无穷大”是什么极限呢?它并不是趋于任何特定数字的极限,而是“趋于无穷大的极限”,你看,这个词轻易回避不掉。

于是人们只好被迫不断的提及它,要是非要替换成别的说法,就要花好多倍唇舌才成。比如,前面说过直线本身也是直线的可测子集,那么整条直线的测度是多少?当然我们可以佶屈赘牙地说“直线可测,但是它的测度并不是一个确定的数,而只是比任何给定的实数都要大。”——这也太麻烦了一点。为什么不省点事直接说“直线的测度等于无穷大”呢?

这样人们就开始不断的把无穷大当一个名词来使用,假装它好像也是一个数一样,这就是所谓的“实无穷”。哲学家和数学家中比较喜欢哲学争辩的那一部分人对此有许多争论(直觉主义学派等等),但是让我们忽略掉它们,先看看在今天数学家是怎么使用这个词的吧。

首先,无穷大不是一个实数,在实数集中不存在任何数比其他所有数更大,这是确定无疑的事情。

其次,在许多场合下,我们确实可以把无穷大当作一个名词来使用,既方便又不造成困扰。例如前面提及的在测度论里我们说一个可测集的测度是一个“数”,这里的“数”既包括非负实数也包括无穷大。事实上,在有些数学书里索性把实数加上无穷大这样一个集合称为“增广实数集”。我们甚至可以对无穷大定义运算(在事先做好严格约定的前提下),这对于很多理论的叙述带来了极大的方便。如果说得更技术化一点,在很多数学分支(例如仿射几何)里我们还能像让每个实数对应于直线上的一个点这样一个几何对象一样,让无穷大这样一个特殊的对象也对应于一个特殊的几何对象(所谓的“无穷远点”),并且让所有这些几何对象平等地参与到几何学中来。只要仔细做好事先的公理准备,这样子做并不会引起任何逻辑问题。

——也许有人会觉得奇怪,怎么数学家可以如此随便,想给实数集添上什么就添上什么?事实上,数学家就是有这样的权利,因为说到底,数学不是研究真实自然界的学问,而只是研究人造概念的学问。任何人造概念,只要在逻辑上被严格的描述出来又不造成内在的逻辑不自洽,都可以被认为是“存在”的。复数的引进就是一个很好的例子。

——那前面怎么又说“无穷小不存在”?就算无穷小本身不能是一个实数,为什么不能把它添在实数集之外也弄一个“增广实数集”出来研究?

事实上,这样做是可以的,而且事实上也确实有好事者这样做过。问题在于它毫无意义。前面说了,任何人都有权利自己定义出一些什么东西来作为数学对象来研究,这是对的,只要他在逻辑上足够细心就行。可是这句话还有一个常常被人忽视的反面:数学尽管不是直接研究自然界的学问,可是它毕竟是在人们研究自然界的过程中形成而又有助于人们对自然界的理解的。如果一个数学概念纯粹只是自说自话的产物,那无论它多么自洽,也没有人会去关心它。复数这一人为的构造之所以被所有人承认是因为它巨大的威力。而无穷小——正如前面所指出的——是一个毫无必要引入的概念,添上它只会自找麻烦。无穷小和无穷大的命运之所以不同,关键正在于此。

回到无穷大这个词上来。这一系列文章的一开头还说过无穷大可以分成“可数”和“不可数”的无穷大,那又是怎么回事?

这是一个更常见的误解,这其实是两个不同的词:作为一个极限的(潜)无穷和由此引申而来的作为一个数学对象的(实)无穷是一码事,作为一个集合的势的可数无穷或者不可数无穷是另一码事,不同于前者的“无穷大”,后者其实应该被称为“无穷多”才对,只是人们通常混为一谈。事实上,当我们说“一个集合有无穷多个元素”的时候,我们有必要指出这个集合是不是可数,而当我们说“一条直线的测度是无穷大”的时候,却完全谈不上什么可数不可数。——在数学书中通过观察上下文,分辨这两者并不是很难的事情,可是如果把“无穷”作为一个哲学命题来研究的时候,这种区分却是必须的。——不幸的是,就我阅读所及,很多时候人们都没做到这一点。

3. 不可测集与选择公理、数学的严密性

回顾一下“不可测集”这个词的意思:在勒贝格测度的意义下,总有一些集合是没办法定义测度的,这样的集合称为不可测集。同时已经被我们反复指出过的一点是:一个没受过专门数学训练的人所能想象到的任何古怪集合其实都是可测的,不可测集非常罕见。

不可测集的存在是数学中中一件令人遗憾的事实,要是能给直线的任何一个子集定义长度,这样的理论该有多么漂亮啊……数学中常常有这样的情形,一个人们通过直觉认定的美妙设想,偏偏被一两个好事者精心构造出的反例破坏了,但是数学毕竟受制于逻辑,不管一个反例多么煞风景,只要它确实成立,数学家也只好接受它。

可是不可测集这个例子有点不同:构造不可测集,用到了选择公理。

这件事情说来话长,简单的说,我们都知道整个数学是建立在一些很显然也很直观的公理之上的,这些公理大多数都是诸如等量之和为等量之类的废话,可是选择公理稍微复杂一点,它是说:

任何给定一组非空集合,我们总能从其中的每一个集合里取出一个元素组成一个集合。

也像废话一样,是吧,可是这句话多少有点罗嗦,不像等量之和为等量一样简单明了。于是人们对它多少有所争议,有人认为它不应当排在基本公理之内。可是毕竟这句话也挑不出什么错,而且人们很快发现,很多很有用的数学结果离开选择公理就变得很难证明或者根本不可能证明,于是将就着也就承认它了。

可是不可测集的存在却又掀起了人们的疑虑,反对选择公理的人说,看看吧,要是没有选择公理,也就没有不可测集了。

赞成的人反驳说,不可测就不可测呗,有什么大不了的……虽然整个理论确实变得不那么完美了。——他们不知道更大的问题还在后面。1924年,波兰数学家巴拿赫(Banach)在选择公理和不可测集构造法的基础上,证明了石破天惊的“分球定理”:一个半径为1的实心球,可以剖分成有限的若干块,用这些块可以完整地重新拼出两个半径为1的实心球体!

这一下引起轩然大波,反对选择公理的数学家们声势大振,认为选择公理完全是trouble maker,必欲除之而后快。赞成选择公理的数学家们则指出选择公理“功大于过”,毕竟有很多有价值的数学成果出自选择公理的基础。双方僵持的结果是大家各行其是,大多数数学家承认选择公理,同时忍受巴拿赫分球定理所带来的不适感,少数数学家坚持不要选择公理,为此失去很多别的很有用的定理也在所不惜。

这一僵持局面维持了很多年,直到二十世纪的中叶才被戏剧性地解决。人们在不承认选择公理的假设下构造出了一大堆比巴拿赫的球体更严重的反例(例如一个空间同时有两个维数)。这些反例不只像巴拿赫的例子一样违反直觉,而且还严重的破坏了大多数已有的数学结果。于是人们发现,承认选择公理也许是必须的,而像巴拿赫的反例那样的反直觉的结果,也只能被迫承担下来了。

所以到今天几乎所有的数学研究都是在承认选择公理的基础上进行的。虽然作为一种后遗症,人们总是会时不时地谨慎的在使用选择公理的时候加上一句声明:“本文依赖选择公理。”——这也许是这条公理的一个特殊待遇了。

以上便是这段公案的来龙去脉。很多人可能在读完这段故事之后疑虑重重。什么啊?数学家们难道是这么随便的确定公理体系的么?如此的实用主义,似乎全然置真理的地位于不顾的样子。很多人可能还会想起欧几里德第五公设的故事,觉得数学家们原来如此不负责任,带给人们的不是一套严整规范的理论体系,而是一个支离破碎的混乱图景。连公理的问题都搞不定,整个数学岂不是空中楼阁?

限于篇幅,这篇文章不可能对这个问题予以展开论述,可是至少我们可以澄清一个常见的似是而非的误解:数学是严密性的科学,数学的发展也只有在严密的公理化基础上才能得以实现。

这句话——至少在字面上——是对的。不可测集的例子本身就说明,为了严密性,数学家们甚至不惜放弃直观,——像巴拿赫球那样的例子尽管如此怪诞,可是它是严密逻辑的产物,数学家也只好承认它的存在。

可是在更宏观的层面上,这句话却是错的。前面提到的分析学就是很好的例子:微积分的思想的提出是在十七世纪,在随后的十八世纪里取得了丰硕的成果,可是它的严密化却直到十九世纪下半叶才真正得以实现。测度论是另一个例子:“测度”是人们对于长度这个词的直观理解的严密化,可是这并不是说,在测度论被提出之前的漫长岁月里人们对于长度都一无所知,恰恰相反,人们已经知道了相当多的事情,只是等待测度论的语言让一切都变得精确和完整而已。

所以数学的发展实质上是一个拖泥带水的过程,一代又一代崭新、充满活力却又粗糙的思想被提出来,人们意识到它的重要性,予以发扬光大,产生一系列重要的成果同时又带来困惑,直到崭新的数学语言诞生,清理战场,让一切显得井井有条,像教科书上的文字一样道貌岸然,而同时却又有新的粗糙的思想诞生了……在这个过程里,严密性始终只是一个背景,尽管无处不在,可是并不占据舞台的统治地位。数学家们在意严密性,追逐严密性,甚至不惜为了严密性而牺牲看似有价值的学术成果,可是严密性并不是数学发展的引领旗帜,从来都不是。

这就是为什么同很多人的误解相反,大多数数学家其实并不关心那些关于数学基础的哲学性的争论,这也就是为什么我把眼前这些讨论放进附记的原因——一件事情是不是关系到数学的逻辑基础和这件事情在数学上是不是重要一点关系都没有。所有这些故事:可数与不可数、可测与不可测、选择公理等等,都是和二十世纪初所谓“第三次数学危机”的大背景联系在一起的,那段时间里数学家之间产生了无数纷争,可是今天的数学学生们在严肃认真地学习集合论和测度论的同时,却只对那些八卦付之一笑,作为茶余饭后的谈资。——事实上,即使在二十世纪初,也有大量的数学家根本不关注这件事情或者压根就采取了日后看来是错误的立场(反对康托,反对不可数集的概念,等等)却同时又在自己的领域里作出了重要的甚至是历史性的贡献。

关于那个所谓的“第三次数学危机”,有一本著名的科普著作《数学:确定性的丧失》专门讨论了它。这本书内容相当详尽,不幸的是它所引起的误解和它阐明的事情一样多。关于这次“危机”的描述主要集中在第十二章,那一章的结尾倒是相当深刻,值得特别引用在此:

“一个寓言恰如其分地概括了本世纪有关数学基础的进展状况。在莱茵河畔,一座美丽的城堡已经矗立了许多个世纪。在城堡的地下室中生活着一群蜘蛛,突然一阵大风吹散了它们辛辛苦苦编织的一张繁复的蛛网,于是它们慌乱地加以修补,因为它们认为,正是蛛网支撑着整个城堡。”

我要回帖

更多关于 如何用数轴表示集合 的文章

 

随机推荐