
数学
Frozen_Guardian
已退役菜鸡Acmer
展开
-
CodeForces - 830C Bamboo Partition(数学+推公式)
题目链接:点击查看题目大意:给出 nnn 个位置可以种竹子,每个位置的竹子的高度需要到达 aia_iai,所有竹子每天都会长高一个单位高度,同样每个竹子可以在任意位置砍一次,砍过之后竹子将不再长高,现在需要每隔 ddd 天来砍一次竹子,问在保证砍下来的总高度小于等于 kkk 的前提下,ddd 的最大值是多少题目分析:首先不难看出,在 ddd 确定的前提下,所有竹子都应该长到 ddd 的一个整数倍,写成公式的形式如下:∑i=1n(d∗⌈aid⌉−ai)≤k⇒∑i=1n(d∗⌈aid⌉)≤k+∑i=1n原创 2020-12-25 17:06:17 · 224 阅读 · 0 评论 -
CodeForces - 364A Matrix(思维+数学)
题目链接:点击查看题目大意:给出一个长度为 n 的,只由十进制数字组成的字符串 s,可以构造出一个大小为 n * n 的矩阵,构造方法如下:b[ i ][ j ] = s[ i ] * s[ j ],现在问有多少个子矩阵的权值和等于 sum题目分析:虽然 n 比较小,但如果模拟出数组 b 然后再求二维前缀和的话就有点麻烦了,这个题的模型和昨天做的那个题差不多:CodeForces - 1425D上面的那个题是需要将完全平方和拆开,而这个题恰恰相反,是需要将完全平方和合起来,考虑一个区间内的权值和原创 2020-12-10 22:03:17 · 500 阅读 · 0 评论 -
中石油训练赛 - Switches(高斯消元求逆矩阵+逆矩阵求线性方程组)
题目大意:给出一个 n * n 的布尔矩阵表示开关与灯的关系,现在每个灯来说,是否存在一种开关的集合,使得恰好使得只有当前灯是打开状态,其余灯都是熄灭状态,分别输出方案题目分析:将开关视为变元,将灯视为方程,这样就将问题转换为了求 n 次线性方程组,最朴素的方法就是枚举 n 次常数项,每次都对线性方程组进行求解,可惜这样的时间复杂度是 O( n^4 )考虑优化,设 A 为系数矩阵,X 为未知量矩阵,B 为常数矩阵,则线性方程组转换为了 ,移项可得这样问题就转换为了求出系数矩阵的逆矩阵,然后...原创 2020-12-07 16:24:50 · 312 阅读 · 0 评论 -
HDU - 3364 Lanterns(高斯消元解方程(取模))
题目链接:点击查看题目大意:给出 n 盏灯和 m 个开关,每个开关可以控制多个灯,每次询问给定灯的最终状态,问有多少种情况可以到达题目分析:以开关为变元,灯为方程列出方程组,每次求出有多少个自由元,因为自由元可以开也可以关,所以方案数就是二的幂次代码://#pragma GCC optimize(2)//#pragma GCC optimize("Ofast","inline","-ffast-math")//#pragma GCC target("avx,sse2,sse3,sse4原创 2020-12-07 15:17:30 · 374 阅读 · 0 评论 -
POJ - 2065 SETI(高斯消元解方程(取模))
题目链接:点击查看题目大意:给出一个质数作为 mod,再给出一个字符串,每个字母对应着一个数字:' * ' = 0 ' a ' = 1 ' b ' = 2 ... ' z ' = 26假设字符串长度为 n,题目给出了 n 个线性同余方程需要求解 ... 题目分析:因为未知数和方程组的个数都不是很多,所以直接套上模//#pragma GCC optimize(2)//#pragma GCC optimize("Ofast","inline","-ffast-math")原创 2020-12-07 15:01:41 · 319 阅读 · 0 评论 -
CodeForces - 1453D Checkpoints(概率+构造)
题目链接:点击查看题目大意:需要设计一个游戏关卡,由 01 字符串组成,1 表示存档点,0 表示普通关卡,规定每一步可以从第 i 个关卡前进到第 i + 1 个关卡,不过有 1/2 的概率会成功,剩下 1/2 的概率会失败,失败的话会返回最近的存档点重新开始,现在问如何设计关卡,可以使得到达终点的期望为 k题目分析:首先不难看出,每经过一个存档点后,前面的关卡都已经对后续的期望没有影响了,换句话说相邻的两个存档点组成的一段关卡是互相独立的所以我们只需要分析诸如 11 , 101 , 1001 ,原创 2020-12-05 22:06:01 · 457 阅读 · 0 评论 -
CodeForces - 1455E Four Points(数学+几何)
题目链接:点击查看题目大意:给出四个点,问最少移动多少步,可以使得四个点围成的矩形是正方形(这里的正方形允许退化成点)题目分析:比赛时写了个三分,然鹅又双叒叕不知道哪里写崩了,还是太菜了呀首先对于四个点全排列,枚举每个点分别属于正方形的哪个位置,方便起见我设:p[ 0 ] 是左上角,p[ 1 ] 是右上角,p[ 2 ] 是左下角,p[ 3 ] 是右下角不难看出 x 坐标与 y 坐标是相互独立的,所以这里只讨论如何求解最优的 x,关于 y 的话类比过去就好了对于最终的正方形来说,p[ 0原创 2020-12-02 11:26:07 · 1261 阅读 · 0 评论 -
CodeForces - 491B New York Hotel(数学)
题目链接:点击查看题目大意:给出一个大小为 r * c 的二维平面,再给出 n 个点,接下来有 m 次询问,没出询问会给出一个点 ( x , y ) ,需要计算出 ans[ i ] 为距离点 ( x , y ) 最远的那个点的距离,现在要求求出最小的那个 ans[ i ] 的值,并且输出其下标题目分析:读完题想用 KDtree,去网上找了个模板套上发现会 T,然后就只能中规中矩去推公式了假设以某个询问点 ( x , y ) 为原点来说,对于任意一点 ( a , b ) 与其距离分为四种情况讨论:原创 2020-11-30 10:25:28 · 181 阅读 · 0 评论 -
中石油训练赛 - Bad Treap(数学)
题目链接:点击查看题目大意:给出笛卡尔树的定义,现在要求给出 n 个点对 ( x , sin( x )),使得笛卡尔树的高度尽可能大题目分析:如果想让笛卡尔树的高度尽可能大,令其退化为一条链即可,考虑如何令其退化为一条链,一个比较简单的方法是让 x 和 sin( x ) 都单调考虑 sin( x ) :在上单调递增如果抛开 x 是整数的限制,只需要将这个长度为 π 的区间等分成 n 段就是答案了那么现在考虑如果 x 是整数该如何去做,因为 sin( x ) 是周期函数,所以设,那...原创 2020-10-10 21:32:33 · 520 阅读 · 8 评论 -
中石油训练赛 - Molecules(高斯消元解方程)
题目链接:点击查看题目大意:笛卡尔坐标系上给出 n 个点,如果点为 ( -1 , -1 ) 说明该点的位置是不确定的,现在给出 m 个相连接的关系, 规定位置不确定的点会被周围相邻的点拉到平均位置上,题目需要确定出最终每个点的位置题目分析:首先不难看出,x 和 y 是相互独立的,所以我们可以单独处理,因为 n 最大只有 100 ,所以我们可以对于每个位置列出一个线性方程,最后高斯消元直接求解即可大概就是这样的转换,套入模板即可代码:#include<iostream...原创 2020-09-12 10:44:28 · 268 阅读 · 0 评论 -
洛谷 - P3389 【模板】高斯消元法(高斯消元解方程)
题目链接:点击查看题目大意:给出一个线性方程组,求解答案题目分析:模板题,挂个模板,时间复杂度是 O( n^3 ) 的,其中 a[ 1][ 1 ] ~ a[ n ][ n ] 矩阵代表 x[ 1 ] ~ x[ n ] 在每个方程中的系数,a[ 1 ][ n + 1 ] ~ a[ n ][ n + 1 ] 代表的是等号右边的 b代码:#include<iostream>#include<cstdio>#include<string>#inclu..原创 2020-09-12 10:20:58 · 259 阅读 · 0 评论 -
牛客 - Sumo and Easy Sum(推公式+数学)
题目链接:点击查看题目大意:给出约束关系如下:求出对于每个 K 的 n 趋近于正无穷时 Sn的取值题目分析:涉及到的数学知识是初等数学的裂项相消法和高等数学的极限代码:#include<iostream>#include<cstdio>#include<string>#include<ctime>#include<cmath>#include<cstring>#include<alg..原创 2020-06-06 23:10:36 · 291 阅读 · 0 评论 -
CodeForces - 1355C Count Triangles(数学)
题目链接:点击查看题目大意:给出 A B C D ,规定 A <= x <= B <= y <= C <= z <= D ,问 ( x , y , z ) 三元组为三角形的情况有多少种题目分析:首先需要知道,当 x + y > z 时,三元组 ( x , y , z ) 满足条件,但是三个数的范围都是 1e5 级别的,不能直接暴力枚举但是不难想到可以 O( n ) 枚举 x ,然后尝试 O( 1 ) 去计算 ( y , z ) 有多少对适应当前的 x原创 2020-05-17 01:07:49 · 675 阅读 · 3 评论 -
CodeForces - 1323D Present(思维+数学)
题目链接:点击查看题目大意:给出一个数列 a ,求出题目分析:如果暴力的话显然时间复杂度是 n * n 的,我们应该想办法去优化,比赛的时候想用线段树,但是不会在维护异或的前提下区间加法,也想过用矩阵维护,但丝毫没什么用呀,队友想到了可以按位维护,也就是维护26个线段树,我觉得太麻烦了就放弃这个题了,补题的时候看了题解,感觉题解已经说的很明白了,在这里再记录一下吧,感觉还是自己太菜了...原创 2020-03-08 12:23:12 · 537 阅读 · 0 评论 -
CodeForces - 1313B Different Rules(数学+思维)
题目链接:点击查看题目大意:一共有 n 个人,进行两轮比赛,假设第一轮比赛的名次为 x ,第二轮的名次为 y ,那么这个人的得分为 x + y ,最后的排位会按照得分的非严格升序排列,有一个人在第一轮的名次为 x ,第二轮的名次为y ,问这个人最终最好的名次和最差的名次分别是多少题目分析:个人感觉难度大于C题的一道B题。。参考视频:https://www.bilibili.com/v...原创 2020-02-24 10:08:50 · 1158 阅读 · 0 评论 -
CodeForces - 1307B Cow and Friend(数学+思维)
题目链接:点击查看题目大意:在二维平面上,要求从点 ( 0 , 0 ) 到点 ( x , 0 ) 处,每次只能行走给出的路径长度,问最少需要走几次才能到题目分析:读完题后首先想到的是三角形,如果想组成三角形,那么必须满足两边之和大于第三边,当然在这个题目中稍微特殊一点,两边之和也可以等于第三边,这也就说,如果给出的长度的最大值大于 x 时,答案一定是 2 ,因为利用两条最大值的长度和 x ...原创 2020-02-18 15:01:21 · 1614 阅读 · 1 评论 -
牛客 - 配对(贪心+数学)
题目链接:点击查看题目大意:给出两个由 n 个数字组成的数列 a 和 b ,现在题目要求我们让两个数列中建立映射,每对映射的贡献为两个数相加,即a[ i ] + b[ j ],现在求出第 k 大的数的最大值题目分析:好像是比较简单的一个贪心题,比赛的时候看过的人比较多,但奈何贪心和构造克我,想了半天也没什么思路,首先是文字游戏有个坑,第 k 大,的意思是第 n + 1 - k 小,稍微体会...原创 2020-02-16 03:00:03 · 419 阅读 · 0 评论 -
CodeForces - 1301C Ayoub's function(数学)
题目链接:点击查看题目大意:规定函数 f(s) 为01字符串 s 中至少包含一个 1 的所有子串的数量,比如 f(10101) = 12 ,其中十二个子串分别为(1,2),(1,3),(1,4),(1,5),(2,2),(2,3),(2,4),(2,5),(3,4),(3,5),(4,4),(4,5),现在给出一个01字符串的长度为 n ,其中包含了 m 个 1 ,问所有情况中 f(s) 的最...原创 2020-02-15 04:11:16 · 345 阅读 · 0 评论 -
牛客 - 做计数(数学)
题目链接:点击查看题目大意:给出一个正整数 n ,求满足条件 ( i , j , k ) 的三元组的数量,其中需要满足:sqrt( i ) + sqrt ( j ) = sqrt( k ) i * j <= nn 的范围是 4e7题目分析:比赛的时候只想到了nsqrt(n)的枚举方案,还是怪我太弱了,其实先要对原式进行化简,两边同时平方得到:这样一来只需要枚举 i *...原创 2020-02-06 23:34:21 · 258 阅读 · 0 评论 -
51Nod - 1024 矩阵中不重复的元素(数学)
题目链接:点击查看题目大意:给出一个n*m的矩阵,再给出构造方法,输出矩阵中有多少个互不相同的数字题目分析:因为构造的方法涉及到幂次,且数据可能非常非常大,但是这个时候需要稍微想一下,我们需要的只是互不相同的数,所以我们可以对每个数都取一下log,然后用set暴力统计就好了代码:#include<iostream>#include<cstdio> #i...原创 2020-02-03 22:19:37 · 284 阅读 · 0 评论 -
CodeForces - 1295B Infinite Prefixes(数学)
题目链接:点击查看题目大意:给出一个由0或1组成的字符串s,用来构造出字符串 t = s+ s + s....+ s,字符串 t 由无限个 s 拼接而成。现在规定cnt_0 [ i ]和cnt_1 [ i ]分别为到第 i 位为止所出现的0和1的个数,给出一个 x ,问字符串 t 中有多少个前缀满足cnt_0 [ i ] - cnt_1 [ i ] == x,若有无限个答案,输出-1题...原创 2020-01-30 01:22:30 · 3281 阅读 · 2 评论 -
HDU - 4635 Strongly connected(强连通缩点+数学+思维)
题目链接:点击查看题目大意:给出一个由n个点和m条边构成的无向图,现在问最多能添加几条边,能使得原图仍然不是强连通图,若原图初始时就是强连通图,直接输出-1题目分析:首先对于原图来说,肯定会有一些集合中已经是强连通的了,我们可以先强连通缩点,再继续操作,最优情况肯定是需要孤立一个点,然后剩下的点构成强连通分量,并且强连通分量中的每个点都对这个孤立的点连边,假设孤立的点所代表的集合大小为x,...原创 2019-12-25 00:30:33 · 211 阅读 · 0 评论