- 博客(47)
- 收藏
- 关注
原创 【Comet OJ - Contest #10】鱼跃龙门(扩展欧几里得思维)
题目 题目大意:T组查询,每次询问一个满足x*(x + 1)% (2n) = 0的最小正整数。 T<=100, n<=1e12 思路: x -> x*(x + 1) % (2n) == 0 转换成 a | 2n, b = 2n | a; 假设 ap = x + 1, x = bq。 联立得到ap - bq = 1的最小正整数解bq。 由于该方程有解的条件的gcd(a, b) =...
2019-09-08 20:39:08
486
原创 2019亚洲区域赛徐州网络赛 M Longest subsequence(序列自动机)
M Longest subsequence 题意: 给出两个串s 和 t 在求出s中求出一个长度最大的序列其字典序严格大于t。 思路: 枚举s串能够和t串匹配的最长公共前缀序列长度i,再求出s串比t的第i+1个字符大的最近 的位置pos, 其长度为(i - 1)+ n - pos + 1. 最后特殊注意一下s的最长公共前缀不能和t完全相同。 AC 代码: #include<bits/std...
2019-09-08 10:15:07
253
原创 思维数学(互质数)
思维数学题 题目:对于给定的整数 l, r, k ,问有多少个数 x 满足 x + k 与 x − k 互质,且 x + k, x − k ∈ [l, r] solution: 关于互质数的一个简单结论,如果a,b互质,则gcd(a, a- b) =gcd(a, a + b) = gcd(b, a - b) = gcd(b, a + b) = 1. 说人话就是如果a, b互质,则两数a,b与其和...
2019-08-20 20:17:27
673
原创 Coffee Chicken
Coffee Chicken 题意:给出字符串s1, s2 且sn = sn-2 + sn-1 求第n个字符串从第k位开始的后10个字符串。其中 n <= 500, k < min( |s|, 10^12)) 思路:字符串类似二叉搜索树一样进行递归处理即可。 AC code: #include<bits/stdc++.h> using namespace std; ...
2019-08-18 15:19:09
351
原创 2019牛客多校赛 第七场 H Pair
2019牛客多校赛 第七场 H Pair 题意: 给出 A, B, C, 求满足 1 <= x <= A , 1 <= y <= B 中 x & y > C | x ^ y < C的对数。 其中1 <= A, B, C <= 1e9. 思路: 反向思考,先求出 x & y <= C <= x ^ y的对数总数res, A...
2019-08-09 15:12:34
339
原创 HDU6624 fraction
HDU6624 fraction 题意:求满足a < b and a ≡ bx (mod p)成立的最小b,并以分数形式输出a / b。 p是质数,3 <= p <= 1e15, 1 < x <p, 1 <= T <= 2e5次查询 思路:由同余的定义考虑将等式转换一下 ,转换成 a = bx - py。 再由题目限制条件可以得到 0 < a = ...
2019-08-05 23:30:35
220
原创 Palindrome Mouse
** Palindrome Mouse ** 题意:给出一串str,将串中本质不同的回文子串组成集合S,任取S中的两个元素(a,b),问a是b的子串的对数。 思路:orz,比赛的时候画出回文树想了半小时没看出什么联系,后来补题时候看牛逼网友们的题解都是O(n)记忆化dfs搜索。 联想回文树的定义,回文树上一个节点其next边维护的父亲节点(除了0,1)都是儿子的子串, fail边维护的父亲节点也都...
2019-08-04 21:00:10
298
原创 HDU 3292 Pell方程第k小解
HDU 3292 Pell方程第k小解 链接:HDU3292 方法:Pell方程递推式 + 矩阵快速幂 AC code: #include<bits/stdc++.h> using namespace std; typedef long long ll; const int mod = 8191; const int NUM = 2; int N = 2; struct mat{ ...
2019-03-07 22:10:47
235
原创 积性函数求和小记
积性函数求和小记 (写了一下syf的讨论题,感觉有点压力,所以就去学了一手233) 这位博主很懒,什么都没有留下,整理理论参考下面这位博主: https://www.cnblogs.com/peng-ym/p/9446555.html 模板题:P4213 【模板】杜教筛(Sum) AC code:(没开O2优化过了,开了反而没过,玄学优化233) #include<bits/stdc++.h...
2019-03-01 19:18:18
292
原创 (补题)
(补题) 补一下ZOJ的两道签到题吧(还是有点思想,当时也没那么快看出来) Little Sub and Pascal’s Triangle 题意:求杨辉三角第n行的奇数的个数。 思路:第n行杨辉三角就是组合数Cn k(1 <= n <= k), 题目所求奇数和可转换为:sigma(Cn k) (mod 2)(1<=k<=n)的和, 有组合取模自然可以想到lucas定理: ...
2019-01-21 13:35:45
248
原创 男生和女生(思维建图,最大独立集问题)
男生和女生(思维建图,最大独立集问题) 问题描述 在大学二年级,一些人开始了同学之间罗曼蒂克关系的研究。有“罗曼蒂克”关系是针对男生和女生之间的关系而言的。研究的原因是找到满足以下条件的最大集:这个集中没有两个学生有“罗曼蒂克”关系。现要你编程确定这样一个集中学生的人数。 输入 有若干组测试数据,每组测试数据表示一组研究对象,描述如下: 学生人数 对每个学生的描述,遵循如下格式: 学号:(罗曼蒂克...
2019-01-17 22:15:41
685
原创 HDU 2389(二分最大匹配优化算法,Hopcroft-Carp)
HDU 2389(二分最大匹配优化算法,Hopcroft-Carp) 题目链接: 大致题意; 您能帮助客人在下雨之前尽可能多地找到一把雨伞? 给定所有客人的位置和跑步速度,雨伞位置,到下雨开始时的时间,找出有多少客人可 以获得一把雨伞。但两个客人不能共享一把雨伞。 输入 输入的第一行是一个整数,它是测试数据的组数。 每组测试数据的开始一行是一个到下雨开始时的时间t (1 <=t <= ...
2019-01-17 22:02:08
593
原创 HDU 2819
HDU 2819(SWAP) 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2819 题意:给出一个N*N的0,1矩阵问是否能通过行列交换使得矩阵的对角线全部唯一,可以输出在最后的矩阵中是那两行(列)进行了交换。 思路:二分图的最大匹配。 如果通过交换某些行没有办法的到解的话,那么只交换列 或者 既交换行又交换列 那也没办法得到解。 这个可以用矩阵的秩来...
2019-01-16 21:47:53
286
原创 HDU 4183(max flow)
HDU 4183(max flow) 链接 题意:orz,论翻译的重要性,看了半天。进入正题: 有n(2 <= n <= 300)个圆圈,每个圆圈都有其频率f,坐标(x,y),半径r。(题目保证圈的频率在 400.0 ~ 789.0间),起点第一个圈,频率固定400.0,终点第n个圈,频率固定789.0。 能从一个圈a走到另外一个圈b,需要两个圈有交点且圈a的频率小于圈b的频率。 问是...
2019-01-14 19:36:47
181
原创 HDU 3599(最短路上最大流)
题意: n给顶点,最多1e6条无向边(为什么是1e6,因为wa了一发又一发后试出来的 ),问从1到n的不含重复边的短路有多少条。 思路: 先跑dijkstra跑出最短路,然后挑选出满足最短路径上的边建边,跑最大流即可。 注意:TLE可能是因为边数组开小了,别问我为什么知道 AC code: #include&lt;bits/stdc++.h&gt; using namespace std; con...
2019-01-13 21:18:49
399
原创 Power Network(POJ 1459)
# Power Network(POJ 1459) 题意: 有N个发电站,NC个用户,NP个中转站,M条传输线,求最大供电量。 思路: 裸的最大流问题; 唯一有搞一点的输入格式,从网上学了一手,过了。 开始Dinic的板子超时了,换SAP就过了,emmmmm。 AC code: #include<algorithm> #include<queue> #include<...
2019-01-13 15:53:19
348
原创 螺旋矩阵(蛇形矩阵)
问题描述 给定一个包含m行n列的m x n矩阵,编程按照螺旋顺序,输出该矩阵中的所有元素。 输入 有多个矩阵。 每个矩阵数据的第1行有两个整数m和n,接着是一个mxn矩阵的描述,有m行,每行有n个整数 输出 对每个矩阵数据,按照螺旋顺序输出矩阵数组的元素。 输入样例 3 3 1 2 3 4 5 6 7 8 9 输出样例 1 2 3 6 9 8 7 4 5 思路:按照题意模拟即可,见代码,时间复杂度...
2019-01-13 14:57:35
1071
原创 机器人扫雷
机器人扫雷 问题描述 在一个 N× N的长方形网格区域,每个格点有一个有0个或一个地雷,地雷的重量用一个正整数表示(没有地雷也用0表示)。在区域的左上方有一个机器人扫雷车。该扫雷车需要开通一条从左上角S到向右下角T的路线,然后开辟另外一条路从T返回到左上角起点S。 规定:(1)扫雷车从起点S出发后,每一步只能向右或向下; (2)扫雷车返回过程中,每一步只能向左或向上; (3)除了起点S和终点T外,...
2019-01-12 23:54:32
1021
原创 统计数字
统计数字 问题描述 编程统计数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值。 输入 有多组数据。每组数据有一行,该有一个整数n和一个0到9之间的数字k。 输出 对每组数据,一行输出数字k在0到n中出现的次数。 输入样例 12 1 输出样例 5 最简单的算法显然是暴力枚举, 但也可以规律构造: 先考虑1~9中的数字情况,分别考虑n的每一位数字为k的数字会有多少个,计算贡献。 ...
2019-01-12 23:42:06
1843
原创 乘法逆元小记
乘法逆元 费马小定理求乘法逆元(O(log(n))): ll fast_pow(ll a, ll b, ll mod){ ll res = 1; while(b > 0){ if(b & 1) res = res * a % mod; a = a * a % mod; b >>= 1; } r...
2019-01-07 22:05:15
157
原创 三角阵中的数(lucas)
## 三角阵中的数 问题描述 输入 有多组测试数据, 每组数据占一行, 其上有两个整数m 、n (1<=m<=n<=10^18)。 输入样例 2 3 3 5 输出样例 3 10 思路: 明显规律题,规律是第m行的n个数的值是组合数Cn m ,就是组合数取模即可。 知道组合数取模后就可以快乐上lucas的板子了。 AC code: #include<bits/stdc++....
2019-01-04 16:00:54
282
原创 矩阵快速幂小记
矩阵快速幂 矩阵模板: #include<bits/stdc++.h> using namespace std; typedef long long ll; const int mod = 1e9 + 7; const int NUM = 7; // 最大存储空间 int N; //实际进行运算的方阵的维度N struct mat{ int a[NUM][NUM]; ...
2019-01-04 15:53:52
287
原创 Codeforces Round #529 (Div. 3)
C. Powers Of Two 题意:给出n,k将数字n分解为k部分都是2^x的数字之和,eg 9 = 1 + 2 + 2 + 4。 如果能,第一行输出YES,第二行输出这k个数字,顺序不限,如果不能,输出NO 思路:将n进行二进制分解,首先n的最高位不能大于k,大于k显然无解,然后是一个贪心的想法例如 9 = 1001 = 8 + 1 ,我们可以把8,1放进一个大到小的优先队列,每次取出队首,...
2018-12-31 21:10:58
281
原创 Good Bye 2018
Good Bye 2018 A,B都是稍微想想就可以码出来。 主要c,d吧,规律题,还是不太熟悉 C New Year and the Sphere Transmission 题意:有一个n个元素的环,编号为1~n,一个球一开始在1,每次可以顺时针传k步(1 &lt;= k &lt;= n),每传到一个点上就会获得这个点的编号点的价值,直到球再次到1时停止,问对于所有k,能产生哪几种不同的价值。...
2018-12-31 16:41:12
279
原创 Havel 算法
Havel 算法小记 其实是一个不太重要的算法: 1,Havel-Hakimi定理主要用来判定一个给定的序列是否是可图的。 2,首先介绍一下度序列:若把图 G 所有顶点的度数排成一个序列 S,则称 S 为图 G 的度序列。 3,一个非负整数组成的有限序列如果是某个无向图的序列,则称该序列是可图的。 4,判定过程:(1)对当前数列排序,使其呈递减,(2)从S[2]开始对其后S[1]个数字-1,(3)...
2018-12-31 16:27:56
939
1
原创 并查集小记
并查集小记 并查集是一种可以动态维护若干个不重叠的集合,并支持合并和查询的数据结构,详细地说,其有以下两种基本操作: 1)query , 查询某个元素属于那个集合,或者判断某两个元素是否属于同一集合 2)Merge,把两个集合合并成一个大集合。 性质: 1)并查集能够在一张无向图中维护节点间的连通性 2)并查集擅长动态维护许多具有传递性的关系。 注:关于性质2可见道例题:https://mp.cs...
2018-12-30 22:02:40
264
原创 新的区间列表
新的区间列表 问题描述 给出一个无重叠的按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。编程实现这个功能。 输入 有多组测试数据,每组有3行。每组的第1行是一个整数n,表示原始区间数目,第2行有2n个整数,表示是原始区间列表,其中每两个相邻的整数表示一个区间。第3行是2个整数,表示是待插入的区间端点。 输出 对每组测试...
2018-12-30 20:34:42
406
原创 构造最大数
构造最大数 问题描述 给出两个长度分别是 m 和 n 的数组来表示两个大整数,数组的每个元素都是数字 0-9。从这两个数组当中选出 k 个数字来构造一个最大数,其中 k 满足 k &lt;= m + n。选出来的数字在构造的最大数里面的位置必须和在原数组内的相对位置一致。输出这有k个数字构成的最大数。 注:尽可能的降低算法的时间复杂度和空间复杂度。 输入 有多组测试数据。 每组数据有3行,第1行有...
2018-12-30 14:41:09
726
原创 最大矩形
最大矩形 题目链接:最大矩形 题意: 描述 给你一个二维矩形,权值为1和0 编程找到一个最大的子矩形,使得里面的值全部为1, 并输出它的面积(1的个数) 输入 有多组数据,每组的第一行式整数m,n,表示矩阵的行和列数(1&lt;m,n&lt;200)。接着是m行n列的矩阵,每行由01字符串构成 输出 对每个矩阵,输出元素全为1的子矩阵的面积最大值。 样例输入1 5 5 11001 01001 00...
2018-12-29 19:18:25
390
原创 Polya计数原理小记
Polya计数原理小记 Polya计数原理: 证明:emmm我不会 1)只有旋转(平面内旋转最小单位角度 360° / n, 一共n种旋转方案,第i种方案的旋转角度 i * 360° / n, 其循环节为 gcd(n,i) ) 使用欧拉函数的原因: 对于大多数i,gcd(n,i)值相同都是n的约数,当n比较大的时候转而用sqrt(n)的复杂度枚举n的约数。 For(d | n){ temp +...
2018-12-28 20:39:46
1428
原创 分层图最短路问题小记
分层图最短路问题 本质还是最短路问题只是开多了一维数组表示层次 模板: #include&lt;bits/stdc++.h&gt; using namespace std; typedef long long ll; const int maxn = 1e5 + 10; const int maxm = 2e5 + 10; const ll INF = 1e18; struct Edge{ ...
2018-12-26 22:15:06
536
1
原创 欧几里得算法和扩展欧几里得算法
欧几里得算法和扩展欧几里得算法 扩欧几里得算法: 对所有正整数a,b, b != 0, gcd(a,b) = gcd(b, a mod b); 简略证明: 若a < b; 则 a ( mod b) = a, gcd(a,b) = gcd(b,a) 显然成立。 若a >= b, 假设a = q * b + r, 则 r = a mod b; 对于a,b的任意公约数d, 由于 d | ...
2018-12-23 19:58:59
481
2
原创 素数区间筛
素数区间筛 POj 2689 题意:给出区间[L,R]求出区间相邻最近的素数对,和相邻最远的素数对,没有输出没有,1<=L,R<= (2 ^ 31 - 1), 且保证 R - L <= 1e6. 思路:区间筛法,预处理出2 ~ sqrt®的所有质数p,再把(L,R)中能被p整除的数标记,即标记 j * p( [L / p ] <= j <= [ R / P] 为合数,...
2018-12-23 14:07:07
463
原创 RSA密码初探
RSA密码初探 一。 RSA公私钥生成 1.随机选定两个大素数p, q. 2.计算公钥和私钥的公共模数 n = pq . 3.计算模数n的欧拉函数 φ(n) . 4.选定一个正整数e,使1 &amp;amp;lt; e &amp;amp;lt; φ(n) ,且e与φ(n)互质.(e取最小) 5.计算d,满足 de ≡ 1 (mod φ(n) )(d取最小) 6.n与e决定公钥, n与d决定私钥. 二。加解密 该过程为L给Z发消...
2018-12-22 15:22:37
975
1
原创 欧拉函数小记
欧拉函数小记 定义:对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。 **几个性质: phi(prime) = prime - 1. phi函数是一个积性函数,当a与b互素时,满足phi(a×b)=phi(a)×phi(b). 若a为质数,b mod a=0,phi[a*b]=phi[b]*a. n = ∑ d|n phi(d) (n 的所以因子d 的 phi(d...
2018-12-21 23:56:22
396
原创 最接近的三个数之和
最接近的三个数之和 链接 问题描述 给一个包含 n 个整数的数组a,写一个程序找到其和与给定整数s最接近的三元组,返回这三个数的和。 注意:只需要返回三元组之和,无需返回三元组本身。 输入 有多组测试数据。每组有2行,第1行有2个整数n和s,第2行有n个整数。 输出 对每组测试数据,输出其和与s最接近的三元组的和。 输入样例 4 1 -1 2 1 -4 输出样例 2 注 -1 + 2 + 1 =...
2018-12-21 20:21:39
342
原创 纸币问题
纸币 链接 题意: 问题描述: 小明有N张纸币,每张纸币有一个非负整数的币值。他利用这些纸币去商店购买商品,该商店有价格为任意正整数的商品,但是该店是不提供找零的,小明只能用他现有的纸币拼凑起来购买商品。 求利用这些纸币不能购买的价格最低的商品。 输入: 输入有多组。 每组输入的第一行是一个正整数N(1<=N<=1000),表示小明有的纸币的数量。 第二行数N个整数Pi(0<=P...
2018-12-21 20:16:40
1723
原创 状压dp小记
POJ 2288 题意:给出n(n&lt;13)个小岛m条边连接,每个小岛有一个权值wi,再给出一条哈夫曼路径权值之和由三部分组成: 1)路径上经过结点的权值之和,ans1 = sigma(wi) 2)路径上相连接的两个结点u,v ans2 = sigma(WuWv); 3)路径上连通的三点a,b,c能形成一个三角形, ans3 = sigma(WaWb*c); 4)哈夫曼路径的定义为从0到n-...
2018-12-21 20:09:21
191
原创 HDU 1392 凸包周长
HDU 1392 凸包周长 题意:给出若干个点,求一个周长最大的凸包,并给出周长。 思路:极角排序法,套板子(逃) 有空再回来补充原因 AC code: #include&lt;bits/stdc++.h&gt; using namespace std; const int maxn = 110; const double eps = 1e-10; struct Point{ double...
2018-12-20 23:10:17
253
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅