acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 资讯
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 题解

    其实暴力枚举子集+判回文串就能过,不会爆 #include<bits/stdc++.h> using namespace std; string s; int k,ans; bool check(int l,int r){ int cnt=0; for(int i=l,j=r;i<=(l+r)/2&&j>=(l+r)/2;i++,j--){ if(s[i]!=s[j])cnt++; } return cnt<=k; } int main(){ cin>>s>>k; for(int i=0;i<s.size();i++){ for(int j=i;j<s.size();j++){ if(check(i,j)){ ans++; } } } cout<<ans; return 0; }

    userId_undefined
    CHYYYYYYYYYYYYY
    出道萌新时空双修者倔强青铜贪心·贪心尝试者递归·套娃学徒快乐小狗
    19阅读
    0回复
    1点赞
  • 区间 DP

    区间 DP(预处理) 思路 设 cost[ l ][ r ] 表示子串 s[ l . . . r ] 变成回文串的最小修改次数。 状态转移: * 若 s[l]=s[r],两端已经对称,问题缩为 s[ l + 1 . . . r − 1 ] * 若 s[l]=s[r] ,必须修改其中一端,次数 +1 ,cost[ l ][ r ] = cost[ l + 1 ][ r − 1 ] + [ s[ l ] = s[ r ] ] 按子串长度从小到大枚举。

    userId_undefined
    ヾ(≧▽≦*)o
    9阅读
    0回复
    1点赞
  • A138582.皓仔的回文子串

    广告

    userId_undefined
    林睿聪
    字符串·魔法使空间掌握者循环·循环打卡人分支·分支解题者I/O·IO入门者位操作忍者
    6阅读
    0回复
    1点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页