【链接】http://acm.hdu.edu.cn/showproblem.php?pid=6103


【题意】


给出一串字符串,从中选出两个不重叠的字符串,使得两个字符串的距离和 <= m 的最长字符串长度,A,B 串中的字符距离计算为 disA,B=∑i=0n−1|Ai−Bn−1−i|

【题解】


两个不相交的串s1和s2,它们之间必然有一个中心点,则我们可以枚举每一个中心点,然后往两边扩展这两个字符串.
这样有什么好处呢?
就是在扩展的时候,如果发现这个时候两个字符串的差值大于m了,则可以把第一次得到的差值减掉,然后再尝试扩展;
表示删掉左边那个串的最后一个字符,和右边那个串的第一个字符.
然后剩下的字符之差也是符合定义的差值了.
但是中心点可能不是一个点,可能在两个点之间.所以还得考虑中心点在两个点之间的情况.
在扩展的时候更新最大值即可.

【错的次数】


0

【反思】


在这了写反思

【代码】

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int MAXN = 5000+100;
const int MO = 1e9+7;
char ar[MAXN];
int m,len;
int ans;
int ww[MAXN];
void f(int st,int en)
{
int tem=0;
int stt=0,enn=0;
while(st>=0&&en<len)
{
int gg=abs(ar[st]-ar[en]);
tem+=gg;
ww[enn++]=gg;
while(tem>m&&enn-stt>0)
{
tem-=ww[stt];
stt++;
}
st--;en++;
if(tem<=m)
ans=max(ans,enn-stt);
else
tem=0;
}
}
int main()
{
int t;scanf("%d",&t);
while(t--)
{
scanf("%d",&m);
scanf("%s",ar);
ans=0;
len = strlen(ar);
for(int i=0;i<len;i++)
{
f(i-1,i+1);
f(i,i+1);
}
printf("%d\n",ans);
}
return 0; }

【2017 Multi-University Training Contest - Team 6】Kirinriki的更多相关文章

  1. 【2017 Multi-University Training Contest - Team 2】TrickGCD

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=6053 [Description] 给你一个b数组,让你求一个a数组: 要求,该数组的每一位都小于等 ...

  2. 【2017 Multi-University Training Contest - Team 2】Maximum Sequence

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=6047 [Description] 给你一个数列a和一个数列b; 只告诉你a的前n项各是什么; 然后 ...

  3. 【2017 Multi-University Training Contest - Team 2】 Regular polygon

    [Link]: [Description] 给你n个点整数点; 问你这n个点,能够组成多少个正多边形 [Solution] 整点只能构成正四边形. 则先把所有的边预处理出来; 枚举每某两条边为对角线的 ...

  4. 【2017 Multi-University Training Contest - Team 2】 Is Derek lying?

    [Link]: [Description] 两个人都做了完全一样的n道选择题,每道题都只有'A','B','C' 三个选项,,每道题答对的话得1分,答错不得分也不扣分,告诉你两个人全部n道题各自选的是 ...

  5. 【2017 Multi-University Training Contest - Team 5】Rikka with Competition

    [Link]: [Description] [Solution] 把所有人的能力从大到小排; 能力最大的肯定可能拿冠军; 然后一个一个地往后扫描; 一旦出现a[i-1]-a[i]>k; 则说明从 ...

  6. 【2017 Multi-University Training Contest - Team 5】Rikka with Subset

    [Link]: [Description] 给你a数组的n个数的所有2^n个子集的2^n个子集元素的和; 子集元素的和最大为m; 告诉你各个子集元素的和出现的次数; 如 1 2 则0出现1次,1出现1 ...

  7. 【2017 Multi-University Training Contest - Team 5】Rikka with Graph

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=6090 [Description] 给你n个点; 让你在这n个点上最多连m条无向边; 使得 ∑ni= ...

  8. 【2017 Multi-University Training Contest - Team 4】Time To Get Up

    [Link]: [Description] [Solution] 把每个数字长什么样存到数组里就好;傻逼题. (直接输入每一行是什么样子更快,不要一个字符一个字符地输入) [NumberOf WA] ...

  9. 【2017 Multi-University Training Contest - Team 4】Counting Divisors

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=6069 [Description] 定义d(i)为数字i的因子个数; 求∑rld(ik) 其中l,r ...

随机推荐

  1. HDU 5389 Zero Escape(DP + 滚动数组)

    Zero Escape Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) To ...

  2. Pretty UI Design For Android -- 滑动背景、透明列表

    本文是从国外一个网上看到的效果.感觉非常不错.就简化了一下代码.拿来用了,先看下效果图: 效果还是非常不错的,以下让我们看看是如何实现的: 看看文字来源,非常easy,是一个数组: <?xml ...

  3. 78.Nodejs基础中间件Connect

    转自:https://www.cnblogs.com/chris-oil/p/5625437.html 前言 “中间件”在软件领域是一个非常广的概念,除操作系统的软件都可以称为中间件,比如,消息中间件 ...

  4. crawlspider抽屉爬取实例+分布

    创建项目 scrapy startproject choutiPro 创建爬虫文件  scrapy genspider -t crawl chouti www.xxx.com 进入pycharm 培训 ...

  5. 使用Gmail邮箱

    由于国内不能直接访问google,所以其相关产品也不能直接使用.因为Gmail简洁,使用方便,国际上用的人很多.最近发现网易邮箱大师可以直接访问Gmail,所以将方法介绍给大家,如果大家只有访问Gma ...

  6. 游戏开发之UDK引擎介绍和模型导入

    2014-09-18 10:01:3 3.7.5" style="border:0px; vertical-align:middle; max-width:100%"&g ...

  7. iOS Core Animation具体解释(四)AutoLayout中的动画

    原创blog.转载请注明出处 blog.csdn.net/hello_hwc 欢迎关注我的iOS SDK具体解释专栏 http://blog.csdn.net/column/details/huang ...

  8. modSecurity规则学习(三)——SecRule

    通用格式 SecRule VARIABLES OPERATOR [TRANSFORMATION_FUNCTIONS, ACTIONS]   阶段phase (1)request headers (2) ...

  9. 关于node的fs路径问题

    我在写一个静态网页的服务器中遇到的一个问题,当时没理解就去查了 因为要访问最外部的json文件,就定义了一个模块读取文件,然后在外边的server.js中调用 但是一直路径错误. 我相信很多人和我一样 ...

  10. Impala性能优化

    不多说,直接上干货! • 执行计划 – 查询sql执行之前,先对该sql做一个分析,列出需要完成这一项查询的详细方案 – 命令:explain sql.profile 要点: • 1.SQL优化,使用 ...