PAT (Advanced Level) 1093. Count PAT's (25)
2024-08-26 03:56:24
预处理每个位置之前有多少个P,每个位置之后有多少个T。
对于每个A,贡献的答案是这个A之前的P个数*这个A之后T个数。
#include<cstdio>
#include<cstring> long long MOD=1e9+;
const int maxn=1e5+; long long dp1[maxn],dp2[maxn];
char s[maxn]; int main()
{
scanf("%s",s);
memset(dp1,,sizeof dp1);
if(s[]=='P') dp1[]=;
for(int i=;s[i];i++)
{
dp1[i]=dp1[i-];
if(s[i]=='P') dp1[i]++;
}
memset(dp2,,sizeof dp2);
int len=strlen(s);
if(s[len-]=='T') dp2[len-]=;
for(int i=len-;i>=;i--)
{
dp2[i]=dp2[i+];
if(s[i]=='T') dp2[i]++;
}
long long ans=;
for(int i=;s[i];i++)
{
if(s[i]=='A')
ans=(ans+dp1[i-]*dp2[i+])%MOD;
}
printf("%lld\n",ans);
return ;
}
最新文章
- LR录制Flex+Web,登录功能之登录密码出错的处理
- css 文本显示点点点
- MFC获取光标相对于控件所在行
- Linux 查看 网卡类型
- c#中cookies的存取操作
- python判断一个数字是整数还是浮点数
- Cookie介绍及JavaScript操作Cookie方法详解
- 循环执行sql语句
- 逆向知识第一讲,IDA的熟悉使用,以及TEB,PEB结构
- Luogu P3412 仓鼠找$sugar$ $II$
- Centos7上安装java
- web_ui各种元素的操作
- python中深拷贝和浅拷贝
- 如何在本地搭建一个Android应用crashing跟踪系统-ACRA
- C templet and switch case with serial number
- 酷派大神F2使用QPST进行nv备份恢复,解决无信号问题
- Python学习---ModelForm拾遗180325
- docker创建image方法以及常用指令介绍
- python【数据类型:列表与元组】
- thrift框架