用区间DP解决 解题思路:所谓翻转,其实就是首尾相比,一段子串ij,如果右端点大于左端点,自然翻转后成立,右端点小于左端点翻转后肯定不成立,右端点等于左端点翻转前后的首尾字符必然相等,只需比较i+1,j-1的大小。先枚举长度,再枚举右端点1.右端点大于左端点则dp[i][j]=1;2.右端点等于左端点, 题解列表 2025年03月30日 1 点赞 0 评论 710 浏览 评分:10.0
3164: 蓝桥杯2023年第十四届省赛真题-公因数匹配 解题思路:mmax存储结果左端点,mmin存储结果右端点,r存储当前数字左端点,l存储当前数字右端点1.采用map数组记录数的因子以及出现的位置。2.对于每个数字k,从2开始(题目要求)求它的因子j,去map中找是否已经存在:如果没有,则记录对应的编号;如果有并且不是当前编号, 题解列表 2025年03月30日 0 点赞 0 评论 739 浏览 评分:0.0
编写题解 1680: 数据结构-八进制数(注释清晰,简单易懂) 解题思路:注意事项:参考代码:#includeusingnamespacestd;#defineINITSIZE10#defineINCREM5typedefintElemType;typedefstruct//先定义栈, 题解列表 2025年03月30日 3 点赞 0 评论 648 浏览 评分:10.0
c++分数线划定 参考代码:#include#include#includeusingnamespacestd;//定义一个结构体来表示候选人structCandidate{intid;//报名号intscore;//笔试成绩};//自定义排序规则:先按成绩降序 题解列表 2025年03月29日 0 点赞 0 评论 606 浏览 评分:0.0
合并区域暴力解法 第一开始想的是无论两个矩阵怎样旋转或偏移,两个矩阵边缘如果有连通点都能连通,所以就没有考虑旋转和偏移,分别对两个矩阵四条边中为1的点进行DFS搜索,寻找两矩阵边缘最大连通区域。这样想其实至少有两个错误:1.题目理解的错误按照这种理解,只会统计新形成的最大连通区域, 题解列表 2025年03月29日 2 点赞 0 评论 695 浏览 评分:10.0
欧亚李鑫超级无敌暴力解法 解题思路:如果只有1枚硬币,不需要称量,直接返回0。如果有2枚或3枚硬币,只需要称量1次即可找出假币。递归关系:对于n枚硬币,每次称量可以将硬币分成三组,每组大约有3n枚硬币。如果n不能被3整除,会有两组数量相同,一组数量少1。通过一次称量,可以确定假币所在的组。 题解列表 2025年03月29日 3 点赞 0 评论 655 浏览 评分:10.0
连连看Python 摘要:n,m=map(int,input().strip().split())num=[list(map(int,input().split()))for _ in range(n)]sum=0…… 题解列表 2025年03月29日 1 点赞 0 评论 889 浏览 评分:2.0
动态窗口1111111 解题思路:注意事项:参考代码:#includeusingnamespacestd;intmain(){intn,k;cin>>n>>k;vectorarr(n);for(inti=0;i>arr[i];intq, 题解列表 2025年03月29日 0 点赞 0 评论 437 浏览 评分:0.0
用vector来写 摘要:#includeusing namespace std;int main(){ vector vec; int n,num; for(int i=0;i>num;…… 题解列表 2025年03月28日 1 点赞 0 评论 629 浏览 评分:0.0
两种算法,一个将元素向前挪,一个直接数0的个数 解题思路:注意事项:参考代码:①找到0所在的位置,然后将后面的元素向前挪一位每挪一位,序列长度要减一,不然会无限循环(因为最后的数一直是0)a=int(input())b=list(map(int,input().split()))defcom(a, 题解列表 2025年03月28日 0 点赞 0 评论 489 浏览 评分:0.0