勇者比太郎题解

勇者比太郎

http://www.nowcoder.com/questionTerminal/0af17b0e9ad943e5a394758d979f6c10

这题说实话,很水。就是找到所有的J,在它的正右方数出O的个数s1,正下方数出I的个数s2,相乘为s1s2,然后结果加上s1S2即可。
本人代码如下:
#include<bits/stdc++.h>
using namespace std;
long long ans=0;
long long s[3005][3005];
long long t[3005][3005];
char c[3005][3005];
int main(){
ios::sync_with_stdio(false);
int n;
int m;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>c[i][j];
for(int i=1;i<=n;i++){
for(int j=m;j>=1;j--){
s[i][j]=s[i][j+1]+(c[i][j]=='O');
}
}
for(int j=1;j<=m;j++){
for(int i=n;i>=1;i--){
t[i][j]=t[i+1][j]+(c[i][j]=='I');
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(c[i][j]=='J')
ans+=s[i][j]*t[i][j];
}
}
cout<<ans;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:21
被夸真的超级开心,好可爱的姐姐
码农索隆:老色批们不用脑补了,我把金智妮的图找来了查看图片
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-28 12:15
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
练习生懒羊羊:开飞机把这个公司创飞吧
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务