QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#383031 | #3742. 卖萌表情 | ucup-team1251 | TL | 0ms | 0kb | C++14 | 2.2kb | 2024-04-08 21:03:36 | 2024-04-08 21:03:37 |
answer
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<math.h>
#include<vector>
using namespace std;
const int N=5000;
int n,m;
char c[N][N];
int dp[N][N];
bool bi[N][N];
int cnt=0;
signed main()
{
// for(int i=1;i<=10;i++)
// {
// for(int j=1;j<=1000;j++)
// {
// if(i==j)cout<<"v";
// else
// cout<<"^";
//
// }
// cout<<endl;
// }
while(scanf("%d%d",&n,&m)!=EOF)
{
cnt=0;
memset(dp,0,sizeof dp);
memset(bi,0,sizeof bi);
for(int i=0;i<n;i++)
{
scanf("%s",c[i]);
}
//1 c[i][j]=='^'&&c[i][j+2]=='^'&&c[i+1][j+1]=='v'
//2 c[i+1][j]=='v'&&c[i+1][j+2]=='v'&&c[i][j+1]=='^'
//3 c[i][j]=='<'&&c[i+2][j]=='<'&&c[i+1][j+1]=='>'
//4 c[i][j+1]=='>'&&c[i+2][j+1]=='>'&&c[i+1][j]=='<'
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
// if(j+2<m)
// {
if(c[i][j]=='^'&&c[i][j+2]=='^'&&c[i+1][j+1]=='v'&&!bi[i][j]&&!bi[i][j+2]&&!bi[i+1][j+1])
{
bi[i][j]=bi[i][j+2]=bi[i+1][j+1]=1;
// dp[i][j]=max(dp[i][j-1],dp[i][j]+1);
// dp[i+1][j]=dp[i][j+1]=dp[i+1][j+1]=dp[i][j+2]=dp[i+1][j+2]=dp[i][j];
cnt++;
}
if(c[i+1][j]=='v'&&c[i+1][j+2]=='v'&&c[i][j+1]=='^'&&!bi[i+1][j]&&!bi[i+1][j+2]&&!bi[i][j+1])
{
bi[i+1][j]=bi[i+1][j+2]=bi[i][j+1]=1;
// dp[i][j]=max(dp[i][j-1],dp[i][j]+1);
// dp[i+1][j]=dp[i][j+1]=dp[i+1][j+1]=dp[i][j+2]=dp[i+1][j+2]=dp[i][j];
cnt++;
}
// }
// if(i+2<n)
// {
if(c[i][j]=='<'&&c[i+2][j]=='<'&&c[i+1][j+1]=='>'&&!bi[i][j]&&!bi[i+2][j]&&!bi[i+1][j+1])
{
bi[i][j]=bi[i+2][j]=bi[i+1][j+1]=1;
// dp[i][j]=max(dp[i][j-1],dp[i][j]+1);
// dp[i][j+1]=dp[i+1][j]=dp[i+1][j+1]=dp[i+2][j]=dp[i+2][j+1]=dp[i][j];
cnt++;
}
if(c[i][j+1]=='>'&&c[i+2][j+1]=='>'&&c[i+1][j]=='<'&&!bi[i][j+1]&&!bi[i+2][j+1]&&!bi[i+1][j])
{
bi[i][j+1]=bi[i+2][j+1]=bi[i+1][j]=1;
// dp[i][j]=max(dp[i][j-1],dp[i][j]+1);
// dp[i][j+1]=dp[i+1][j]=dp[i+1][j+1]=dp[i+2][j]=dp[i+2][j+1]=dp[i][j];
cnt++;
}
// }
// dp[i][j]=max(max(dp[i][j],dp[i][j-1]),dp[i-1][j]);
}
}
// int ddd=max(max(dp[n-1][m-1],dp[n-3][m-2]),dp[n-2][m-3]);
printf("%d\n",cnt);
// cout<<ddd<<endl;
}
return 0;
}
详细
Test #1:
score: 0
Time Limit Exceeded
input:
3 10 ^>^<^^^^>^ <v^v^^v^v> <>vvvvvvvv 10 1 v ^ < < v < v > < < 5 4 <^^^ <vvv <<^> vv^v <vvv 2 9 ^^^^^^^^^ vvvvvvvvv 9 10 ^>^^<^<^<> <^<<><<<<> v^v^^<>^<^ ^<vvv<><<> <v>>><^v^> ^^^^>^^<<v v^v>v^v^<> v^vvv>v^<^ vvvvv><>v> 8 8 ^^^^<^<^ <>^<v>v^ <v<v>^v> v>v<vv<> ^<^>>v<> <v^v^<<> ^v^^>v<> <vv<vv<> 2 2 ...