暴力——cf1202C
2024-09-02 12:48:09
直接去考虑细节很多,不如暴力做
即在四个方向到达最远前向反方向走一步,答案肯定是从这四种情况+不多走里出的
#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
*/
最新文章
- 编译安装 Zend Opcache 缓存Opcache,加速 PHP
- 数组类型与sizeof与指针的引用
- JQuery------如何判断当前点击的是否是哪个类
- 磁盘空间占满inode结点没用完 并删除了文件但是释放不了
- Android 5.x特性概览四
- Eclipse如何生成jar包
- 转-Android 之 使用File类在SD卡中读取数据文件
- 教你怎么安装MongoDB
- Shell脚本基础I
- Rss web 工具 大对比
- Windows搭建SMTP邮件服务器
- win环境下mysql5.6.14的所有变量的默认值
- SDK Manager 报错:Connection timed out: connect
- 蓝桥杯java高职组
- UVA 11235 Frequent values(RMQ)
- js中的稀疏数组和密集数组
- FFmpeg命令行工具学习(四):FFmpeg 采集设备
- 洛谷P4169 天使玩偶 CDQ分治
- CentOS系统找不到setup命令工具的解决方法
- 基于expressjs老项目的翻新方案
热门文章
- restful规范面试总结
- GPIO软件模拟IIC时序
- AcWing 215. 破译密码 (莫比乌斯反演)打卡
- python中API接口是什么
- python(列表推导式和生成器表达式)
- MySql中4种批量更新的方法update table2,table1,批量更新用insert into ...on duplicate key update, 慎用replace into.
- Weblogic console控制台密码更改后导致重启服务失败
- embed元素 autostart false 失效时的解决方法
- 3. Node_export安装部署
- UVA11988_Broken Keyboard (a.k.a. Beiju Text)