- 博客(15)
- 收藏
- 关注
转载 二次剩余定理及Cipolla算法入门到自闭
二次剩余定义:在维基百科中,是这样说的:如果q等于一个数的平方模 n,则q为模 n 意义下的二次剩余。例如:x2≡n(modp)。否则,则q为模n意义下的二次非剩余。Cipolla算法:一个解决二次剩余强有力的工具,用来求得上式的x的一个算法。需要学习的数论及数学基础:勒让德符号、欧拉判别准则和复数运算。勒让德符号:判断n是否为p的二次剩余,p为奇质数。欧拉定...
2019-08-22 01:19:00
622
转载 String和Irreducible Polynomial(2019牛客暑期多校训练营(第七场))
示例:输入:4000010010111011110输出:00001001 0111 01111 0题意:给出一个只含有0和1的字符串,找出一种分割方法,使得每个分割出的字符串都是在该字符串自循环节中最小。题解:先把每段按1结尾分开,然后暴力合并,合并的条件是每段字符串的字典序都不下降,这样可以保证是最小表示。因为如果后面有一段字典序比前面合并的任意一段字典序小...
2019-08-16 16:04:00
186
转载 Pair(二进制处理+数位dp)(2019牛客暑期多校训练营(第七场))
示例:输入:33 4 24 5 27 8 5输出:5731题意:存在多少对<x,y>满足x&y>C或x^y<C的条件。(0<x<=A,0<y<=B)题解:首先逆向考虑,求有多少对(x,y)满足x&y<=C且x^y>=C,然后用A*B去减它即可。然后就是数位dp模板题(数位dp不懂可先补...
2019-08-16 15:11:00
229
转载 Find the median(线段树+离散化)(2019牛客暑期多校训练营(第七场))
题目出处:Find the median示例:输入:53 1 4 1 5 92 7 1 8 2 9输出:34545说明:L = [3, 2 ,4, 1, 7],R = [4, 8, 8, 3, 9]题意:每次插入[l[i],r[i]][l[i],r[i]],询问中位数题解:线段树模版题+离散化(不懂或忘了这些的先补充下知识)。线段树的...
2019-08-16 14:34:00
429
转载 数据离散化处理
百度百科(离散化):离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例如:原数据:1,999,100000,15;处理后:1,3,4,2;原数据:{100,200},{20,50000},{1,400};处理后:{3,4},{2,6},{1,5};用法:很多算法的...
2019-08-16 13:50:00
378
转载 Governing sand(主席树/贪心)(2019牛客暑期多校训练营(第七场))
示例:输入:25 1 11 10 125 1 23 2 3输出:12题意:n种树,第i种树有P[i]颗,砍掉每颗树的代价是C[i], 高度是H[i]。需要用最小的花费砍掉一些树,让最高的树超过一半。题解:按高度分类,从小到大枚举最大高度,比当前枚举的高度 h 要高的,一定删,比它小的,如果删前 ? 小的。贪心代码: 1 #include<bits/stdc+...
2019-08-13 15:44:00
197
转载 线段树入坑到放弃
线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,实际应用时一般还要开4N的数组以免越界,因此有时需要离散化让空间压缩。一.建树:例如:一个长度为4的线段,我们可以表示成这样:如果你要表示线段的和,那么最上面...
2019-08-13 14:50:00
155
转载 Magic Line(思维+计算几何问题)(2019牛客暑期多校训练营(第三场))
示例:输入:140 1-1 01 00 -1输出:-1 999000000 1 -999000001题意:给定平面上一系列的点,求一条以(x1,y1),(x2,y2)两点表示的直线将平面分为包含点数量相等的两部分,其中直线不能穿过任何一点。思路: 1 #include<bits/stdc++.h> 2 using namespace s...
2019-07-29 17:28:00
306
转载 Crazy Binary String(前缀和)(2019牛客暑期多校训练营(第三场))
示例:输入:801001001输出:4 6题意:一段长度为n且只有 ‘0’ 和 ‘1’ 的字符串,求子串中 ‘0’ 和 ‘1’ 数目相等和子序列中‘0’ 和 ‘1’ 数目相等的最大长度。思路:子序列的最大长度为 ‘0’ 和 ‘1’ 的个数中最小的两倍;求字串的最大长度就用前缀和,将 ‘1’ 的价值设为1,‘0’ 的价值设为-1,用数组book[i]记录从 0...
2019-07-29 17:23:00
164
转载 free(分层图最短路)(2019牛客暑期多校训练营(第四场))
示例:输入:3 2 1 3 11 2 12 3 2输出:1题意:求s,t最短路,可将k条边权值置零。题解:分层图最短路原题#include<bits/stdc++.h>using namespace std;typedef long long int ll;const int maxn = 1e5+10;const int IN...
2019-07-29 15:39:00
190
转载 sequence(线段树+单调栈) (2019牛客暑期多校训练营(第四场))
示例:输入:31 -1 11 2 3输出:3题意:求最大的(a区间最小值*b区间和)线段树做法:用单调栈求出每个数两边比b数组大的左右边界,然后用线段树求出每段区间的和sum、最小前缀lsum、最小后缀rsum,枚举每个数a[i],设以a[i]为最小值的区间为[l,r]若a[i]>0,则最优解就是a[i]*(b数组[l,r]的区间和),因为a数组[l...
2019-07-29 15:27:00
199
转载 K number(思维和后缀以及3的特性)(2019牛客暑期多校训练营(第四场))
示例1:输入:600输出:4说明:'600', '0', '0', '00' are multiples of 300. (Note that '0' are counted twice because it appeared two times)示例2:输入:123000321013200987000789输出:55题意:给一个全由数字字符组成的字符串,...
2019-07-29 13:28:00
362
转载 triples I(按位或运算及3的特性)(2019牛客暑期多校训练营(第四场)D)
示例1:输入:237输出:1 32 3 6说明:3=3, (3|6)=7题意:输出尽可能少的数字,他们的按位或结果为输入的数字a。题解:(表示看不懂题解,看山东大佬的代码看懂的)首先:有两个奇怪的现象,就是一个数字的二进制(我的定义是第一位为0,即偶数)有且只有2个1,且分别在奇数位和偶数位上时,这个数一定是3的倍数。如果一个数字a(a>3)...
2019-07-29 12:59:00
264
转载 2019牛客暑期多校训练营(第四场)A meeting(dfs或dp,dp待更新)
示例1:输入:4 21 23 13 42 4输出:2说明:They can meet at place 1 or 3.题意:从K个点到达不联通图某个点需要的最短时间,这个最短时间是这K个人最后到达的人所需的时间。思路:(我觉得官方给的题解挺好理解的就直接复制过来了)一句话题解:考虑距离最远的两个关键点,设它们的距离为d,d/2上取整即为答案。必要性...
2019-07-29 11:51:00
188
转载 2019牛客暑期多校训练营(第二场)H Second Large Rectangle
示例一:输入 :1 201输出:0示例二:输入 :1 3101输出:1示例三(自己自测找错误用的):输入 :6 6100111111011111111111111111111101111输出:16题意:在由1和0构成的矩形中找到由仅由1构成的第二大的矩形。(前缀和思维)解题思路:(1)这是比赛后看别人代码的...
2019-07-21 17:36:00
197
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅