直接去考虑细节很多,不如暴力做

即在四个方向到达最远前向反方向走一步,答案肯定是从这四种情况+不多走里出的

#include<bits/stdc++.h>
using namespace std;
#define N 200005
char s[N],t[N];
int n,w,h,u,d,l,r,x,y,pu,pd,pl,pr; void insert(int pos,char ch){//在pos前塞入ch
int len=strlen(t+);
for(int i=len;i>=pos;i--)
t[i+]=t[i];
t[pos]=ch;
}
void calc(){
int len=strlen(t+),u=,d=,l=,r=,x=,y=;
for(int i=;i<=len;i++){
if(t[i]=='W')y++;
if(t[i]=='S')y--;
if(t[i]=='A')x--;
if(t[i]=='D')x++;
if(y>u)u=y;
if(y<d)d=y;
if(x>r)r=x;
if(x<l)l=x;
}
w=r-l+;h=u-d+;
} int main(){
int T;cin>>T;
while(T--){
u=,d=,l=,r=,x=,y=;
pu=pd=pl=pr=;
memset(s,,sizeof s);
scanf("%s",s+);
n=strlen(s+);
for(int i=;i<=n;i++){
if(s[i]=='W')y++;
if(s[i]=='S')y--;
if(s[i]=='A')x--;
if(s[i]=='D')x++;
if(y>u)u=y,pu=i;
if(y<d)d=y,pd=i;
if(x>r)r=x,pr=i;
if(x<l)l=x,pl=i;
}
w=r-l+;h=u-d+;
long long ans=(long long)w*h;
memset(t,,sizeof t);
memcpy(t,s,sizeof s);
if(pu)insert(pu,'S');
calc();
ans=min(ans,1ll*w*h); memset(t,,sizeof t);
memcpy(t,s,sizeof s);
if(pd)insert(pd,'W');
calc();
ans=min(ans,1ll*w*h); memset(t,,sizeof t);
memcpy(t,s,sizeof s);
if(pr)insert(pr,'A');
calc();
ans=min(ans,1ll*w*h); memset(t,,sizeof t);
memcpy(t,s,sizeof s);
if(pl)insert(pl,'D');
calc();
ans=min(ans,1ll*w*h); cout<<ans<<'\n'; }
}
/*
4
DSAWWAW
D
WA
WSSW
*/

暴力——cf1202C的更多相关文章

  1. zone.js - 暴力之美

    在ng2的开发过程中,Angular团队为我们带来了一个新的库 – zone.js.zone.js的设计灵感来源于Dart语言,它描述JavaScript执行过程的上下文,可以在异步任务之间进行持久性 ...

  2. [bzoj3123][sdoi2013森林] (树上主席树+lca+并查集启发式合并+暴力重构森林)

    Description Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数 ...

  3. HDU 5944 Fxx and string(暴力/枚举)

    传送门 Fxx and string Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Othe ...

  4. 1250 Super Fast Fourier Transform(湘潭邀请赛 暴力 思维)

    湘潭邀请赛的一题,名字叫"超级FFT"最终暴力就行,还是思维不够灵活,要吸取教训. 由于每组数据总量只有1e5这个级别,和不超过1e6,故先预处理再暴力即可. #include&l ...

  5. fragment+viepager 的简单暴力的切换方式

    这里是自定义了一个方法来获取viewpager private static ViewPager viewPager; public static ViewPager getMyViewPager() ...

  6. ACM: Gym 101047M Removing coins in Kem Kadrãn - 暴力

     Gym 101047M Removing coins in Kem Kadrãn Time Limit:2000MS     Memory Limit:65536KB     64bit IO Fo ...

  7. uoj98未来程序改 纯暴力不要想了

    暴力模拟A了,数据还是良(shui)心(shui)的 90分的地方卡了半天最后发现一个局部变量被我手抖写到全局去了,,, 心碎*∞ 没什么好解释的,其实只要写完表达式求值(带函数和变量的),然后处理一 ...

  8. 开源服务专题之------ssh防止暴力破解及fail2ban的使用方法

    15年出现的JAVA反序列化漏洞,另一个是redis配置不当导致机器入侵.只要redis是用root启动的并且未授权的话,就可以通过set方式直接写入一个authorized_keys到系统的/roo ...

  9. 关于csrss.exe和winlogon.exe进程多、占用CPU高的解决办法,有人在暴力破解

    关于csrss.exe和winlogon.exe进程多.占用CPU高的解决办法 最近VPS的CPU一直处在100%左右,后台管理上去经常打不开,后来发现上远程都要好半天才反映过来,看到任务管理器有多个 ...

随机推荐

  1. java开源项目

    原文地址:http://blog.longjiazuo.com/archives/2625 1.整理出一些使用比较广或者个人觉得比较好的java开源项目和资料供参考.2.如果你觉得好但是我没有列出的开 ...

  2. boost scope exit

    Boost.ScopeExit provides the macro BOOST_SCOPE_EXIT, which can be used to define something that look ...

  3. 前端每日实战:58# 视频演示如何用纯 CSS 创作一只卡通鹦鹉

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/vrRmWy 可交互视频 此视频是可 ...

  4. 【c#技术】一篇文章搞掂:水晶报表

    更新数据源 应该先从[数据库]——[数据库专家]——[刷新]——[数据库]——[验证数据库] 必须先刷新,不然验证数据库无效 XP下,打开水晶报表提示无法创建目录或文件,删除临时目录Temp中文件即可 ...

  5. 在 MacBook 上安装 Ubuntu

    建立ubuntu 安裝U盤,加入usb port,按住option key 開機,正常安裝. 完成後,會缺少wifi drive sudo apt-get install bcmwl-kernel-s ...

  6. linux 日志文件查看

    记录下日志中常用的日志查看命令. 1.  tail -n 10 -f  **.log 显示日志文件尾部10行日志,当有新日志产生,会追加显示. 2. tail 命令 现ff.sh中有如下信息: [ro ...

  7. 82、TensorFlow教你如何构造卷积层

    ''' Created on 2017年4月22日 @author: weizhen ''' import tensorflow as tf #通过tf.get_variable的方式创建过滤器的权重 ...

  8. #include和前置声明(forward declaration)

    #include和前置声明(forward declaration) 1.    当不需要调用类的实现时,包括constructor,copy constructor,assignment opera ...

  9. activiti7启动流程实例,动态设置assignee人

    package com.zcc.activiti03; import org.activiti.engine.ProcessEngine;import org.activiti.engine.Proc ...

  10. sql合并字段

    <!-- 对发送方式合并查询 --> <!--查询所有满足条件的营销活动 --> <select id="CRM-MK-ACT-DEFINE-SELECT&qu ...