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

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

#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. 【leetcode】946. Validate Stack Sequences

    题目如下: Given two sequences pushed and popped with distinct values, return true if and only if this co ...

  2. 【Guava】Guava Cache用法

    背景 缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用.在日长开发有很多场合,有一些数据量不是很大,不会经常改动,并且访问非常频繁.但是由于受限于硬盘IO的性能或者远程网络 ...

  3. POJ 2299 Ultra-QuickSort (树状数组+离散化 求逆序数)

    In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a seque ...

  4. 最新最全最详细的MacOS 10.14 Mojave黑苹果安装教程

    图文教程知乎地址:点击打开链接 视频教程B站地址:点击打开链接 微信公众号 地 址:点击打开链接 准备工作(工具包及镜像在后边) 一个8G以上的U盘(有的U盘标的是8G,实际只有7.X,实际容量小于7 ...

  5. BZOJ 5415: [Noi2018]归程(kruskal重构树)

    解题思路 \(NOI2018\)的\(Day1\) \(T1\),当时打网络赛的时候不会做.学了一下\(kruskal\)重构树后发现问题迎刃而解了.根据\(kruskal\)的性质,如果要找从\(u ...

  6. display和visibility

    display: none; visibility: hidden; 相同点:两者都是隐藏元素不同点:display不保留位置,visibility保留位置

  7. HTML-参考手册: HTML 拾色器

    ylbtech-HTML-参考手册: HTML 拾色器 1.返回顶部 1. HTML 拾色器 选取颜色:     或输入颜色值: OK 或使用 HTML5: 选择的颜色: 黑色文本 阴影 白色文本 阴 ...

  8. 用 Flask 来写个轻博客 (14) — M(V)C_实现项目首页的模板

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 实现所需要的视图函数 实现 home.html 模板 代码分析 实现效 ...

  9. Struts1.3——文件上传和下载

    1.Struts文件上传 在Web开发中,会经常涉及到文件的上传和下载,比如在注册账户的时候,我们需要上传自己的头像等. 我们可以利用Struts很方便地实现文件的上传. 1.1 开发步骤 现在,假设 ...

  10. Struts1.3——DispatchAction、DynamicForm和全局跳转

    1.DispatchAction-分派Action 1.1 为什么需要DispatchAction 如果每个请求都对应一个Action,就会造成action过多,程序显得比较臃肿,所以可以把一类请求写 ...