ACM
文章平均质量分 53
MasterTomato
此人真的很懒,什么都没写
展开
-
LeetCode刷题总结
这两道题都是使用递归的方法去判断树的问题,这里要注意递归的停止条件和几种特殊情况的判断。原创 2022-10-21 11:49:12 · 249 阅读 · 0 评论 -
牛客小白月赛39 部分题解
比赛传送门:https://ac.nowcoder.com/acm/contest/11216A题给你一堆向量和一个目标向量,问你这一堆向量中的某两个的和能不能得到和目标向量平行的向量。首先回顾一下向量的加法(x1 , y1) + (x2 , y2) == (x1 + x2 , y1 + y2)由于数据量较小,所以可以将所有的向量归一化,相当于都平移到原点,从原点开始。然后分别计算两两向量之和,判断是否和目标向量平行即可,即yy * ob.x == xx * ob.y 能用乘法就别用除法,会原创 2021-10-25 15:38:35 · 196 阅读 · 0 评论 -
最长回文子串(dp解法)
题目大意题目传送门:https://leetcode-cn.com/problems/longest-palindromic-substring/给你一个字符串,寻找其中最长回文子串并输出。DP解法首先对题目进行分析,这个最长的回文子串有什么特点?对于字符串str,假设dp[i,j]=1表示str[i…j]是回文子串,那个必定存在dp[i+1,j-1]=1。这样最长回文子串就能分解成一系列子问题,可以利用动态规划求解了。首先构造状态转移方程:则整个方程的初始状态应该是这样的:意思就是单个字符原创 2021-08-11 21:52:05 · 1337 阅读 · 0 评论 -
2021.07.22力扣刷题(二分/优先队列)
题目:4. 寻找两个正序数组的中位数题目传送门:https://leetcode-cn.com/problems/median-of-two-sorted-arrays/思路看完题目之后,觉得很纳闷,为什么这样题目难度级别是困难???看了题解之后发现大意了,只想出了最最基础的。我的第一个思路就很暴力,直接使用优先队列合并数组,然后计算出中位数即可,直接上代码class Solution {public: double findMedianSortedArrays(vector<in原创 2021-07-22 21:53:04 · 144 阅读 · 0 评论 -
2021.07.21力扣刷题整理(滑动窗口)
题目:无重复字符的最长子串题目传送门题目大意:给你一个字符串,让你找出该字符串无重复字符的最长字串,注意是字串(需要连续),而不是子序列。思路一:暴力双重循环,直接上代码,注意长度为1的特殊情况。class Solution {public: int lengthOfLongestSubstring(string s) { set<char> ss; int num = 0; if(s.length()==1)原创 2021-07-21 21:20:08 · 159 阅读 · 0 评论 -
lower_bound( )和upper_bound( )的常见用法
ower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的。在从小到大的排序数组中,lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。upper_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于num的数字,找到返转载 2021-04-14 18:27:11 · 137 阅读 · 0 评论 -
CodeCraft-21 and Codeforces Round #711 (Div. 2) B. Box Fitting(贪心、优先队列的用法)
题目传送门:https://codeforces.com/contest/1498/problem/B题目大意:给你一堆高度为1,长为2的幂的方块,再给你一个长度固定为w的盒子。问这个盒子的高度至少为多少才能把上面所有的方块都放进去?注意:你不能旋转方块!也就是说必须水平放置。解题思路:我们不用考虑方块的高度,因为都是1,只需要考虑长度能不能放下就行。首先把所有方块按照从大到小进行排序,然后开一个优先队列(默认从大到小排序),先将长度为w的空盒子放进去。然后从最大的开始比较,如果队首的值小于当前这个原创 2021-03-30 09:23:48 · 515 阅读 · 0 评论 -
蓝桥杯试题 基础练习 分解质因数(内含快速判断素数)
题目大意求出区间[a,b]中所有整数的质因数分解。思路先筛出所有的素数,再进行分解。AC代码#include<bits/stdc++.h>#define ll long longusing namespace std;bool isprime(int n)//快速判断素数模板{ if(n==2||n==3) { return true; } if(n%6!=1&&n%6!=5) { return false; } int temp = (i原创 2021-03-24 09:20:07 · 131 阅读 · 0 评论 -
Codeforces Educational Codeforces Round 106 (Rated for Div. 2) A—C题解
比赛传送门:https://codeforces.com/contest/1499标题原创 2021-03-20 15:05:04 · 323 阅读 · 1 评论 -
洛谷P1551 亲戚 (并查集板子)
传送门:https://www.luogu.com.cn/problem/P1551AC代码(并查集板子)#include<bits/stdc++.h>#define ll long long#define maxn 5005 /*#include <iomanip>cout<<setiosflags(ios::fixed)<<setprecision(n);//保留n位小数输出 */ using namespace std;int pr原创 2021-03-16 17:15:25 · 215 阅读 · 0 评论 -
ACM算法——搜索篇(1)
写在前面人有的时候总是得面对选择断断续续接触ACM也有差不多两年的时间了,但是还没有系统学习过什么算法,趁着现在还有些时间,把基础的算法弄清楚吧。先从使用较为广泛的搜索算法开始吧!DFS(深度优先搜索)这里讲的dfs是最最最最最基础的dfs,不接触剪枝和回溯。所谓dfs,就是沿着一个点一直搜索其所有的可能性,搜到头之后再回溯到上一个状态继续搜索别的可能性。本来想画个图说的清楚一点的,但是估计也没人看,所以就省略了,是一个二叉树遍历的图。这里最重要的就是回溯也就是return的条件,这是整个dfs原创 2021-03-10 18:51:04 · 273 阅读 · 0 评论 -
P1923 【深基9.例4】求第 k 小的数——快速排序、二分
题目传送门:https://www.luogu.com.cn/problem/P1923题目概述本题的要求是在很多数中找出第k小的数,由于本题的数很多,所以不能直接用sort排序(会超时)。思路分析既然不能用sort(时间复杂度是nlogn),那么就要想办法将时间复杂度降到O(n)。首先想到的方法肯定是二分,也就是快速排序。这里我们先回顾一下快速排序的过程,首先是选择一个mid下标值,然后以这个mid值为基准,将所有的数分成小于mid和大于mid的两堆,然后整一堆数就分成了两部分。然后比较一下当前的原创 2021-03-01 22:09:34 · 536 阅读 · 0 评论 -
天梯赛 L1-039 古风排版 (20分)
题目传送门:https://pintia.cn/problem-sets/994805046380707840/problems/994805091888906240题目描述思路用一个二维数组,将所给的字符串按照规定排序,按照要求输出即可。需要注意的是,本题的行数是固定的,列数是变化的。如果长度不是正好满足行数的话,要补上相应的空格。AC代码#include<bits/stdc++.h>#define ll long long using namespace std;int原创 2020-11-23 15:58:47 · 320 阅读 · 0 评论 -
天梯赛练习题 L1-006 连续因子 (20分)(暴力)
题目传送门:https://pintia.cn/problem-sets/994805046380707840/problems/994805138600869888题目描述思路根据题意得,13!(13的阶乘)大于2^31。因此该数最多是连续12个因子相乘,也就是12!(12的阶乘)。由于位数较短,可以采用暴力的方法进行求解。具体思路如下:1、由于要找最长连续序列。我们要从len=12开始往下遍历,这样找到的第一个满足要求的序列一定是最长的,此时直接break即可,无需消耗更多的时间。2、对于原创 2020-11-22 11:44:02 · 573 阅读 · 0 评论 -
牛客算法周周练15——A、B
题目传送门:https://ac.nowcoder.com/acm/contest/6290A.数列下标(签到)题目大意:解题思路:纯模拟,从这个数开始向后遍历,找到第一个比它大的数,记录下标。给数组b初始化为0的话如果找不到比它更大的数直接就是0,不用额外处理。AC代码:#include<bits/stdc++.h>#define ll long longusing namespace std;int main(){ ll n=0; ll a[10005]={0},原创 2020-07-18 22:31:11 · 394 阅读 · 0 评论 -
Codeforces Round #636 (Div. 3)——A到C题解
竞赛传送门/;https://codeforces.com/contest/1343A. Candies(思维)题目大意:有一个等比数列,x,2x,4x……,它们的前n项和为Sn,现在给你Sn的值,让你求出x的值。解题思路:首先知道等比数列的求和公式由此可以将a1的表达式写出来,因为这里的公比是2,所以就是让n从2开始迭代(从1的话分母是1,跟谁相除都是个整数),直到上面这个表达...原创 2020-04-23 09:18:11 · 205 阅读 · 0 评论 -
“科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛前六题题解
竞赛传送门:https://ac.nowcoder.com/acm/contest/5278A.组队比赛(签到题)题目大意:给你四个数字,两两组合,问怎么样组合能使得两组的绝对值的差最小。解题思路:排序一下,中间的两个为一组,最大和最小的为另一组。AC代码:#include <bits/stdc++.h>#define PI 3.14159265358979323846...原创 2020-04-19 11:52:26 · 403 阅读 · 0 评论 -
牛客算法周周练1——A. Maximize The Beautiful Value(思维+前缀和)
题目大意:题目传送门:https://ac.nowcoder.com/acm/contest/5086/A给你一个非递减的数字序列和要移动的步数k,每个数字所在的位置对应它的权值(第一个数字的权值是1,第二个数字的权值是2……),注意这个权值只跟数字的位置有关,而跟数字本身无关。只能移动一个数字,向前移动k步,问怎么样移动能使得整个数字序列的加权和最大?这个最大值是多少?题目分析:题解思路...原创 2020-04-09 21:25:04 · 167 阅读 · 0 评论 -
牛客算法周周练1——E.幸运数字(思维+树状数组)
题目描述:题目传送门:https://ac.nowcoder.com/acm/contest/5086/E样例说明:x=2,3,4时next(x)=4;x=5,6,7时next(x)=7,和位4+4+4+7+7+7=33.题目分析:因为幸运数字只由两个数字构成,如果直接暴力的话由于数据范围比较大,会超时。所以通过一些简单的推导不难看出,这个数字如果有n位的话,n位的幸运数字共有2^n种结...原创 2020-04-09 21:13:34 · 1063 阅读 · 0 评论 -
求多个数的最小公倍数
#include <bits/stdc++.h>#define PI 3.14159265358979323846 using namespace std;typedef long long ll;int main(){ static int a[100000]={0}; int j=1,t=0; while(scanf("%d",&a[j])!=EOF) {...原创 2020-02-26 22:50:26 · 389 阅读 · 0 评论 -
2020牛客寒假算法基础集训营6——ADFGJ简要题解
竞赛传送门:https://ac.nowcoder.com/acm/contest/3007A.配对(贪心+思维)题目分析及AC代码:题解:作者:珩月链接:https://ac.nowcoder.com/discuss/367149?type=101&order=0&pos=9&page=2来源:牛客网我们要使得第K大的和尽可能大,显然可以贪心:首先,组成...原创 2020-02-16 20:54:56 · 313 阅读 · 0 评论 -
2020牛客寒假算法基础集训营5——部分题解及AC代码(F——J、无G)
F.碎碎念(dp+前缀和)题目分析及AC代码:本题采用dp的思路去解题,分析都写在代码的注释里了,话不多说,直接上代码。#include <bits/stdc++.h>using namespace std;const int maxn=1e5+5;const int Mod=1e9+7;int dp[maxn];int main() { int x,q,l...原创 2020-02-16 10:12:04 · 646 阅读 · 0 评论 -
2020牛客寒假算法基础集训营5——部分题解及AC代码(A——E、无C)
竞赛传送门:https://ac.nowcoder.com/acm/contest/3006A.模板(字符串、水题)题目分析及AC代码:就是一个字符串比较,看看两个字符串中有多少个不同的字符。我所采用的办法是将短的那个字符串后面补上‘+’符号,然后比较两个字符串的不同字符的数量即可。但是用string谜之运行错误,故用char数组代替string。#include<bits/std...原创 2020-02-14 23:51:57 · 231 阅读 · 0 评论 -
2020牛客寒假算法基础集训营4(A—D)简要题解及AC代码
竞赛传送门:https://ac.nowcoder.com/acm/contest/3005A.欧几里得(规律)题目分析及AC代码:打表找规律,可以发现结果是一个斐波那契数列:1,3,5,8,13,21……输出对应的结果即可。#include<bits/stdc++.h>#define ll long longusing namespace std;int main(...原创 2020-02-12 22:12:26 · 175 阅读 · 0 评论 -
2020牛客寒假算法基础集训营2(部分题解及代码)
A.做游戏(签到+贪心)AC代码:#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<set>#include<string> #include<vector>#include<stac...原创 2020-02-07 22:56:16 · 190 阅读 · 0 评论 -
Codeforces Round #616 (Div. 2)——A、B、C简要题解
题目传送门:https://codeforces.com/contest/1291/A. Even But Not Even(思维+前缀和)题目大意:给你一串数字,问你能不能通过去掉几个数字(也可以一个都不去)来将这个数变成一个所有数字之和是偶数且这个数本身是个奇数的。比如123就是这样的数字。如果可以的话输出这个数字,如果不能的话输出-1,同一串数字可能有多个结果,输出任意一个均可。题...原创 2020-02-03 22:32:38 · 171 阅读 · 0 评论 -
Codeforces Round #608 (Div. 2)——A、B、C题解
题目传送门:https://codeforces.com/contest/1271/A. Suits(贪心)题目大意:第一个套餐是一条领带+一条夹克能赚e元,第二个套餐是一个背心+一个围巾+一件夹克能赚f元。现在给你a条领带,b条围巾,c件背心,d件夹克,问最多能赚多少钱。题目分析:本题采用贪心的策略,哪个赚的多先紧着哪个套餐生产,如果有剩余的材料,再尽力去生产另一个套餐。由题意可知,套...原创 2020-02-03 13:20:40 · 200 阅读 · 0 评论 -
Codeforces Global Round 6——A、B、C题题解
A. Competitive Programmer(思维)题目大意:给你一堆数字,让你判断这一堆数字的排列组合中有没有能整除60的数,如果有,输出red,否则输出cyan。题目分析:能被60整除的数有以下几个特点:1、一定有0。2、除掉一个0之外,剩下数字的排列组合能被6整除,而能被6整除的数也有以下两个特点:一定是偶数、这个偶数能被3整除(各个数字之和是3的倍数)。要注意这两种特殊...原创 2020-02-01 18:15:51 · 197 阅读 · 0 评论 -
Educational Codeforces Round 78 (Rated for Div. 2)——A、B题简要题解
题目传送门:https://codeforces.com/contest/1278/problem/A题目传送门:https://codeforces.com/contest/1278/problem/BA. Shuffle Hashing(思维+暴力)题目大意:给你两个字符串,看第二个字符串中是否包含第一个字符串或者其相似串,相似串的定义是:两个字符串仅仅是字符的顺序不相同,其余均相同。...原创 2020-01-29 21:38:58 · 194 阅读 · 0 评论 -
Codeforces Round #614 (Div. 2)——A、B、C题题解
题目传送门:https://codeforces.com/contest/1293A. ConneR and the A.R.C. Markland-N(思维+STL)题目大意:一栋楼有n层,每一层有个饭店,有一个现在在第s层,有k个层数的饭店关门了,问现在他要去最近的饭店吃饭最少要爬(或者下)几层楼。解题思路:因为n的值很大(1e9),所以不要想试图开一个数组去存,于是就想到了用STL...原创 2020-01-23 22:42:04 · 230 阅读 · 0 评论 -
Educational Codeforces Round 80 (Rated for Div. 2)——A、B题题解
题目传送门:https://codeforces.com/contest/1288/problem/A题目传送门:https://codeforces.com/contest/1288/problem/BA. Deadline(思维)题目大意:有一台机器,原来需要运行d天能完成一件工作,如果你用x天去优化这个机器,则这台机器只需要ceil(d/(x+1))天就能完成这件工作,但是你不能边优...原创 2020-01-16 22:16:41 · 111 阅读 · 0 评论 -
Codeforces Round #613 (Div. 2)——C. Fadi and LCM
题目大意:题目传送门:https://codeforces.com/contest/1285/problem/C给你一个数字n,这个数字是某两个数字(假设为a,b)的最小公倍数,求所有可能的max(a,b)的最小值。并输出此时的a,b例如:1 6 和 2 3 的最小公倍数都是6,而max(1,6)=6>max(2,3)=3所以我们要输出2 3.题目分析:最小公倍数满足...原创 2020-01-12 21:25:34 · 121 阅读 · 0 评论 -
2020湖南大学程序设计竞赛新生赛部分题解(含AC代码)
竞赛地址:https://ac.nowcoder.com/acm/contest/3674#question全部题解地址:https://ac.nowcoder.com/discuss/361704?type=101&order=0&pos=6&page=0 A.The GCD of Fibonacci Numbers(斐波那契数列性质)题目大意:给你两个数字m,n...原创 2020-01-12 15:44:19 · 1334 阅读 · 0 评论 -
Codeforces Round #613 (Div. 2)——B. Just Eat It!(最大子串)
题目大意:题目传送门:https://codeforces.com/contest/1285/problem/B给你一串数字,有正有负,问所有数字的和是不是严格大于任何一个子段(不包括全段)的和。题目分析:本题思路很简单,就是寻找最大子串的值与全串的值相比较,如果全串大于最大字串,则输出“YES”,否则输出“NO”。寻找最大字串的思路是:先记录整个串开始的位置,然后用一个值sum来表示从...原创 2020-01-12 14:29:49 · 230 阅读 · 0 评论 -
Codeforces Round #609 (Div. 2)——C. Long Beautiful Integer(思维)
题目大意:题目传送门:https://codeforces.com/contest/1269/problem/C给你一个由n个数字组成的大整数和一个k值,想请你找到大于等于这个数字的最小的由k个数字循环组成的数,并输出它的位数和它的值。比如样例2中:给定的数字为1234,k=2,则满足题意的数值应该为1313(1313是大于等于1234的最小的由k=2个数字1和3循环组成的数)。题目分析:...原创 2020-01-10 19:54:34 · 232 阅读 · 0 评论 -
Codeforces Round #609 (Div. 2)——B. Modulo Equality(思维+巧妙降低时间复杂度)
题目大意:题目传送门:https://codeforces.com/contest/1269/problem/B给你两组数字,每一组n个数字和一个值m,第一组数字加上一个数的结果%m和第二组数字一样(顺序可以不同),求这个数字的最小值。题目分析:虽然时间给了3s,但是暴力(一一对应)还是会超时。所以我们就要像一个方法来降低一下时间复杂度。这里采用的方法是:只用a[0]和b中的每个一数字进行...原创 2020-01-10 15:22:23 · 221 阅读 · 0 评论 -
Codeforces Round #610 (Div. 2)——B2. K for the Price of One (Hard Version)
题目大意:题目传送门:https://codeforces.com/contest/1282/problem/B2你有p个硬币,可以去买东西,买东西的时候有优惠,你可是同时买k件东西,支付其中最贵物品的价格。问最多你能买多少东西。题目分析:建立一个sum数组,用来表示买前n件东西所花的钱。建立sum数组的时候要用贪心的思想,只要能用优惠买的就用优惠买。具体实现方法是先将每个东西的价格排序,...原创 2020-01-09 21:45:25 · 134 阅读 · 0 评论 -
Educational Codeforces Round 79 (Rated for Div. 2)——B. Verse For Santa、C. Stack of Presents简要题解
题目传送门:https://codeforces.com/contest/1279/problem/B题目传送门:https://codeforces.com/contest/1279/problem/C题目大意:B题: 你要给圣诞老人唱n段诗,每段都有其时长,但是圣诞老人只有耐心听s分钟,而且唱诗是有顺序的,你只能跳过其中一段。问你最多能给圣诞老人唱几段诗?C题: 给出一个栈中的礼物,编...原创 2020-01-08 19:25:16 · 237 阅读 · 0 评论 -
CodeForces Good Bye 2019——C. Make Good(异或的应用)
题目传送门:https://codeforces.com/contest/1270/problem/C题目内容Let’s call an array a1,a2,…,am of nonnegative integer numbers good if a1+a2+⋯+am=2⋅(a1⊕a2⊕⋯⊕am), where ⊕ denotes the bitwise XOR operation.For...原创 2020-01-07 21:55:39 · 282 阅读 · 0 评论 -
__int128取代欧拉降幂
找到了心仪的小姐姐月月后,华华很高兴的和她聊着天。然而月月的作业很多,不能继续陪华华聊天了。华华为了尽快和月月继续聊天,就提出帮她做一部分作业。月月的其中一项作业是:给定正整数A、B、P,求ABmodPABmodP的值。华华觉得这实在是毫无意义,所以决定写一个程序来做。但是华华并不会写程序,所以这个任务就交给你了。因为月月的作业很多,所以有T组询问。一开始以为一个欧拉降幂+大数取模就够了,结...转载 2020-01-05 19:39:59 · 107 阅读 · 0 评论