
算法题
文章平均质量分 71
_viceversa
卡耐基梅隆大学2022届计算机
华尔街打工人
展开
-
2月28日 解原根(素数)
今天原本是学习离散对数第三类问题,也是最复杂的一类,不过容量太大,几乎是之前所有知识的综合了,所以先发一个重要步骤:解原根。 当考虑问题xa≡b(modp)xa≡b(modp)x^a\equiv b(mod p)时,两边取离散对数,底数需要取a的原根。原根有很多定义,这里不详讲。求原根主要还是搜索,不过由beizer定理有一个优化: 如果不存在pipip_i使得mϕ(p)pi≡1(modp...原创 2018-02-28 20:24:10 · 460 阅读 · 0 评论 -
3月8日 二次剩余
二次离散对数有特殊解法(但3次及以上尚未发现),例如有x2≡nmodpx2≡nmodpx^2\equiv n\mod p首先方程有解仅np−12≡1modpnp−12≡1modpn^\frac{p-1}{2}\equiv 1\mod p记勒让德符号(np)(np)\left(\frac{n}{p} \right)若n为p的二次剩余(即可以在模p意义下开根号),则勒让德符号为1,反之为-1,倍数为0...原创 2018-03-09 12:37:00 · 231 阅读 · 0 评论 -
3月2日 Pseudoprime numbers(费马素性测试、卡米歇尔数、伪素数)
这是个水题,也没有什么实际应用意义(费马素性测试对卡米歇尔数无效)。一些博客把这题归为labin-miller测试,这是有误的。写博客是因为被数组折腾了下,本来想初始化筛素数,MLE了,老老实实暴搜(注意题目的定义,伪素数首先要不是素数),但是问题来了,既然已经暴搜得出他是不是素数了,测试素性的意义何在?可能题目只是想练一下快速幂。Pseudoprime numbersTime L原创 2018-03-02 10:16:17 · 468 阅读 · 0 评论 -
3月11日 poj1321棋盘问题 深搜
Problem Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 ...原创 2018-03-11 19:24:31 · 169 阅读 · 0 评论 -
3月12日 dijkstra+堆优化+邻接表
昨天听校队大佬讲了邻接表,这是建图的复杂度较小的数据结构,概括起来,就是边结构体中,存储该节点下一条边的索引,相当于链表。 堆优化主要是用优先队列,注意优先队列是大的在上面,最短路需要小的在top,所以要重载小于运算符。示范代码看了很久,一道基础题练习一下: 最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/3...原创 2018-03-12 18:13:08 · 313 阅读 · 0 评论 -
3月5日 Primitive Roots (解原根/本原元)
解原根问题在上周一直tle没有解决,今天折腾了半天(制造了大量access violation),坑点在于很多判断的条件。 即使按照质因数优化的方法,如果直接遍历2~ϕ(n)ϕ(n)\phi(n)的话,复杂度还是很高,够tle几十次了。原根的重要性质(模p): gϕ(p)pi≢1(modp)gϕ(p)pi≢1(modp)g^\frac{\phi(p)}{p_i} \not \equiv 1 ...原创 2018-03-05 20:20:51 · 1151 阅读 · 0 评论 -
3月12日 二次剩余(shanks解法)
算法原理请wiki:Tonelli–Shanks algorithm,迅速深入理解是不太可能的,与cipola算法相比,shanks解法更数论一点。 (这个算法是正常的,但是还是tle) 大概流程是: R2≡nmodpR2≡nmodpR^2\equiv n\mod p 令p−1=Q2sp−1=Q2sp-1=Q2^s其中Q是奇数。若s=1,即p≡3mod4p≡3mod4p \equiv 3 ...原创 2018-03-12 23:06:51 · 799 阅读 · 0 评论 -
3月19日 burnside计数
burnside计数公式: L=1|G|∑i∈[1,n]|Zi|=1|G|∑π∈GC(π)L=1|G|∑i∈[1,n]|Zi|=1|G|∑π∈GC(π)L=\frac{1}{|G|}\sum\limits_{i\in[1,n]}|Z_i|=\frac{1}{|G|} \sum\limits_{\pi\in G}C(\pi)这里G是置换群,G中的一个元素代表一种置换方法(翻折、旋转等),C(π)C...原创 2018-03-20 00:00:46 · 214 阅读 · 0 评论 -
3月20日 city-horizon 线段树
题目描述: City Horizon Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19890 Accepted: 5499 DescriptionFarmer John has taken his cows on a trip to the city! As the sun sets, t...原创 2018-03-20 21:39:40 · 167 阅读 · 0 评论 -
Educational Codeforces Round 42(4.11)
A. EquatorPolycarp has created his own training plan to prepare for the programming contests. He will train for nn days, all days are numbered from 11 to nn, beginning from the first.On the ii-th ...原创 2018-04-11 18:58:53 · 458 阅读 · 0 评论 -
codeforces Educational Codeforces Round 41 (2018.4.4)
A. Tetris time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output You are given a following process.There is a platform with nnn columns. 1×11×1...原创 2018-04-05 21:10:08 · 309 阅读 · 0 评论 -
Codeforces Round #475 (Div. 2) D
D. Destruction of a Tree time limit per test1 second memory limit per test256 megabytes You are given a tree (a graph with n vertices and n - 1 edges in which it’s possible to reach any vertex from...原创 2018-04-22 17:32:12 · 195 阅读 · 0 评论 -
Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (4.17)
A 水题#include<bits/stdc++.h>#define ll long longusing namespace std;int n;int main(){ scanf("%d",&n); printf("%d",1+(n>>1)); return 0;}B 水题#include<bits/s...原创 2018-04-20 16:20:13 · 265 阅读 · 0 评论 -
hdu1285 拓扑排序
因为补上周的codeforces,涉及到一些不熟悉的知识,先基础题练习一下。 题意:给出一些队伍的胜负关系,要求排序(胜者在前、无关则序号小者在前),保证有正常排序。 转化成图论,正常排序就是没有环,这里是一个拓扑排序,原理也很好理解,维护节点出度即可。用前向星存图,优先队列排序(注意这里要把大小关系倒过来一下,用友元重载或者用greater)。 一些解题报告指出了重边的问题,邻接矩阵会...原创 2018-04-20 23:43:25 · 211 阅读 · 0 评论 -
codeforces #493 A~D(7.1)
因为一些坑爹的人和规定,区域赛大概是不给打了,我也老了跟学弟折腾不动了,以后cf就当深夜娱乐吧TAT A 瞎搞,注意不要sort#include<bits/stdc++.h>using namespace std;int a[1001];int main(){ int n; scanf("%d",&n); for(int i=0;i<...原创 2018-07-02 15:03:21 · 261 阅读 · 0 评论 -
2月15日 Biorhythms(中国剩余定理)
刚做完美赛,浑身无力,但是知识还是要学,态度还是要表示~今天是除夕,希望明年再接再厉,建立体系,学好算法,做好科研,搞好绩点,找好对象。DescriptionSome people believe that there are three cycles in a person's life that start the day he or she is born. These three cycl...原创 2018-02-15 16:24:33 · 210 阅读 · 0 评论 -
2月20日 Primitive Roots(原根)
原根和离散对数是密码学和数论的重要概念,本题如下(poj 1284):DescriptionWe say that integer x, 0 < x < p, is a primitive root modulo odd prime p if and only if the set { (xi mod p) | 1 <= i <= p-1 } is equal to { 1, ..原创 2018-02-20 21:38:44 · 309 阅读 · 0 评论 -
3月7日 0-1背包动态规划(Bone Collector)
开始学习动态规划,一道水题练手。Bone CollectorTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 73266 Accepted Submission(s): 30505Problem Descript原创 2018-03-07 21:37:53 · 218 阅读 · 0 评论 -
10月11日 二分答案(Monthly Expense)
问题: 给出n天中每天的花费,需要将这些天分成m组,每组包含连续的一天或者多天,若定义第i组花费为$K_i$,求一种分组方法使得$K=max{K_i}$最小输入样例:7 5100400300100500101400输出样例:500这一题是天大书上的题,亲测书上代码有误。本来acm不应该用vector做,这次练练迭代器操作(虽然也没有练好)原创 2017-10-11 19:04:40 · 1187 阅读 · 1 评论 -
10月12日 并查集(Cube Stacking)
问题描述:cube stackingN个方块,编号为1-N,现在有P个操作,分为两种:1 M x y表示有x的那一堆放到有y的那一堆上面2 C x表示询问在x下方有多少个方块N第一行输入操作次数P。输入样例:6M 1 6C 1M 2 4M 2 6C 3C 4输出样例:102并查集大意就是开一个数组,储存每个元素的前原创 2017-10-12 16:29:51 · 350 阅读 · 1 评论 -
10月13日 并查集(生物链)
昨天拿到poj一直超时之后,今天直到ac才发。有一个很重要的超时原因,那就是使用了标准输入输出流,做题一定要用scanf,printf(虽然vs会一直报错,报错)题目描述如下:Description动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪原创 2017-10-13 15:04:37 · 210 阅读 · 0 评论 -
10月14日 哈希hash(crazy search)
crazy search给出一个字符串,共包含NC种字符,求这个字符串中长度为N的子串(不包含重复)的数量。题目中假设该字串个数不超过16000000个。输入第一行包含两个数字,分别为N\NC。第二行输入字符串,输出符合要求的子串个数。输入样例:3 4daababac输出样例:5这一题应该比较简单,是一个编码问题,将字符串编成NC进制数,开一个bool数组表示是否重复。原创 2017-10-14 14:12:07 · 251 阅读 · 0 评论 -
10月15日 字典树(Babelfish)
BabelfishTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 32988 Accepted: 14189DescriptionYou have just moved from Waterloo to a big city. The people here speak an incomprehensibl原创 2017-10-15 10:27:35 · 261 阅读 · 0 评论 -
10月16日 树状数组(敌兵布阵)
今天的代码一直wa一直wa…正要砸电脑的时候发现是少打了个空格,那句话怎么说来着,真理只会迟到,但是…………还有一个要注意的是要加memset(头文件),之前在poj上都不加好像也没什么事,这个是hdoj的题。题:Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营原创 2017-10-16 20:39:01 · 211 阅读 · 0 评论 -
11月27日 connect the city
本题我一直TLE,所以代码转载自https://www.cnblogs.com/13224ACMer/p/4639351.htmlDescriptionIn 2100, since the sea level rise, most of the cities disappear. Though some survived cities are still connected wit转载 2017-11-28 17:01:27 · 170 阅读 · 0 评论 -
11月22日 HDOJ2046 改革春风
呜呜呜,一个月后又回来了,上次因为robocup的kidsize比赛停了,大概是识别视频中的白色赛道线吧,一套矩阵分解、样条拟合、消龙格、负重之后,众望所归地,跪掉了。然后又去做仿真rescue,一晚上速成java,在熬了一个星期夜之后,跪掉了。其它事不细说,昨天期中刚考完,今天这个大喜的日子重新开始刷oj,选了一道很水的题练手,其实是看中了他的题干:不会AC没关系!改革春风吹满地原创 2017-11-22 14:36:50 · 295 阅读 · 0 评论 -
11月26日 Jungle Roads
The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money was spent on extra roads between villages some years ago. But the jungle overtakes roads relentlessly, so原创 2017-11-27 07:52:00 · 177 阅读 · 0 评论 -
2月1日 POJ2142 balance(数论)
The BalanceDescriptionMs. Iyo Kiffa-Australis has a balance and only two kinds of weights to measure a dose of medicine. For example, to measure 200mg of aspirin using 300mg weights and 700mg weig原创 2018-02-01 14:50:09 · 209 阅读 · 0 评论 -
2月3日 Visible Lattice Points(欧拉函数)
DescriptionA lattice point (x, y) in the first quadrant (x and y are integers greater than or equal to 0), other than the origin, is visible from the origin if the line from (0, 0) to (x, y) doe原创 2018-02-03 09:21:05 · 265 阅读 · 0 评论 -
2月3日 Raising Modulo Numbers(快速幂)
DescriptionPeople are different. Some secretly read magazines full of interesting girls' pictures, others create an A-bomb in their cellar, others like using Windows, and some like difficult mat原创 2018-02-03 16:44:07 · 209 阅读 · 0 评论 -
2月26日 Discrete logging(哈希表+离散对数+BSGS算法)
开学第一天,有点困,不过天气不错,手脚能放开了。今天学习了离散对数的几类问题,也是开始涉及密码学的核心:对于离散对数:$A^x\equiv B \mod p$如果要求B,那就是幂模问题,用快速幂求模。如果未知x,就是一个重要的离散对数/密码学问题,直观的我们想:是不是可以从1枚举到p-1(欧拉函数)?不过这个开销比较大,有一种算法(BSGS,大步小步/北上广深(!?)算法)可以解决这类问题。将x写...原创 2018-02-26 20:00:53 · 535 阅读 · 0 评论 -
3月6日 莫比乌斯反演(poj 3904)
莫比乌斯反演可以加速运算,今天大致了解了应用,但是推导还是印象不深的。莫比乌斯反演两种形式,第一种是约数形式: f(n)=∑d|ng(d)→g(n)=∑d|nμ(d)f(nd)f(n)=∑d|ng(d)→g(n)=∑d|nμ(d)f(nd)f(n)= \sum \limits_{d|n}g(d) \rightarrow g(n)=\sum\limits_{d|n}\mu(d)f(\frac nd...原创 2018-03-06 20:33:42 · 228 阅读 · 0 评论 -
2月27日 grid(卡特兰数+费马小定理求乘法逆元)
一道组合问题,catalan数可以计算入栈出栈合法序列数,具体推导可以参考专题博客。 求逆元主要是因为取模运算(catalan数很大)中含有除法,这里用费马小定理求乘法逆元,ap−1≡1(modp)a^{p-1}\equiv1 (mod p),所以有ap−2≡a−1(modp)a^{p-2}\equiv a^{-1}(mod p),即ap−2modp=a−1a^{p-2} mod p=a^{-1原创 2018-02-27 15:18:06 · 292 阅读 · 0 评论 -
Codeforces #494 A~E (7.3)
这把状态奇差,可能是因为令人崩溃的蚊子数量……做完D就快没时间了,E又坑多 A 瞎搞 http://codeforces.com/contest/1003/problem/A#include<bits/stdc++.h>using namespace std;int a[100];int mm;int main(){ int n; scanf("%d"...原创 2018-07-04 11:42:20 · 279 阅读 · 0 评论