题解列表

筛选

用区间DP解决

解题思路:所谓翻转,其实就是首尾相比,一段子串ij,如果右端点大于左端点,自然翻转后成立,右端点小于左端点翻转后肯定不成立,右端点等于左端点翻转前后的首尾字符必然相等,只需比较i+1,j-1的大小。先枚举长度,再枚举右端点1.右端点大于左端点则dp[i][j]=1;2.右端点等于左端点,

将上述NO情况分类为两种(c++)

摘要:结果输出NO的情况只有两种:1.能形成矩形,但矩形有多个,解法:统计每个字符出现的次数,之后dfs遍历的过程中进行比较就可以了2.不能形成矩形,这时候假设他是一个矩形,那么矩形中一定要有!=a[i……

最简单的方法

解题思路:运用sort函数注意事项:sort函数是由小到大排序逆序输出排序后的m个数组元素即可参考代码:#include#defineintlonglong#defineendl'\n'usingnamespacestd;signedmain(){ios:

十五届省赛真题-R 格式

解题思路:找到小数点位置并移除小数点移除前导0将字符串转换为整数数组通过n次乘以2来实现乘以2^n计算新的小数点位置进行四舍五入操作截断小数部分,只保留整数部分输出结果参考代码:#includeusingnamespacestd;voidmultiplyBy2ToN(st

巧用string和map

摘要:解题思路:利用string特性就行,然后用map来计数参考代码:#include<bits/stdc++.h>usingnamespacestd;map&l……

数字接龙-暴力

摘要:注意事项:找到一个答案就停止深度遍历避免超时参考代码:#include<bits/stdc++.h>usingnamespacestd;type……

如何根据题意找到dp的转移方程的分析步骤

解题思路:因为他的位置不会改变,所以我们肯定需要遍历一次,我们要求的是最少删除次数,我们很容易就能想到这是一个dp题,那我们要如何构造这个状态转移方程呢,我们需要注意的是,它只要前一个数列的末尾和当前数列的第一位相同就可以进行连接起来,所以我们可以用两个字符串来进行快速访问第一个和最后一个字符,