暴力——cf1202C
直接去考虑细节很多,不如暴力做
即在四个方向到达最远前向反方向走一步,答案肯定是从这四种情况+不多走里出的
#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的更多相关文章
- zone.js - 暴力之美
在ng2的开发过程中,Angular团队为我们带来了一个新的库 – zone.js.zone.js的设计灵感来源于Dart语言,它描述JavaScript执行过程的上下文,可以在异步任务之间进行持久性 ...
- [bzoj3123][sdoi2013森林] (树上主席树+lca+并查集启发式合并+暴力重构森林)
Description Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数 ...
- HDU 5944 Fxx and string(暴力/枚举)
传送门 Fxx and string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Othe ...
- 1250 Super Fast Fourier Transform(湘潭邀请赛 暴力 思维)
湘潭邀请赛的一题,名字叫"超级FFT"最终暴力就行,还是思维不够灵活,要吸取教训. 由于每组数据总量只有1e5这个级别,和不超过1e6,故先预处理再暴力即可. #include&l ...
- fragment+viepager 的简单暴力的切换方式
这里是自定义了一个方法来获取viewpager private static ViewPager viewPager; public static ViewPager getMyViewPager() ...
- 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 ...
- uoj98未来程序改 纯暴力不要想了
暴力模拟A了,数据还是良(shui)心(shui)的 90分的地方卡了半天最后发现一个局部变量被我手抖写到全局去了,,, 心碎*∞ 没什么好解释的,其实只要写完表达式求值(带函数和变量的),然后处理一 ...
- 开源服务专题之------ssh防止暴力破解及fail2ban的使用方法
15年出现的JAVA反序列化漏洞,另一个是redis配置不当导致机器入侵.只要redis是用root启动的并且未授权的话,就可以通过set方式直接写入一个authorized_keys到系统的/roo ...
- 关于csrss.exe和winlogon.exe进程多、占用CPU高的解决办法,有人在暴力破解
关于csrss.exe和winlogon.exe进程多.占用CPU高的解决办法 最近VPS的CPU一直处在100%左右,后台管理上去经常打不开,后来发现上远程都要好半天才反映过来,看到任务管理器有多个 ...
随机推荐
- Session 工作原理
Session 工作原理 1.创建Session 当用户访问到一个服务器,如果服务器启用Session,服务器就要为该用户创建一个SESSION,在创建这个SESSION的时候,服务器首先检查这个用户 ...
- Qt对话框部分学习
一.对话框部分常用内容 颜色对话框.文件对话框.字体对话框.输入对话框.消息对话框.进度对话框.错误对话框.向导对话框. 二.代码部分 //widget.h #ifndef MYWIDGET_H ...
- 【Flutter学习】之动画实现原理浅析(一)
一,动画介绍 动画对于App来说,非常的重要.很多App,正是因为有了动画,所以才会觉得炫酷.移动端的动画库有非常的多,例如iOS上的Pop.web端的animate.css.Android端的And ...
- jdbc的连接数据库,使用PreparedStatement实现增删改查等接口
首先是连接,关闭资源等数据库操作 将连接数据库,关闭资源封装在JDBCUtils里 package jdbc.utils; import java.sql.Connection; import jav ...
- webpack 兼容低版本浏览器,转换ES6 ES7语法
ES6,ES7真的太棒了,async +await+Promise,让我阅读代码的时候不用再从左拉到右了(异步太多,一层套一层真的太头痛) 但是有个问题,打包后低版本浏览器运行不了,还有我用了一些混淆 ...
- windows系统下tomcat启动startup.bat一闪而过
遇到运行startup.bat后,一个窗口一闪而过的问题 tomcat在启动时,会读取环境变量的信息,需要一个CATALINA_HOME 与JAVA_HOME的信息,CATALINA_HOME即tom ...
- spfa(模板)
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int cnt ...
- Android 测试点归纳总结
前言 除了测试平台工具,业务测试的总结和思考同样重要,这里总结了一些Android测试知识点,可以辅助业务测试快速形成测试用例和检查点,当作抛砖引玉分享给大家.如有思考不全面的地方,欢迎大家指出来. ...
- ajax 通过回调函数获取异步数据
这里不再解释什么是 ajax,以及什么是异步的问题. 我们直接来问题,这里采用 jQuery 的 ajax 方法来获取数据. 先来看代码: $(function () { let db = ''; $ ...
- 12.Jmeter 快速入门教程 -- 监控被测资源
写在前面的话, 作者认为jmeter的监控被测服务器资源只是基本可用, 还好习惯了linux的各种命令和工具,所以也基本不用担心什么了.但是有了图形化的监控, 也方便给领导出报告. 怎么说也是不错的. ...