HDU 6103 Kirinriki(尺取法)
来源:互联网 发布:java字符串数组 \0 编辑:程序博客网 时间:2024/05/17 02:11
先暴力,因为这题大致就相当于取最长“对称串”,这个“对称串”只要满足题目的d
#include<bits/stdc++.h>using namespace std;int t,m;int dp[10100];char str[10050];int main(){ scanf("%d",&t); while(t--) { scanf("%d",&m); scanf("%s",str); int len = strlen(str); int ans=0; int laz=0; for(int i=0;i<2*len-1;i++)//表示对称点,因为对称部分可以在两个字符之间的留白部分,所以循环两倍len,一定不要像manacher那样子加字符找,时间多四倍肯定不够。会TLE。 { int sum=0;int num=0; memset(dp,0,sizeof(dp)); if(i%2) { int ibegin=i/2; int iend = i/2+1; while(ibegin>=0&&iend<len) { dp[i/2-ibegin+1] = abs((int)(str[ibegin]-str[iend])); ibegin--;iend++; } int t=1;int s=1; for(;;)//尺取 { while(t<=i/2-ibegin&&sum<=m) { sum+=dp[t++]; } if(sum>m) ans=max(t-s-1,ans); else ans=max(ans,t-s); if(sum<m) break; sum-=dp[s++]; } } else { int ibegin=i/2-1; int iend = i/2+1; while(ibegin>=0&&iend<len) { dp[i/2-ibegin] = abs((int)(str[ibegin]-str[iend])); ibegin--;iend++; } int t=1;int s=1; for(;;) { while(t<=i/2-1-ibegin&&sum<=m) { sum+=dp[t++]; } if(sum>m) ans=max(t-s-1,ans); else ans=max(ans,t-s); if(sum<m) break; sum-=dp[s++]; } } } printf("%d\n",ans); }}
阅读全文
0 0
- HDU 6103 Kirinriki (尺取法)
- HDU 6103 Kirinriki(尺取法)
- HDU 6103 Kirinriki(尺取法)
- HDU 6103 Kirinriki(尺取法 思维)
- hdu 6103 Kirinriki(尺取法)
- hdu 6103 Kirinriki(尺取法)
- HDU 6103 Kirinriki(尺取法)
- -----尺取法 hdu 6103-Kirinriki
- HDU 6103 Kirinriki【尺取法】【思维题】【好题】
- hdu 6103 Kirinriki dp+二分 或 尺取法
- 2017多校六 1008题 hdu 6103 Kirinriki 尺取法
- hdu6103 Kirinriki(尺取法)
- HDU_6103 Kirinriki 【尺取法】
- Kirinriki(HDU 6103)
- HDU 6103 Kirinriki (字符串翻转 尺取法 17多校第六场)
- HDU 6103 Kirinriki(尺取)
- HDU 6103 Kirinriki(尺取)
- 【HDU 6103 Kirinriki】 & 尺取
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)新的异常解决方案
- 二叉树已知前序和后序求中序的相关补充
- Intent的多种作用(传activity&组件调用)
- Android MediaRecorder自定义分辨率
- ORACLE ORA-00600: 内部错误代码, 参数: [kokbcvb1]与merge into
- HDU 6103 Kirinriki(尺取法)
- A%BProblem——线性筛素数与前缀和
- Python3 打包成.exe(附IndexError: tuple index out of range错误解决)
- nosql-mongodb
- [Leetcode] Binary tree--112. Path Sum
- 【Ubuntu-Tensorflow】程序结束掉GPU显存没有释放的问题
- 【Python】Anaconda安装包
- 年薪30万-50万,站在风口上的大数据面临150万的人才紧缺
- 大端模式和小端模式详解