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

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

#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
*/

最新文章

  1. 编译安装 Zend Opcache 缓存Opcache,加速 PHP
  2. 数组类型与sizeof与指针的引用
  3. JQuery------如何判断当前点击的是否是哪个类
  4. 磁盘空间占满inode结点没用完 并删除了文件但是释放不了
  5. Android 5.x特性概览四
  6. Eclipse如何生成jar包
  7. 转-Android 之 使用File类在SD卡中读取数据文件
  8. 教你怎么安装MongoDB
  9. Shell脚本基础I
  10. Rss web 工具 大对比
  11. Windows搭建SMTP邮件服务器
  12. win环境下mysql5.6.14的所有变量的默认值
  13. SDK Manager 报错:Connection timed out: connect
  14. 蓝桥杯java高职组
  15. UVA 11235 Frequent values(RMQ)
  16. js中的稀疏数组和密集数组
  17. FFmpeg命令行工具学习(四):FFmpeg 采集设备
  18. 洛谷P4169 天使玩偶 CDQ分治
  19. CentOS系统找不到setup命令工具的解决方法
  20. 基于expressjs老项目的翻新方案

热门文章

  1. restful规范面试总结
  2. GPIO软件模拟IIC时序
  3. AcWing 215. 破译密码 (莫比乌斯反演)打卡
  4. python中API接口是什么
  5. python(列表推导式和生成器表达式)
  6. MySql中4种批量更新的方法update table2,table1,批量更新用insert into ...on duplicate key update, 慎用replace into.
  7. Weblogic console控制台密码更改后导致重启服务失败
  8. embed元素 autostart false 失效时的解决方法
  9. 3. Node_export安装部署
  10. UVA11988_Broken Keyboard (a.k.a. Beiju Text)