
ACM算法刷题
文章平均质量分 86
ACM是一类程序设计竞赛,本专栏记录了ACM中经常使用的算法和OJ刷题记录。ACM算法涉及的范围非常广泛,包括图论、动态规划、贪心算法、搜索算法、字符串匹配、数学算法等等,ACM算法的学习和掌握对于从事计算机相关专业的人士来说非常重要。
Designer 小郑
3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,优快云学院、蓝桥云课认证讲师,商业合作请私信。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
华硕编程竞赛11月JAVA专场 J题再见天空 题解
本文讲解华硕编程竞赛11月专场的J题再见天空题解,要 AC 本题,必须学会快速幂取模和乘法逆元的算法,并且对卡特栏数的递推有一定的了解,不断递推数据,然后使用费马小定理进行取模,从而通过本题。原创 2022-12-12 10:41:06 · 1167 阅读 · 3 评论 -
华硕编程竞赛11月JAVA专场 I题名片发放 题解
本文讲解华硕编程竞赛11月专场的I题名片发放题解,要 AC 本题,必须学会 java 中 二位数组的基本用法,另外还要对动态规划和DP的算法有一定的了解,从而去递推第二斯特林数,从而通过本题。原创 2022-12-12 10:32:31 · 1192 阅读 · 2 评论 -
华硕编程竞赛11月JAVA专场 H题欢乐打飞机 题解
本文讲解华硕编程竞赛11月专场的H题欢乐打飞机题解,要 AC 本题,必须学会穷举和搜索的算法,使用 DFS,只搜索没被摧毁的飞机中生命值高于前者的飞机,不断更新全局积分,从而通过本题。原创 2022-12-11 12:14:05 · 1137 阅读 · 1 评论 -
华硕编程竞赛11月JAVA专场 G题飞行棋 题解
本文讲解华硕编程竞赛11月专场的G题飞行棋题解,要 AC 本题,必须熟悉最大子数组和、动态规划算法,尽可能的获取卡片,以获取最高的积分,从而通过本题。原创 2022-12-11 12:07:17 · 697 阅读 · 0 评论 -
华硕编程竞赛11月JAVA专场 F题购买弹簧 题解
本文讲解华硕编程竞赛11月专场的F题购买弹簧题解,要 AC 本题,必须使用反向贪心的思想,弹簧总钱减去硬币价格这个值,让用到的硬币个数尽可能少,也就等价于弹簧价格用到的硬币个数尽可能多,从而通过本题。原创 2022-12-10 09:01:25 · 1197 阅读 · 1 评论 -
华硕编程竞赛11月JAVA专场 E题太空漫步 题解
本文讲解华硕编程竞赛11月专场的E题太空漫步题解,要 AC 本题,必须熟悉递推算法的基本原理,找到递推数组的关系公式,并需要预先打表降低时间复杂度,从而通过本题。原创 2022-12-10 08:54:27 · 1038 阅读 · 0 评论 -
华硕编程竞赛11月JAVA专场 D题飞机大战 题解
本文讲解华硕编程竞赛11月专场的D题飞机大战题解,要 AC 本题,必须熟悉尼姆博弈的基本原理,善于推出必败态,从而通过本题。原创 2022-12-09 09:02:34 · 1234 阅读 · 0 评论 -
华硕编程竞赛11月JAVA专场 C题太空遨游 题解
本文讲解华硕编程竞赛11月专场的C题太空遨游题解,要 AC 本题,必须熟悉队列的基本使用,学会广度优先搜索BFS的算法,从而通过本题。原创 2022-12-09 08:54:47 · 1111 阅读 · 1 评论 -
华硕编程竞赛11月JAVA专场 B题召唤精灵 题解
本文讲解华硕编程竞赛11月专场的B题召唤精灵题解,要 AC 本题,必须学会奇偶性博弈的算法,从而通过本题。原创 2022-12-08 15:24:02 · 867 阅读 · 1 评论 -
华硕编程竞赛11月JAVA专场 A题自由弹簧 题解
本文讲解华硕编程竞赛11月专场的A题自由弹簧题解,要 AC 本题,必须学会快速幂取模的算法,使用快速幂取模可以将原有的 O(N)的时间复杂度降为 O(log (2,N)),从而通过本题。原创 2022-12-08 15:15:16 · 1021 阅读 · 4 评论 -
第十一届蓝桥杯大赛软件类决赛 C++ B组 题解
声明:本人水平有限,只是个人的见解,如果有更好的答案,欢迎评论区或者私信我,我会注明您的题解来源,谢谢支持!本文是2020年11月14日的蓝桥杯全国总决赛 软件类 C B组题解本文原创首发优快云,本文链接https://blog.youkuaiyun.com/qq_41464123/article/details/109695384,作者博客https://zwz99.blog.youkuaiyun.com/,转载请带上本链接,谢谢配合。试题 A: 美丽的 2 本题总分:5 分 我的答案:563,水题暴...原创 2020-11-14 20:30:03 · 10292 阅读 · 13 评论 -
天梯赛-L1-064 估值一亿的AI核心代码 (20 分)--2019全国CCCC天梯赛L1题解
天梯赛-L1-064 估值一亿的AI核心代码 (20 分)--2019全国CCCC天梯赛第八题题解,太坑了这题原创 2019-03-31 12:56:26 · 9048 阅读 · 18 评论 -
ACM刷题之路(二)谈谈我对ACM的理解
2018年4月 ACM实验室晚自习学习内容总结:仅供学习参考使用,如有疑问请联系我1.String类型 头文件 #include<string> c++ 数据类型不能用gets()读入 只能用cin读入;Sting相当于数组无限;2.getline(cin,line); line为string类型定义vc6.0 两次回车修复:头文件:两个: #includ...原创 2018-06-09 17:03:28 · 3186 阅读 · 4 评论 -
ACM刷题之路(十六)Acm程序设计竞赛自制模板
前言 本模板是我在备战省赛的时光中,把复习过的和新学的算法中比较常用的代码、思路,整合成了模板,供以后的ACM竞赛直接使用,因为时间匆忙、水平有限,若有不足之处,欢迎大佬提出。本版本为V1.0版,会不定期更新。 以下所有代码都是我个人手敲,并且通过HDU、POJ等知名OJ上做题实践验证过的结果,是我两个月的成果。 水平有限,代码比较累赘,以后有机会进一步减少少考的算...原创 2019-04-18 17:43:44 · 2773 阅读 · 2 评论 -
ACM刷题之路(二十二)多重背包转01背包 HDU 1171
题目链接:传送门题意:样例:210 120 1意思是两种物品,质量为10的物品有一个,质量为20的物品有一个,求如何分使得最大程度的两等分?答案当然是 : 20 10 (题目规定大的放前面)310 120 230 1意思是三种物品,质量为10的物品有一个,质量为20的物品有两个,,质量为30的物品有一个,求如何分使得最大程度的两等分?...原创 2019-07-12 18:10:49 · 746 阅读 · 0 评论 -
ACM刷题之路(二十三) HDU 1114 完全背包 Piggy-Bank
题目链接:传送门题意:告诉你背包的容量N,和 M 件物品分别各自的体积和质量, 求背包剩余容量为0(即刚好填满)的时候,最小的质量。3 三个测试样例10 110 //N = 110 - 10 = 100 题意为金元宝总质量110 金元宝自己的质量为10 所以物品的质量就是1002 // 两件物品1 1 //质量为1 体积为130 50 // 质量为30...原创 2019-07-12 19:59:40 · 1072 阅读 · 1 评论 -
ACM刷题之路(二十四)HDU 2844 多重背包转换 Coins
题目链接:传送门CoinsTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 24496Accepted Submission(s): 8740Problem DescriptionWhuacmers use coin...原创 2019-07-13 11:03:19 · 1556 阅读 · 1 评论 -
ACM刷题之路(十七)二分 2019暑期集训 POJ2785
题目链接:传送门暑期集训第一弹:二分、三分、尺取DescriptionThe SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x C x D are such...原创 2019-07-09 17:38:11 · 1033 阅读 · 0 评论 -
ACM刷题之路(十八)二分 2019暑期集训 POJ 3579 Median
题目链接:传送门DescriptionGiven N numbers, X1, X2, ... , XN, let us calculate the difference of every pair of numbers: ∣Xi - Xj∣ (1 ≤ i < j ≤ N). We can get C(N,2) differences through this work, and now ...原创 2019-07-09 20:03:52 · 1131 阅读 · 3 评论 -
ACM刷题之路(十九)二分+尺取 2019暑期集训 HDU6231 K-th Number
题目链接:传送门题意:输入N,M,K,第二行输入N个数字,假设第二行是A数组,那么从A数组中所有连续且长度大于等于M的子区间 的 第M大的数字,放入B数组(可重复),最后输出B数组中第K大的数字。样例:5 3 22 3 1 5 4子区间 2 3 1、3 1 5、 1 5 4、2 3 1 5、 3 1 5 4、2 3 1 5 4的第3大的数分别是1 1 1 2 3 3,所以第二大...原创 2019-07-10 09:31:06 · 1238 阅读 · 1 评论 -
ACM刷题之路(二十)线筛素数+找规律f(n) 2019暑期集训 HDU 2585
题目链接:传送门感谢此大佬的博客:https://blog.youkuaiyun.com/codeswarrior/article/details/81263050 写的非常好!题意:给出公式Gcd(n)=gcd(C(n,1),C(n,2),……,C(n,n-1)其中C(n,1)代表组合C,n选1,等于n!/1!/(n-1)!让求f(n)=Gcd(3)+Gcd(4)+…+Gcd(i)+…+...原创 2019-07-11 08:55:45 · 926 阅读 · 1 评论 -
ACM刷题之路(二十一)大素数筛选 2019暑期集训 POJ 2689 Prime Distance
题目链接:传送门Sample Input2 1714 17Sample Output2,3 are closest, 7,11 are most distant.There are no adjacent primes.题目大致意思就是:告诉你一个s和e,求s和e之间靠的最近的两素数和离得最远的两素数,如果没有就输出There are no adjacent prime...原创 2019-07-11 21:57:43 · 970 阅读 · 0 评论 -
ACM刷题之路(一)第K个排列问题 Ignatius and the Princess II
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1027题解:第一个数代表着1到n的从小到大的数列,如果n=10,就代表{1,2,3,4,5,6,7,8,9,10}这样的数组,第二个数代表第k小的排列,最后输出就行了。比如{1,2,3,4} 第1小的数列是{1,2,3,4},第二小的数列是{1,2,4,3},方法有两个:1.使用nex...原创 2018-06-05 17:53:04 · 2723 阅读 · 5 评论 -
ACM刷题之路(三)dfs+排列 第K个幸运排列
题目链接:https://vjudge.net/problem/51Nod-1635比得喜欢幸运数字。这里所说的幸运数字是由4和7组成的正整数。比如,整数47,744,4是幸运数字,而5,17,467就不是。一天比得梦到由数字1到n组成的第K个字典序排列。要求计算在这个排列中有多少个幸运数所在的位置的编号也是幸运数。举例如下:比如排列[1,2,3,4],其中4为幸运数,...原创 2018-06-10 12:06:25 · 2622 阅读 · 2 评论 -
ACM刷题之路(四)2018暑假实验室集训——深广搜专题题解
比赛链接:https://vjudge.net/contest/238396A题为最基础的栈、队列的应用 其中队列是先进先出,栈是先进后出。比如队列1进2进 出 出 只要输出1 2.B题为求连通块的个数,可以深搜也可以广搜,看个人喜好,此题连通块为左右和斜对角线。C题的意思是天使救小朋友,地图中a代表天使,r代表小朋友,x代表警察,点代表可以走...原创 2018-07-15 20:32:45 · 2104 阅读 · 3 评论 -
ACM刷题之路(五)最短路 Dijkstra POJ2387
题目网址:http://poj.org/problem?id=2387Bessie is out in the field and wants to get back to the barn to get as much sleep as possible before Farmer John wakes her for the morning milking. Bessie needs...原创 2018-07-19 10:55:28 · 2416 阅读 · 1 评论 -
ACM刷题之路(十五) 分治法 + 找规律 ZOJ4085
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5864题意:已知K 和 M,满足K在1~N的字典序排列中,处于第M位,求N的最小值。比如K =2 ,M = 4 的情况,N的最小值为11;1到11 按照数值排列: 1 2 3 4 5 6 7 8 9 10 11按照字典序排列: 1 10 11 ...原创 2019-03-03 09:51:00 · 1391 阅读 · 2 评论 -
ACM刷题之路(十四)逆元取模 Travel along the Line
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4006题意:小明在原点(0,0),一共可以走n步,他朋友在(m,0)这个点。小明是随机走步,1/2几率不动,1/4几率往左走一步,1/4几率往右走一步。问:小明走n次以后在(m,0)这个点的概率的逆元为多少? 结果对1e9+7取余,n、m∈[0,1e5];...原创 2018-11-18 17:56:49 · 745 阅读 · 3 评论 -
ACM刷题之路(十三)数据结构——链表
顺序表之后是链表,链表是线性表的第二种结构。(单)链表根据《数据结构》这本书 需要会写初始化、插入、查找、删除、取长度的函数。首先是结构体的定义:链表的每一个节点由本身的数据、下一个节点的地址组成。typedef的意思是取别名。把lei这个小名 给int 修改线性表数据类型的时候可以直接改动typedef int lei;struct ss{ lei data;...原创 2018-11-10 10:08:35 · 1644 阅读 · 2 评论 -
ACM刷题之路(十二)数据结构——顺序表
这周已经是第九周了,为了期末的时候能够兼顾其他课程的复习,所以提早对数据结构这门课进行回顾总结。数据结构忽略前面两章的C语言基础(有机会以后再补),直接从第三章最简单的线性表开始。线性表的第一种结构是 顺序表 。首先定义一个结构体,#define MAXX 1000typedef int lei;struct ss{ lei data[MAXX]; int len;}...原创 2018-11-09 22:36:11 · 1053 阅读 · 0 评论 -
ACM刷题之路(十一)堆、栈、队列实现表达式转换
题目:表达式转换算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。输入格式:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、\以及左右括号(),表达式不超过20个字符。输出格式:在一行中输出转换后的后缀表达式,要求不同对象(运算数、运算符号)之间以空格分隔...原创 2018-10-15 16:18:12 · 868 阅读 · 1 评论 -
ACM刷题之路(十)博弈论 jack & rose
J jack & rose时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:139 测试通过:52描述Jack 和 Rose在泰坦尼克号上邂逅后(1912年),一起玩起了博弈,当时还没博弈论(博弈论,1913年才开始有人研究),但是2人都很聪明,都能够选择最优策略。Jack 和 Rose相...原创 2018-09-27 19:40:52 · 1530 阅读 · 0 评论 -
ACM刷题之路(九)数论-逆序组 交换座位
C 交换座位时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:185 测试通过:61描述学号分别为1,2,3,4,5,6,7,8的8位同学随机排成一排,现在想把他们按学号从小到大排序,在排序的时候每次只能其中的2位同学进行换位,请问最少需要几次这样的换位。输入输入有多组数据(组数至少200...原创 2018-09-27 17:56:40 · 1857 阅读 · 0 评论 -
ACM刷题之路(八)数论-取余 停车位划分
B 停车位时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:354 测试通过:36描述停车位就是相关部门规划整齐的用来专门停车的位置。中国停车位缺乏,元培学院的停车位更缺乏。已知镜湖校区有一个面积n*m平方米的空地,校管理层想把它划分为一个停车场。已知一个标准车位的尺寸为2.6米(宽)×5.3米(...原创 2018-09-27 17:52:12 · 1497 阅读 · 1 评论 -
ACM刷题之路(七)字符串处理 记元培ACM院赛
2015年院赛 A 安卓命名规则时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:320 测试通过:66描述最近在用安卓做毕业设计,用到的类名、方法名、变量名、常量名不下一百个,开始的时候哪里会在意这些命名的规则,拼音什么的都出现了,但随着名称的增加,都分不清哪些是方法名,哪些是变量名,所以规范的...原创 2018-09-27 17:31:08 · 806 阅读 · 2 评论 -
ACM刷题之路(六)直线相交问题 POJ3304 Segments
题目链接:http://poj.org/problem?id=3304DescriptionGiven n segments in the two dimensional space, write a program, which determines if there exists a line such that after projecting these segments on i...原创 2018-08-02 17:32:44 · 2725 阅读 · 2 评论