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

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

#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. php time()函数 语法

    php time()函数 语法 time()函数怎么用? php time()函数用来返回当前时间的unix时间戳.语法是time(),返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 ...

  2. 04-树5 Root of AVL Tree(25 分)

    An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...

  3. UNP学习第六章(二)

    一.描述符就绪条件 对于引起select返回套接字“就绪”的条件我们必须讨论得更明确: (1)满足一下塞个条件中的仍和一个时,一个套接字准备好读. a)该套接字接收缓冲区中的数据字节数不大于等于套接字 ...

  4. CentOS 7 & php7.2安装 php-redis 扩展

    CentOS 7 & php7.2安装 php-redis 扩展 1.下载phpredis-developcd /tmpwget https://codeload.github.com/php ...

  5. windows10下Mysql5.7安装指南

    背景 值此国庆70周年之际,为了发扬广大国内软件开发行业,我决定使用MySQL5.7. 呸!实际情况是公司的项目用的是Mysql5.7,但是正式服务器在国外,而且测试服务器也是在国外,关键问题是我这个 ...

  6. 72、salesforce call RESTful 的方式

    通过Chrome的Postman 来call salesforce的restful api https://login.salesforce.com/services/oauth2/token?gra ...

  7. 分析/proc/[pid]/maps中的各个内存区域的大小

    cat maps | sed -e "s/\([0-9a-f]\{8\}\)-\([0-9a-f]\{8\}\)/0x\1 0x\2/" | awk '{printf(" ...

  8. Java输入/输出教程

    Java输入/输出(I/O)处理从源读取数据并将数据写入目标.通常,读取存储在文件中的数据或使用I/O将数据写入到文件中. java.io和java.nio包中包含处理输入/输出的Java类.java ...

  9. springMvc注册时图形验证码完整代码与详细步骤``````后续更新注册时对密码进行加密

      第一使用 画图软件制作图片 ,文件名就是验证码    ------用户的实体类 import java.util.Date; public class Member {    private in ...

  10. Python - 元组 , range

    元组和元组嵌套 元组: 俗称不可变的列表.又被成为只读列表, 元组也是python的基本数据类型之一, 用小括号括起来, 里面可以放任何数据类型的数据, 查询可以. 循环也可以. 切片也可以. 但就是 ...