算法刷题
文章平均质量分 75
算法刷题
Honyelchak
没有“不可能”!
展开
-
SF-X未来科技赛道-编程方向(半决赛)(签到题 + 设计题 + 最短路径 + 贪心)
int punish(String operatorUserName, int userId, int punishStatus) : 处罚操作, 如果用户已经有被处罚了,新的处罚必须高于当前处罚等级才能生效,operatorUserName为执行处罚的人,userId为被处罚用户的编号。已知快递分为两种类型,第一种类型为同城快送,第二种类型为跨城运输。这样从前到后遍历的过程中,总是安排薪酬较低的兼职快递员去送货物,同时,对于类型B快递员来说,先送跨城运输、后送同城快送可以尽可能的保证任务被接收完。原创 2023-06-08 15:38:11 · 1142 阅读 · 0 评论 -
携程笔试-2023.3.7-第四题:游游买商品(动态规划、记忆化搜索)
超市开展了一个活动,当游游花费原价买了一件商品时,她可以用半价买下一件右边相邻的商品(也可以用原价购买,这样该商品右边的商品就有次享受半价的机会)。游游正在进超市,有 n 个商品摆成一排,第 i 个商品的价格为 ai ,游游对它的喜爱度为 bi。初始的钱为 x ,她想要买的商品的喜爱度总和尽可能大,但总价格不能超过 x。第一个使用原价买,第二个物品使用原价买,第三个物品使用半价买,不买第四个物品,这样是最优的。换言之,如果游游想要半价买某一件商品,必须先用原价买下它相邻的左边的那个商品游游。原创 2023-03-14 10:26:19 · 310 阅读 · 0 评论 -
【第 88 场双周赛】逆序对(离散化 + 树状数组)、异或性质的运用
对于这个坑题,真的不应该面相用例编程,交了2发WA,就应该直接暴力解题。AC代码:B. 2424. 最长上传前缀数据结构设计题,的范围是,所以用数组模拟哈希就可以,不需要用。AC代码:C. 2425. 所有数对的异或和这道题要到异或的两个性质:举例说明:nums1 = [a, b, c]nums2 = [d, e]nums3 = [a ^ d, a ^ e, b ^ d, b ^ e, c ^ d, c ^ e](a ^ d) ^ (a ^ e) ^ (b ^ d) ^ (b ^ e原创 2022-10-08 22:54:05 · 470 阅读 · 0 评论 -
图论之最短路基础总结(单源最短路(Dijkstra、堆优化版Dijkstra、Bellman-Ford、SPFA)+多源汇最短路(Floyd))
最短路问题(short-path problem)是网络理论解决的典型问题之一,可用来解决管路铺设、线路安装、厂区布局和设备更新等实际问题。 基本内容是:若网络中的每条边都有一个数值(长度、成本、时间等),则找出两节点(通常是源节点和阱节点)之间总权和最小的路径就是最短路问题。原创 2022-10-07 19:13:48 · 454 阅读 · 0 评论 -
TOYOTA MOTOR CORPORATION Programming Contest 2022(AtCoder Beginner Contest 270)(DP + 二分 + 最小生成树(超源)
先二分找到Takahashi走过的最大圈数,然后用O(N)的时间对每个位置上的苹果做减法,最后将剩余的苹果进行分发。自己写的比较麻烦,看了题解才知道可以写这么简单。我这里用的是BFS,用dist来记录路径。原创 2022-10-03 11:33:09 · 1587 阅读 · 0 评论 -
【LeetCode周赛-312】子数组按位与最大值、并查集(图)
AC代码:B. 2419. 按位与最大的最长子数组思维题,子数组按位与的结果一定小于子数组的最大值,所以最大的与值一定是数组的最大值,然后我们检查一下这个最大值连续出现的最大长度即可。AC代码:C. 2420. 找到所有好下标先预处理出、数组。:记录右边(包括i)连续递增的数列个数。:记录左边(包括i)连续递增的数列个数。直接枚举符合条件的。AC代码:D. 2421. 好路径的数目AC代码:原创 2022-09-27 22:41:01 · 598 阅读 · 0 评论 -
【Leetcode】天堂硅谷·数字经济算法编程大赛(虚拟)
已知初始 material[i] 表示第 i 种反应物的质量,每次进行实验时,会选出当前 质量最大 的两种反应物进行反应,假设反应物的重量分别为 i 和 j ,且 i原创 2022-09-26 22:42:15 · 2003 阅读 · 3 评论 -
Parity Game(奇偶游戏)(POJ1733、AcWing 239)(并查集)(扩展域写法+边带权写法)
题目小 A 和小 B 在玩一个游戏。首先,小 A 写了一个由 0 和 1 组成的序列 S,长度为 N。然后,小 B 向小 A 提出了 M 个问题。在每个问题中,小 B 指定两个数 l 和 r,小 A 回答 S[l∼r] 中有奇数个 1 还是偶数个 1。机智的小 B 发现小 A 有可能在撒谎。例如,小 A 曾经回答过 S[1∼3] 中有奇数个 1,S[4∼6] 中有偶数个 1,现在又回答 S[1∼6] 中有偶数个 1,显然这是自相矛盾的。请你帮助小 B 检查这 M 个答案,并指出在至少多少个回答原创 2022-04-07 11:17:06 · 4380 阅读 · 1 评论 -
LIS(Longest Increasing Sequence)最长上升子序列模型(朴素 + 贪心两种做法)
LIS(Longest Increasing Sequence)朴素做法O(n^2)状态表示:f[i]表示以a[i]结尾的IS的长度的最大值,或者说是(a[0]~a[i])这一段序列的LIS。状态表示f[i]集合: 以a[i]结尾的递增子序列属性: 长度最大值状态计算当a[pre] < a[i],f[i] = max(f[i], f[pre] + 1)#include<cstdio>#include<cstring>#include<a原创 2022-04-07 09:30:33 · 687 阅读 · 0 评论 -
【Leetcode周赛273】总结
5963. 反转两次的数字题目链接反转 一个整数意味着倒置它的所有位。 例如,反转 2021 得到 1202 。反转 12300 得到 321 ,不保留前导零 。 给你一个整数 num ,反转 num 得到 reversed1 ,接着反转 reversed1 得到 reversed2 。如果 reversed2 等于 num ,返回 true ;否则,返回 false 。提示: 0 <= num <= 106 思路略代码class So.原创 2021-12-26 16:44:44 · 420 阅读 · 0 评论 -
【算法基础课】第四章《动态规划》背包系列模板总结
背包系列状态表示f(i,j)集合所有满足条件属性最大值最小值数量…状态计算一、01背包特点: 每件物品最多只能用一次(也可以不用)状态计算: 将集合划分为选i和不选i1.1 朴素写法(二维)/*** f[i][j]表示只看前i个物品,总体积是j的情况下,最大价值是多少。* 需要返回的答案就是:max(f[n][0~v])* f[i][j]递推:* 1. 不选第i个物品,f[i][j] = f[i-1][j]* 2. 选第i个物品,f[i][原创 2021-10-24 21:53:58 · 2861 阅读 · 1 评论 -
【算法基础课】第二章《数据结构》模板总结
链表单链表静态链表用数组模拟静态链表不容易超时,动态链表中new一个node花费的时间开销很大,很容易超时。// 基础元素int head, e[N], ne[N], idx;// head头指针,指向第一个节点// e[N],记录第i个节点的值// ne[N],记录第i个节点指向的下一个节点的索引// idx, 全局变量,分配给下一个节点的指针。// 初始化void init(){ head = -1; //表明链表为空 idx = 0; //从0号位置开始存原创 2021-10-03 21:25:13 · 156 阅读 · 0 评论 -
LeetCode-212-word-search-ii(单词搜索 II)
题目内容题目链接: https://leetcode-cn.com/problems/word-search-iiGiven an m x n board of characters and a list of strings words, return all words on the board.Each word must be constructed from letters of sequentially adjacent cells, where adjacent cells are原创 2021-09-16 21:55:43 · 125 阅读 · 0 评论 -
【刷题总结】峰值专题(持续更新)
峰值专题今日的每日一题和上一次周赛的子序列很相似,都是找峰值的。Leetcode-162-Find Peak Element题目链接:https://leetcode-cn.com/problems/find-peak-element/找到一个数A,要求A大于左右两边邻居的数,返回该数的索引,若有多个,则任意返回一个。class Solution {public: int findPeakElement(vector<int>& nums) { int原创 2021-09-15 21:11:54 · 101 阅读 · 0 评论 -
Leetcode 244周赛-赛后补题题解【西兰花选手】
Problem A-判断矩阵经轮转后是否一致题意: 以 90 度顺时针轮转矩阵 mat 中的元素 若干次,如果mat矩阵与target一致,返回true,否则返回false思路: 直接模拟就可以了,做这题的时候还费劲写了一个原地算法,y神说了没必要,直接开一个二维数组即可。代码:Java中不能直接判断两个二维数组的内容是否相同,恶心!class Solution { public boolean findRotation(int[][] mat, int[][] target) {原创 2021-06-07 22:08:29 · 113 阅读 · 0 评论 -
Leetcode-1737-满足三条件之一需改变的最少字符数
题目给你两个字符串a和b,二者均由小写字母组成。一步操作中,你可以将a或b中的任一字符改变为任一小写字母。操作的最终目标是满足下列三个条件之一:a中的每个字母在字母表中严格小于b中的每个字母。 b中的每个字母在字母表中严格小于a中的每个字母。 a和b都由同一个字母组成。返回达成目标所需的最少操作数。示例 1:输入:a = "aba", b = "caa"输出:2解释:满足每个条件的最佳方案分别是:1...原创 2021-01-26 19:03:39 · 283 阅读 · 0 评论 -
剑指 Offer 33. 二叉搜索树的后序遍历序列
题目输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5 / \ 2 6 / \1 3示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true来源:力扣(LeetCode)链接:戳着分析BST中,按权值比较,左孩子 < 根节点 < 右孩子...原创 2021-01-07 16:53:51 · 102 阅读 · 1 评论 -
LeetCode-101-对称二叉树
题目给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2/ \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/symmetric-tree著作权归领扣...原创 2020-05-22 19:12:36 · 152 阅读 · 0 评论 -
剑指offer——链表中倒数第k个结点(三种方法)
题目描述输入一个链表,输出该链表中倒数第k个结点。思路三种思路1、先算出链表总长度,然后正向寻找(len-k+1)2、两个指针,让她们相隔k-1个单位,正向遍历,当跑得快的那个指针遇到null时,另一个指针的位置就是倒数第k个结点3、递归,当head.next遇到null时,count开始记数,直到count = k代码对应第一个思路public ListNode FindK...原创 2020-02-11 16:39:04 · 341 阅读 · 0 评论 -
剑指offer——旋转数组的最小数字(三种方法)
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路三种方法:1、自己写的方法正数:n>>1移位,然后n&1判断是否为1。负数:n>>1移位,然后n&1判断是否为0,最后用32减去(0的个数)。0:0就是0。2、别人的方法n不用动,让1不断的移位,然后&操作判断1的个数。-即 00000001、0...原创 2020-02-10 22:03:34 · 134 阅读 · 0 评论 -
HDU - 2018 母牛的故事
题目有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛? Input 输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0想法每头刚出生的小母牛在第四年开始每年生一头,那这就类似于斐波那契数列问题(fibonacci)。 回顾一下斐波那契数列int fibonacci(int n){ if(n=原创 2017-11-03 23:06:53 · 268 阅读 · 0 评论 -
HDU-1253 胜利大逃亡
胜利大逃亡Time Limit : 4000/2000ms (Java/Other)Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 38Accepted Submission(s) : 16Font:Times New Roman|Verdana|GeorgiaFont Size:←...原创 2019-03-02 14:40:13 · 121 阅读 · 0 评论 -
算法基础之全排列(递归)
全排列(递归)全排列就是从第一个数字起每个数字分别与他后面的数进行交换。去重的全排列就是从第一个数起每个数分别与它后面非重复出现的数字交换。全排列(不去重)// 搜索// a 为 需要全排列的数组// len为需要全排列的数组长度// index为当前选取到第几位数。(index是从0开始的)void dfs(int* a, int len, int index){ if...原创 2019-02-18 14:33:06 · 302 阅读 · 0 评论 -
牛客寒假算法基础集训营4-B-Applese 走方格
链接:https://ac.nowcoder.com/acm/contest/330/B来源:牛客网 在这个游戏中,它位于一个 n 行 m 列的方阵中的左上角(坐标为(0, 0),行的序号为0∼n−10∼n−1,列的序号为0∼m−10∼m−1)。 现在它想不重复地走过所有格子(除了起点),最后回到左上角的一个方案。 每次只能往上下左右其中一个方向走一格。输入描述:...原创 2019-01-30 21:41:58 · 113 阅读 · 0 评论 -
牛客寒假算法基础集训营4-E-Applese 涂颜色
链接:https://ac.nowcoder.com/acm/contest/330/E来源:牛客网 在这个游戏中,有一个 n 行 m 列的方阵。现在它要为这个方阵涂上黑白两种颜色。规定左右相邻两格的颜色不能相同。请你帮它统计一下有多少种涂色的方法。由于答案很大,你需要将答案对 109+7109+7 取模。输入描述:仅一行两个正整数 n, m,表示方阵的大小。输出描述:...原创 2019-01-29 23:38:18 · 136 阅读 · 0 评论 -
ZZULIOJ-1519-小P参加相亲大会
问题 A: 小P参加相亲大会时间限制:2 Sec内存限制:16 MB提交:381解决:51[提交] [状态] [讨论版] [命题人:外部导入]题目描述小P最近人生得意,去参加了一次相亲大会,相亲大会上每个人有一个密码牌(密码牌上的密码是一个正整数m,m<231),相互之间在交流之前先交换密码牌,密码牌上的密码可能相同,也可能不同,如果相同,两人牵手离开,如果...原创 2019-03-03 19:25:55 · 699 阅读 · 0 评论 -
ZZULIOJ-2431-小P母校名字的缩写
问题 G: 小P母校名字的缩写时间限制:1 Sec内存限制:128 MB提交:351解决:113[提交] [状态] [讨论版] [命题人:zhd]题目描述小P对自己的母校很有感情,他看到一个字符串的时候,总是看一看字符串中的字母能不能组成他母校名字的英文缩写,现给定一个仅由英文字母构成的字符串。请你帮小P找一找能组成几个学校名字的英文缩写。字母不区分大小写。输...原创 2019-03-03 19:32:36 · 247 阅读 · 0 评论 -
ZZULIOJ-1525-小P找座位
问题 I: 小P找座位时间限制:1 Sec内存限制:128 MB提交:1解决:1[提交] [状态] [讨论版] [命题人:外部导入]题目描述终于到达考场的小P忘了自己坐在那里了,但他想起自己的座位号是第K个bofinacci数马上就要考试了,请你帮助他求出他的座位号设bi表示第i个bofinacci数,则b1=b2=1,对于i≥3有bi=(b2i−2+bi−1∗...原创 2019-03-03 19:36:28 · 371 阅读 · 0 评论 -
ZZULIOJ-1524-小P上考场
问题 H: 小P上考场时间限制:1 Sec内存限制:128 MB提交:132解决:31[提交] [状态] [讨论版] [命题人:外部导入]题目描述小P一觉醒来发现天已经亮了。今天是程序设计大赛的日子,小P需要尽快赶往考场。 小P家在a号路口,他会告诉你哪些路口是相联通的,距离是多少。赛场在b号路口,该市道路没有单行道。 小P想让你帮他规划到考场的路线,他希望找到这条...原创 2019-03-03 19:45:20 · 415 阅读 · 0 评论 -
L1-006 连续因子
L1-006连续因子(20分)一个正整数N的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式:输入在一行中给出一个正整数N(1<N<231)。输出格式:首先在第 1 行输出最长连续因子的个数;然...原创 2019-03-26 09:53:07 · 142 阅读 · 0 评论 -
L2-005 集合相似度
L2-005集合相似度(25分)给定两个整数集合,它们的相似度定义为:Nc/Nt×100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。输入格式:输入第一行给出一个正整数N(≤50),是集合的个数。随后N行,每行对应一个集合。每个集合首先给出一个正整数M(≤104),是集...原创 2019-03-26 13:01:24 · 164 阅读 · 0 评论 -
牛客寒假算法基础集训营4-J-Applese 的减肥计划
链接:https://ac.nowcoder.com/acm/contest/330/J来源:牛客网 已知 Applese 两只手分别产生的力的大小,以及它们之间的夹角,试求两力合力的大小。输入描述:仅一行三个整数 f1,f2,af1,f2,a,分别表示两只手产生的力的大小以及它们之间的夹角。输出描述:输出一个实数表示两力合力的大小,要求相对误差或绝对误差不超过 10−...原创 2019-01-29 20:55:19 · 294 阅读 · 0 评论 -
无穷大为什么是INF = 0x3f3f3f3f ?
转自 http://aikilis.tk/如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值(2147483647)。如果这个无穷大只用于一般的比较(比如求最小值时min变量的初值),那么0x7fffffff确实是一个完美的选择,但是在更多的情况下,0x7fffffff并不是一个好的选择。...转载 2018-11-19 19:54:18 · 211 阅读 · 0 评论 -
P1598 垂直柱状图
题目题目描述写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过100个字符),然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。输入输出格式输入格式: 四行字符,由大写字母组成,每行不超过100个字符 样例THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.THIS IS AN EXAMPLE TO原创 2018-03-23 09:30:23 · 789 阅读 · 1 评论 -
HDU - 2039 判定三角形
题目给定三条边,请你判断一下能不能组成一个三角形。 Input 输入数据第一行包含一个数M,接下有M行,每行一个实例,包含三个正数A,B,C。其中A,B,C <1000; Output 对于每个测试实例,如果三条边长A,B,C能组成三角形的话,输出YES,否则NO。 Sample Input 2 1 2 3 2 2 2 Sample Output NO YES想法java代码i原创 2017-11-04 16:09:44 · 435 阅读 · 0 评论 -
任意多边形面积
题目多边形形状的一块地,原本是linle 的,现在就准备送给你了。不过,任何事情都没有那么简单,你必须首先告诉我这块地到底有多少面积,如果回答正确才能真正得到这块地。 发愁了吧?就是要让你知道,种地也是需要AC知识的!以后还是好好练吧… Input 输入数据包含多个测试实例,每个测试实例占一行,每行的开始是一个整数n(3<=n<=100),它表示多边形的边数(当然也是顶点数),然后是按照逆原创 2017-11-04 15:55:36 · 346 阅读 · 0 评论 -
HDU - 2035 人见人爱A^B
题目求A^B的最后三位数表示的整数。 说明:A^B的含义是“A的B次方” Input 输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。 Output 对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。 Sample Input 2 3 12 6 6789 1原创 2017-11-04 15:10:19 · 168 阅读 · 0 评论 -
HDU - 2032 杨辉三角
题目还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 Input 输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数。 Output 对应于每一个输入,请输出相应层数的杨辉三角,每一层的整原创 2017-11-04 14:36:13 · 334 阅读 · 0 评论 -
HDU - 2030 汉字统计
题目统计给定文本文件中汉字的个数。 Input 输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。 Output 对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。 [Hint:]从汉字机内码的特点考虑~ Sample Input 2 WaHaHa! WaHaHa! 今年过节不说话要说只说普通话WaHaHa! WaHaHa! 马上就要期末考试了Are you原创 2017-11-04 13:23:12 · 180 阅读 · 0 评论 -
HDU - 2019 数列有序!
题目有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。 Input 输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。 Output 对于每个测试实例,输出插入新的元素后的数列。 Sample Input 3 3 1 2 4原创 2017-11-04 10:06:59 · 573 阅读 · 0 评论