算法学习
文章平均质量分 58
前端烨
这个作者很懒,什么都没留下…
展开
-
力扣246-丑数2
【代码】力扣246-丑数2。原创 2024-04-24 21:14:46 · 339 阅读 · 0 评论 -
力扣2044-统计按位或能得到最大值的子集数目
给你一个整数数组nums,请你找出nums子集可能得到的,并返回按位或能得到最大值的。如果数组a可以由数组b删除一些元素(或不删除)得到,则认为数组a是数组b的一个。如果选中的元素下标位置不一样,则认为两个子集。对数组a执行,结果等于(下标从开始)。原创 2024-04-24 21:13:57 · 338 阅读 · 0 评论 -
ACwing897-最长公共子序列
链接:https://www.acwing.com/problem/content/898/来源:ACWing 算法基础课给定两个长度分别为 N 和 M 的字符串 A 和 B,求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。输入格式第一行包含两个整数 N 和 M。第二行包含一个长度为 N 的字符串,表示字符串 A。第三行包含一个长度为 M 的字符串,表示字符串 B。字符串均由小写字母构成。输出格式输出一个整数,表示最大长度。数据范围1≤N,M≤1000输入样例:输出样例:算法描述状态表示原创 2022-07-12 09:30:31 · 152 阅读 · 1 评论 -
数据结构总结
数据结构是带有结构特性的数据元素的集合。在面向过程编程中,我们通常使用顺序、选择、循环三种结构以及变量来进行编程。但是有些时候,这三种方法加上单一的变量在解答某些问题时显得相形见绌,所以这个时候就需要一些辅助的结构来帮助运算,这种结构就是数据结构。数据结构在数据的存储和查找时总得较多,比如编程序存储一些数据时,不可能把这些数据存放在固定的空间里,因为这样会很浪费存储空间,这时就需要用到数据结构里的链表,动态存储。指数据对象中数据元素之间的相互关系指数据的逻辑结构在计算机中的...原创 2022-06-22 21:38:18 · 98 阅读 · 0 评论 -
POJ1699-DNA
title: POJ1699-DNAtags:本题使用预处理路径增加长度的办法来解题具体为:设立一个二维数组,来存取i,j字符顺序排列下 算出i,j的长度的重叠部分,然后再用j - 重叠部分算出所需要增加的长度使用DFS来深度搜索最小值...原创 2022-06-22 21:35:02 · 138 阅读 · 0 评论 -
POJ1011-Sticks
title: POJ1011-Stickstags:来源ACwing167-木棒POJ1011-Sticks本题被称为是剪枝神题之一,因为剪枝角度多达5种,且难以想象。常规的深搜,普通剪枝无法完成此题很有可能会导致超时。剪枝五种方法列举java代码c++代码...原创 2022-06-22 21:34:00 · 87 阅读 · 0 评论 -
牛客小白月赛-环上食虫
title: 牛客小白月赛-环上食虫tags:链接:https://ac.nowcoder.com/acm/contest/11229/D来源:牛客网牛牛参加了牛妹的派对。牛牛面前有一个圆桌,圆桌边缘按顺序摆上了 n 个蛋糕(第一个蛋糕和第 n个蛋糕相邻)。每个蛋糕都有一个饱腹值和奶油含量。牛牛不喜欢吃奶油,所以他想要在保证自己能吃饱(所吃蛋糕的饱腹度的和大于等于 sss)的情况下,所选择的蛋糕中奶油含量最大的那一个的奶油含量越低越好。我们知道,牛牛一直都是个绅士。所以他选择的蛋糕应该是相邻的(也原创 2022-06-22 21:32:25 · 217 阅读 · 0 评论 -
一维前缀和
输入一个长度为 nn 的整数序列。接下来再输入 mm 个询问,每个询问输入一对 l,rl,r。对于每个询问,输出原序列中从第 ll 个数到第 rr 个数的和。第一行包含两个整数 nn 和 mm。第二行包含 nn 个整数,表示整数数列。接下来 mm 行,每行包含两个整数 ll 和 rr,表示一个询问的区间范围。共 mm 行,每行输出一个询问的结果。1≤l≤r≤n1≤l≤r≤n,1≤n,m≤1000001≤n,m≤100000,−1000≤数列中元素的值≤1000−1000≤数列中元素的值≤1000输出样原创 2022-06-21 17:05:37 · 77 阅读 · 0 评论 -
算法基础——N皇后
力扣版本+acwing版本不同版本的N皇后写法,进行堆n皇后的深入解析原创 2022-06-21 17:03:22 · 81 阅读 · 0 评论 -
轻松学会哈夫曼树
笔者使用来自于acwing-148. 合并果子这题来对哈夫曼树的构建及其使用做出声明在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n−1 次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。假定每个果子重量都为 1,并且已知果子的种类数和每原创 2022-06-21 16:22:33 · 74 阅读 · 0 评论 -
牛客小白月赛-说谎的机器
使用差分,来源:牛客网牛牛在和它的机器玩猜数字,可是机器好像坏了……具体来说,机器首先会随机生成一个 1…n的数字 k,紧接着机器会给牛牛 m 条指令,指令的格式有如下三种:1、op x y;这里,op=1 代表有 x≤k≤y2、op x;这里, op=2 代表有 x≤k≤n3、op x;这里, op=3 代表有 1≤k≤x牛牛知道这台机器已经学会了说谎,所以它所描述的指令可能都是错误的,现在牛牛想知道机器错误...原创 2022-06-21 16:18:40 · 437 阅读 · 0 评论 -
cf1676-D-X-Sum
time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputTimur’s grandfather gifted him a chessboard to practice his chess skills. This chessboard is a grid $aaa$ with $nnn$ rows and $mmm$ columns with each cell原创 2022-06-21 16:14:46 · 206 阅读 · 0 评论 -
ACwing4269-校庆
本题的输入输量巨大,而输出量却相对较少。在java编程中对于巨大的输出,我们应该尽量选择使用BufferedReader,而不是使用Scanner进行输入。两者的输入输出效率差异巨大,原创 2022-06-16 20:58:52 · 306 阅读 · 0 评论