ANS
  • 2025-01-10牛客练习赛133
    A万年沉睡的宝藏题意:有一些岛和一些宝藏,都用字符串来描述,会有4个操作:给一个岛加一个宝藏,问这个岛有多少宝藏,某个宝藏是否在这个岛上,有多少岛上有至少一个宝藏。用map存string和set就行了,注意特判没有这个岛的情况。点击查看代码voidsolve(){intq;std::cin>>q
  • 2025-01-10每日温度(单调栈)
    题目链接:https://leetcode.cn/problems/daily-temperatures/题意:给你一个每日气温数组,请你确定每个位置右边是否比自己大的元素,如果无,返回0。否则,返回两者下标之差思路:单调栈(这就好似给了数组中每个位置做波峰或波谷的机会)(ps:单调栈一定存的是下标i)classSolution{public
  • 2025-01-10P7213 [JOISC2020] 最古の遺跡 3
    考虑另一种刻画过程的方式:设\(a_i\)为原序列,\(b_i\)为最终序列,则有:从后往前扫描,\(b_i\)会持续降低到\([i+1,n]\)中未出现\(b_i\)。考虑dp,设\(f(i,j)\)表示考虑了\([i,n]\),当前在\(b\)中\(1\simj\)都出现过的方案数。这里要区分相等的两个数,且只填了\([1,
  • 2025-01-10单调栈板子
    单调栈用于求解数组每个位置上左边/右边离自己最近的且严格小于/大于自己位置上的数的位置时间复杂度O(N)(每个元素下标进栈一次出栈一次)元素下标能表示的含义比元素本身要多(ps:注意数组长度,过大就要开到全局变量中,否则异常退出orz)方法(求每个位置上离自己最近且严格小于自己
  • 2025-01-10复试模板
    进制转换stringconversion(stringnum,intm,intn){intl=num.size(),k=0;stringans="";for(inti=0;i<l;){k=0;for(intj=i;j<l;j++){intt=(k*m+num[j]-'0')%n;num[j]=
  • 2025-01-10深圳大学-程序设计基础-OJ
    A.100到n以内的水仙花数题目描述若3位数ABC满足ABC=A3+B3+C3,则称其为水仙花数.例如:153=13+53+3^3,所以153是水仙花数.你的任务是输出100~n中所有的水仙花数.每行输出一个。输入输入n,表示100到n之间的范围输出请输出100~n中所有的水仙花数.每行输出一个.样例输出
  • 2025-01-10线段树+最大最小
    https://codeforces.com/contest/2057/problem/D#include<bits/stdc++.h>#definelcp<<1#definercp<<1|1#defineINF2e9usingnamespacestd;#defineendl'\n'usingll=longlong;usingpii=pair<int,int>;constdoub
  • 2025-01-09LeetCode Number.79 单词搜索
    classSolution{public:boolans;intdir[4][2]={{-1,0},{1,0},{0,-1},{0,1}};boolcheck(int&x,int&y,vector<vector<char>>&board){if(x<0||x>=board.size())returnfalse;if(y<0||y>=bo
  • 2025-01-09D. Smithing Skill 和 D. Grid Puzzle的题解
    D.SmithingSkill:https://codeforces.com/problemset/problem/1989/D思路:https://blog.csdn.net/weixin_73936404/article/details/140045020(看这位的博客吧,这个本人第一次写卡住了,题解就当复盘了)贪心:优先消耗值小的(花费和返回的差值)且门槛小的。代码:#include<bits/stdc
  • 2025-01-09G. D-Function 题解 (快速幂, 组合数学)
    原题链接:https://codeforces.com/contest/1985/problem/G题目:思路:要满足D(kn)==kD(n),k与n的每一位相乘都不能发生进位,k只能是一位数。考虑n的位数可能有1e9,所以用到了快速幂。代码:#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintmod
  • 2025-01-09leetcode131 分割回文串
    leetcode131思路:回溯比如说aab,对于每个元素currentNum,有两种选择:1.如果currentNum<len-1,可以将当前元素加入到currentStr中,然后dfs(start,currentNum+1)。而currentNum==len-1时不能dfs(start,currentNum+1),这样下一轮循环就执行以下代码了if(currentNum==len){ ans.add
  • 2025-01-09VP Codeforces Round 995 (Div. 3)
    A.PreparingfortheOlympiad题意,有两个数组a和b,如果你选了a数组中第i个,那么对手获得b数组第i+1个,求你们得分的差值最大。直接加上所有ai>bi+1的就行。点击查看代码voidsolve(){intn;std::cin>>n;std::vector<int>a(n),b(n);for(inti=0;
  • 2025-01-09200. 岛屿数量
    [题目链接](200.岛屿数量-力扣(LeetCode))解题思路:用感染函数,遇到1,岛屿数目就加1,然后递归把上下左右变成2(以免下次遇到相同的岛屿)代码classSolution:#感染函数,将[i,j]感染defprocess(self,grid,i,j):ifi<0ori>=len(grid)orj
  • 2025-01-09179. 最大数
    [题目链接](179.最大数-力扣(LeetCode))解题思路:x拼接y大于y拼接x后,那么x就应该放前面。自定义排序就行了。还要注意把前导0给去掉代码classSolution:defmyCompare(self,x,y):#比较两个字符串拼接后的结果ifstr(x)+str(y)>str(y)
  • 2025-01-08VP Codeforces Round 994 (Div. 2)
    A.MEXDestruction题意:给你一个数组,每次操作选择一个区间使这个区间变为区间mex,问最少操作使得数组全为0.容易发现,对任意一个区间,最多两次操作这个区间就会全变成0,于是我们想尽可能操作大的区间。但并不是直接操作整个数组一定更好,如果我们选择的区间里没有0,那么只需要一次操
  • 2025-01-08152. 乘积最大子数组
    [题目链接](152.乘积最大子数组-力扣(LeetCode))解题思路:子数组问题,考虑【以i结尾】结果是什么,求出所有的结果,最大的那个就是结果。【以i结尾】结果是什么?我们可以利用【i-1】计算过的内容。nums[i]如果是0,那么结果就是0nums[i]如果大于0,那么我们就希望得到【以i-1结尾
  • 2025-01-08全排列(递归)
    题目链接:https://leetcode.cn/problems/permutations/思路:只用题目给的nums数组进行递归,swap进行交换,注意还原现场classSolution{public:vector<vector<int>>permute(vector<int>&nums){vector<vector<int>>ans;f(nums,an
  • 2025-01-07interval coverage
    题意理解:给定一个区间,我们需要把这个区间覆盖掉。问最少需要的区间数目。当然我们会给定n个区间选择。假设全选都不能覆盖就输出−1-1−1
  • 2025-01-07子集(递归)
    题目链接:https://leetcode.cn/problems/subsets-ii/submissions/591733085/题意:给你一个数组,输出不同数字的组合(若两个组合都挑一个1,一个2,无论顺序如何,只输出一个)思路:先排序,将不同数字分组,再讨论每组选0,1,2,...n个的情况classSolution{public:vector<vector<int>>sub
  • 2025-01-071月7日
    上午思维题训练https://codeforces.com/contest/2026/problem/Chttps://codeforces.com/contest/2026/problem/Bhttps://codeforces.com/contest/2023/problem/Ahttps://codeforces.com/contest/2034/problem/D下午https://vjudge.net/problem/HDU-4612题意:有一个无向图,加
  • 2025-01-07【Day 11 LeetCode】二叉树的遍历
    一、二叉树的遍历二叉树的遍历主要分为深度优先遍历和广度优先遍历。深度优先是先往深处走,走到尽头返回;广度优先遍历是一层一层往下遍历。其中,深度优先遍历对应三种顺序,前序、中序、后序遍历,特点也很好记,就是根节点的位置。根节点位于前面就是前序,遍历顺序为根节点-左子
  • 2025-01-07最低票价(记忆化搜索/动态规划)
    题目链接:https://leetcode.cn/problems/minimum-cost-for-tickets/题意:给你一个数组days[]代表旅行的日期,一个数组costs[],可以分别选择1天或7天或30天的票,问你使旅行结束所需要的最低票价是多少示例1:输入:days=[1,4,6,7,8,20],costs=[2,7,15]输出:11解释:例如,这里有
  • 2025-01-07一维动态规划
    [Algo]一维动态规划fx1-暴力递归,fx2-自顶向底动态规划(记忆化搜索),fx3-自底向顶动态规划(严格位置依赖)1.最低票价//1.最低票价//https://leetcode.cn/problems/minimum-cost-for-tickets/description/intduration[3]={1,7,30};intf11(vector<int>&da
  • 2025-01-07MATLAB的cat函数
    在图像处理中,我们将图像导入MATLAB中,通常以矩阵的形式进行处理;在各种的处理过程中,我们不可避免的要完成对矩阵的拼接,主要分为纵向和横向两种方式。1、横向拼接横向拼接可以考虑使用:“,”或者“空格”;A=[111;222;333];B=[444;555;666];C=[777;888;99
  • 2025-01-07海贼OJ #251. 士兵 题解 排序+中位数(数学思维题)
    题目链接:https://oj.haizeix.com/problem/251解题思路:最短总距离是所有点到中位数的距离之和。对\(y\):排序求中位数。对\(x\):对\(x\)排序,然后对排序后的\(x_i-i\)排序,然后求最短距离。对\(x_i-i\)进行处理,能保证最终的\(x_i\)各不一样且相邻。示例程序:#inclu