算法入门
郭晋龙
压力面前保持优雅
展开
-
网络流算法-最大流问题总结-(Edmonds_Karp+Dinic优化+ISAP优化)
EK算法的思路:1.通过BFS扩展合法节点,找到汇点,并记录pre前一个节点,如果找不到增广路,算法结束2.通过BFS的记录,从汇点回溯到起点,记录下每条边的 res残流3.将所有经过的边减去res 反向边加上4.重复上面的步骤,直到找不到增广路,结束1.朴素EK:通过邻接矩阵来储存但是复杂度太大 N^2附上源代码 :const int MAX=220;int pre[MAX];int flow[MAX][MAX];int cap[MAX][MAX];..原创 2021-10-09 13:53:27 · 517 阅读 · 0 评论 -
字符统计(模拟)
字符统计比赛主页 我的提交时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述给出一段字符,请统计这段字符有几行,几个单词和几个字符。定义单词为用空格或者换行符隔开的连续字符字符定义为包括一般可见字符以及空格输入描述:第一行一个正整数 TT,代表测试数据的组数第二行开始为第一组测试数据,测试数据每行不超过10241024个字符每两组测试数据之间...原创 2021-09-30 02:53:34 · 160 阅读 · 0 评论 -
消减整数(思维)
消减整数比赛主页 我的提交时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述给出一个正整数H,从1开始减,第一次必须减1,每次减的数字都必须和上一次相同或者是上一次的两倍,请问最少需要几次能把H恰好减到0。输入描述:第一行给出一个正整数TT,1≤T≤1041≤T≤104接下来T行每行一个H,1≤H≤109H,1≤H≤109输出描述:每行一个正整数...原创 2021-09-30 01:06:44 · 171 阅读 · 0 评论 -
树状数组 总结
6的二进制形式中(110),从右往左数第一个1出现的位置是2(1 << 1 = 2)7的二进制形式中(111),从右往左数第一个1出现的位置是1 (1 << 0 = 1)8的二进制形式中(1000),从右往左数第一个1出现的位置是4(1 << 3 = 8)原创 2021-09-22 00:49:55 · 114 阅读 · 0 评论 -
Lost Cows(暴力解法+线段树优化)
Lost CowsDescription :N (2 <= N <= 8,000) cows have unique brands in the range 1..N. In a spectacular display of poor judgment, they visited the neighborhood ‘watering hole’ and drank a few too many beers before dinner. When it was time to lin原创 2021-09-21 16:22:12 · 384 阅读 · 0 评论 -
集合问题-NC15167(并查集+二分法)
集合问题题解 讨论 查看他人的提交 我的提交题号:NC15167时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述给你a,b和n个数p[i],问你如何分配这n个数给A,B集合,并且满足:若x在集合A中,则a-x必须也在集合A中。若x在集合B中,则b-x必须也在集合B中。输入描述:第一行 三个数 n a b 1<=n<=1...原创 2021-09-21 14:38:47 · 560 阅读 · 0 评论 -
加边的无向图(并查集)
加边的无向图题解 讨论 查看他人的提交 我的提交题号:NC14685时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述给你一个n个点,m条边的无向图,求至少要在这个的基础上加多少条无向边使得任意两个点可达~输入描述:第一行两个正整数 n 和 m 。接下来的m行中,每行两个正整数 i 、 j ,表示点i与点j之间有一条无向道路。输出描述:...原创 2021-09-20 23:38:25 · 112 阅读 · 0 评论 -
四面楚歌(dfs)
/**@Author: GuoJinlong*@Language: C++*///#include <bits/stdc++.h>#include<iostream>#include<cstdio>#include<string>#include<queue>#include<stack>#include<map>#include<vector>#include<list>.原创 2021-09-20 23:07:55 · 242 阅读 · 0 评论 -
Sequence Game(动态规划dp+打表)
Sequence Game比赛主页 我的提交时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述由于你帮助Alice回答得非常好,Sept又找到了Bob,希望能难倒他。他给了要求Bob组成一个长度为nn的新的数列aa,其中数列aa的每一个元素aiai都有kk个取值。求所有可能的数列aa中的最长上升子序列的的最大长度。由于S...原创 2021-09-20 13:44:05 · 488 阅读 · 0 评论 -
String Game(栈模拟)
String Game比赛主页 我的提交时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述Sept 给了 Alice 一个长度为nn的字符串ss。并告诉他一次操作为:将ss的第一个字符放在ss的后面,并将第一个字符删除。现在 Sept 想知道,经过xx次这样的操作后,ss会是怎么样的。而 Alice 当然不屑于想,所以她把任务交给了自己最新...原创 2021-09-20 13:04:52 · 241 阅读 · 0 评论 -
一个经典概率问题(概率分布问题)
一个经典概率问题比赛主页 我的提交时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述牛牛大学的学生bit-noob与lit-noob(以下简称B和L)选修了"随机运筹学"这门课程(是门好课),顾名思义,这门课和随机有着很大的关系。一天,老师出了一道有趣的编程题:请在一个单位圆(半径为11的圆)中随机生成105105条弦,编程实现,并输出这些弦的长度。这个问题并不困难...原创 2021-09-20 11:41:45 · 496 阅读 · 0 评论 -
又一构造子序列(思维题 组合)
又一构造子序列比赛主页 我的提交时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288KSpecial Judge, 64bit IO Format: %lld题目描述众所周知,在上场牛客小白月赛中有一道构造子序列的好题(登录—专业IT笔试面试备考平台_牛客网)。由于此题,本场出题人错失ak,他追悔莫及,痛心疾首,悔不当初,悲愤交加,闭门思过,自惭形秽,悔得很冲动。于是,出题人向校内yyc大佬苦学字符串知识,终于学成归来,甚至能...原创 2021-09-20 11:25:39 · 459 阅读 · 0 评论 -
糟糕的打谱员(dp)
糟糕的打谱员比赛主页 我的提交时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述众所周知,围棋是一项黑白双方轮流行动的棋类游戏。在围棋中,还有打劫的概念,若一方落子在某一个劫争处,则另一方不能立刻也下在这个劫争处,而之后还是可以下的。现在,你是一场史诗级围棋对弈(史诗级体现在这场棋每一步都下在了劫争上)的记谱员,但熬夜到早上七点才睡的你状态不佳,胡乱记了许多东西。为了假装你...原创 2021-09-20 00:50:46 · 175 阅读 · 0 评论 -
kotori和气球(排列组合+快速幂)
kotori和气球本题还剩00:54:53 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述kotori最近迷上了摆气球的游戏。她一共有n种气球,每种气球有无数个。她要拿出若干个气球摆成一排。但是,由于气球被施放了魔法,同样种类的气球如果相邻会发生爆炸,因此若两个相邻的气球种类相同被视为不合法的。kotori想知道,摆成一排m个一共有多少种不同的方案?...原创 2021-09-19 21:16:33 · 303 阅读 · 0 评论 -
第23次CCF计算机软件能力认证(第二题)B(差分+前缀和)
//#include <bits/stdc++.h>#include<iostream>#include<cstdio>#include<string>#include<queue>#include<stack>#include<map>#include<vector>#include<list>#include<set>#include<iomanip>.原创 2021-09-19 20:23:36 · 799 阅读 · 2 评论 -
NC15136-迷宫(bfs)
迷宫题解 讨论 查看他人的提交 我的提交题号:NC15136时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述这是一个关于二维迷宫的题目。我们要从迷宫的起点'S'走到终点'E',每一步我们只能选择上下左右四个方向中的一个前进一格。'W'代表墙壁,是不能进入的位置,除了墙壁以外的地方都可以走。迷宫内的'D'代表一道上锁的门,只有在持有钥匙的时候才...原创 2021-09-19 00:46:59 · 161 阅读 · 0 评论 -
取数游戏2-NC14701(dp)
取数游戏2题解 讨论 查看他人的提交 我的提交题号:NC14701时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述给定两个长度为n的整数列A和B,每次你可以从A数列的左端或右端取走一个数。假设第i次取走的数为ax,则第i次取走的数的价值vi=bi⋅ax,现在希望你求出∑vi的最大值。输入描述:第一行一个数T,表示有T组数据。对于每组数据,第一行...原创 2021-09-18 21:40:04 · 146 阅读 · 0 评论 -
xinjun与阴阳师-NC14602( 分组dp 背包dp)
xinjun与阴阳师题解 讨论 查看他人的提交 我的提交题号:NC14602时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述xinjun是各类手游的狂热粉丝,因随手一氪、一氪上千而威震工大,现在他迷上了阴阳师。xinjun玩手游有一个习惯,就是经过层层计算制定出一套方案来使操作利益最大化(因此即使有扫荡券也不用,故称圣雄肝帝)。已知阴阳师有N个模式可以操作...原创 2021-09-18 21:04:10 · 113 阅读 · 0 评论 -
B-经商-NC14545(dp背包+并查集)
B-经商题解 讨论 查看他人的提交 我的提交题号:NC14545时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述小d是一个搞房地产的土豪。每个人经商都有每个人经商的手段,当然人际关系是需要放在首位的。小d每一个月都需要列出来一个人际关系表,表示他们搞房地产的人的一个人际关系网,但是他的精力有限,对应他只能和能够接触到的人交际。比如1认识2,2认识3,那么1...原创 2021-09-18 12:53:11 · 116 阅读 · 0 评论 -
解方程-NC14416(二分)
解方程题解 讨论 查看他人的提交 我的提交题号:NC14416时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述给出n个整数和x,请问这n个整数中是否存在三个数a,b,c使得ax2+bx+c=0,数字可以重复使用。输入描述:第一行两个整数n,x第二行n个整数a[i]表示可以用的数1 <= n <= 1000, -1000 <= a...原创 2021-09-18 12:19:50 · 93 阅读 · 0 评论 -
主持人的烦恼-NC13591(贪心+排序)
主持人的烦恼题解 讨论 查看他人的提交 我的提交题号:NC13591时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述一天zzq主持一项游戏,共n位同学,需要两两同学为一组来上台来玩一项游戏。但是,众所周知,玩游戏的时候,如果两个人的颜值差距>=m,就会互相嫌弃。所以,为了游戏能够好玩。在游戏开始前,zzq已经调查了所有n个同学的颜值。...原创 2021-09-17 21:23:55 · 123 阅读 · 0 评论 -
日历中的数字-NC13584(打表+暴力)
日历中的数字题解 讨论 查看他人的提交 我的提交题号:NC13584时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述ElemenT马上就要毕业了,他打开日历看了看时间。发现日历上的日期都是2017-04-04这样的格式的,月和日如果不足2位数,前面都会补充0。给定一个年份和月份,ElemenT把那个月的日期都按上述格式写到纸上,他现在想知道某种数字出...原创 2021-09-17 20:04:36 · 282 阅读 · 0 评论 -
年轮广场-NC13583(暴力)
年轮广场题解 讨论 查看他人的提交 我的提交题号:NC13583时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述在云塘校区,有一个很适合晒太阳的地方————年轮广场年轮广场可以看成n个位置顺时针围成一个环。这天,天气非常好,Mathon带着他的小伙伴们出来晒太阳。他们分别坐在A[i]位置上,每个位置上保证最多只有1个小伙伴。现在Mathon...原创 2021-09-17 18:06:27 · 116 阅读 · 0 评论 -
矩阵-NC13610(二维哈希+二分)
矩阵题解 讨论 查看他人的提交 我的提交题号:NC13610时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述给出一个n * m的矩阵。让你从中发现一个最大的正方形。使得这样子的正方形在矩阵中出现了至少两次。输出最大正方形的边长。输入描述:第一行两个整数n, m代表矩阵的长和宽;接下来n行,每行m个字符(小写字母),表示矩阵;输出描述:...原创 2021-09-17 17:40:44 · 164 阅读 · 0 评论 -
哈希 模版
int n;string s;int bas=131;typedef unsigned long long ull;const ull mod1=100001651;ull a[100010];ull Hash(string s){ ll ans=0; for(int i=0;i<s.size();i++){ ans*=bas; ans+=int(s[i]); ans%=mod1; } return ans;.原创 2021-09-17 17:36:50 · 118 阅读 · 0 评论 -
最大的矩形(201312-3)(100分暴力)
问题描述试题编号: 201312-3 试题名称: 最大的矩形 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。 请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴原创 2021-09-17 10:37:52 · 85 阅读 · 0 评论 -
P2731 [USACO3.3]骑马修栅栏 Riding the Fences(欧拉路板子)
题目背景Farmer John 每年有很多栅栏要修理。他总是骑着马穿过每一个栅栏并修复它破损的地方。题目描述John 是一个与其他农民一样懒的人。他讨厌骑马,因此从来不两次经过一个栅栏。John 的农场上一共有mm个栅栏,每一个栅栏连接两个顶点,顶点用11到500500标号(虽然有的农场并没有那么多个顶点)。一个顶点上至少连接11个栅栏,没有上限。两顶点间可能有多个栅栏。所有栅栏都是连通的(也就是你可以从任意一个栅栏到达另外的所有栅栏)。John 能从任何一个顶点(即两个栅栏...原创 2021-09-16 17:46:10 · 216 阅读 · 1 评论 -
消除类游戏(201512-2)
问题描述试题编号: 201512-2 试题名称: 消除类游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 现在给你一个n行m列的棋盘,棋盘中的每一个方格上有一原创 2021-09-16 16:56:52 · 115 阅读 · 0 评论 -
火车购票(201609-2)(90分)
问题描述试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。 购票时,一个人可能购一张或多张票,最多不超过5张。如果这几原创 2021-09-16 14:12:08 · 99 阅读 · 0 评论 -
公共钥匙盒(201709-2)(100分)
问题描述试题编号: 201709-2 试题名称: 公共钥匙盒 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家。每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中。 钥匙盒一共有N个挂钩,从左到右排成一排,用来挂N个教室的钥匙。一串钥匙没有固定的悬挂位置,但钥匙上有标识原创 2021-09-16 13:58:03 · 69 阅读 · 0 评论 -
打酱油(201709-1)
问题描述试题编号: 201709-1 试题名称: 打酱油 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 小明带着N元钱去买酱油。酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶。请问小明最多可以得到多少瓶酱油。 输入格式 输入的第一行包含一个整数N,表示小明可用于买酱油的钱数。N是10的整数倍,N不超过300。 输出格式 输出一个整数,表示小明最多可以得到原创 2021-09-15 22:12:09 · 74 阅读 · 0 评论 -
地铁修建(201703-4)(dijstra)
问题描述试题编号: 201703-4 试题名称: 地铁修建 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 A市有n个交通枢纽,其中1号和n号非常重要,为了加强运输能力,A市决定在1号到n号枢纽间修建一条地铁。 地铁由很多段隧道组成,每段隧道连接两个交通枢纽。经过勘探,有m段隧道作为候选,两个交通枢纽之间最多只有一条候选的隧道,没有隧道两端连接着同一个交通枢纽。 现在有n家隧道施工的公司,每段候原创 2021-09-15 13:56:59 · 96 阅读 · 0 评论 -
学生排队(201703-2)(100分解法 vecror)
问题描述试题编号: 201703-2 试题名称: 学生排队 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 体育老师小明要将自己班上的学生按顺序排队。他首先让学生按学号从小到大的顺序排成一排,学号小的排在前面,然后进行多次调整。一次调整小明可能让一位同学出队,向前或者向后移动一段距离后再插入队列。 例如,下面给出了一组移动的例子,例子中学生的人数为8人。 0)初始队列中学生的学号依次为1, 2,原创 2021-09-15 12:59:47 · 94 阅读 · 0 评论 -
二十四点(201903-2)(栈)
问题描述试题编号: 201903-2 试题名称: 二十四点 时间限制: 1.0s 内存限制: 512.0MB 问题描述:原创 2021-09-14 23:56:42 · 93 阅读 · 0 评论 -
碰撞的小球(201803-2)(100分解法)模拟
问题描述试题编号: 201803-2 试题名称: 碰撞的小球 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。 当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。 当两个小球撞到原创 2021-09-14 22:19:41 · 52 阅读 · 0 评论 -
再卖菜(201809-4)(100分解法dfs)
问题描述试题编号: 201809-4 试题名称: 再卖菜 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜。 第一天,每个商店都自己定了一个正整数的价格。店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格。具体的,每家商店都会将第二天的菜价设置为自己和相邻商店第一天菜价的平均值(用去尾原创 2021-09-14 21:42:58 · 58 阅读 · 0 评论 -
买菜(201809-2)(100分打表标记)
问题描述试题编号: 201809-2 试题名称: 买菜 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车,两人都要买n种菜,所以也都要装n次车。具体的,对于小H来说有n个不相交的时间段[a1,b1],[a2,b2]...[an,bn]在装车,对于小W来说有n个不相交的时间段[c1,d1],[c2,d2]..原创 2021-09-14 11:56:37 · 71 阅读 · 0 评论 -
期末预测之最佳阈值(202012-2)(50分暴力+100分前缀和)
问题描述试题编号: 202012-2 试题名称: 期末预测之最佳阈值 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 题目背景 考虑到安全指数是一个较大范围内的整数、小菜很可能搞不清楚自己是否真的安全,顿顿决定设置一个阈值θ,以便将安全指数y转化为一个具体的预测结果——“会挂科”或“不会挂科”。 因为安全指数越高表明小菜同学挂科的可能性越低,所以当y≥θ时,顿顿会预测小菜这学期很安全、不会挂科;反之若y<...原创 2021-09-14 10:16:28 · 293 阅读 · 0 评论 -
期末预测之安全指数(202012-1)(100分)
问题描述试题编号: 202012-1 试题名称: 期末预测之安全指数 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 题目背景 期末要到了,小菜同学找到了自己的好朋友顿顿,希望可以预测一下自己这学期是否会挂科。 题目描述 首先,顿顿选取了如“课堂表现”、“自习时长”、“作业得分”、“社团活动参与度”等n项指标作为预测的依据。 然后,顿顿根据自己平日里对小菜的暗中观察,以百分制给每一项指标打分,即小菜同学..原创 2021-09-14 09:07:41 · 122 阅读 · 0 评论 -
邻域均值(202104-2)(100分解法)(前缀和)
问题描述试题编号: 202104-2 试题名称: 邻域均值 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 试题背景 顿顿在学习了数字图像处理后,想要对手上的一副灰度图像进行降噪处理。不过该图像仅在较暗区域有很多噪点,如果贸然对全图进行降噪,会在抹去噪点的同时也模糊了原有图像。因此顿顿打算先使用邻域均值来判断一个像素是否处于较暗区域,然后仅对处于较暗区域的像素进行降噪处理。 问题描述 待处理的灰度图像长宽皆为n.原创 2021-09-14 09:00:03 · 364 阅读 · 0 评论