QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#244243#1273. It's All SquaresPhantomThreshold#AC ✓1437ms5364kbC++201.7kb2023-11-08 22:10:402023-11-08 22:10:40

Judging History

你现在查看的是最新测评结果

  • [2023-11-08 22:10:40]
  • 评测
  • 测评结果:AC
  • 用时:1437ms
  • 内存:5364kb
  • [2023-11-08 22:10:40]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	int T;
	cin>>T;
	while(T--)
	{
		int n,m,q;
		cin>>n>>m>>q;
		vector<vector<int>> a(n+5,vector<int>(m+5));
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				cin>>a[i][j];
		vector<int> cnt(n*m+5),vis(n*m+5,q);
		while(q--)
		{
			int x,y;
			string s;
			cin>>x>>y>>s;
			int ud=0,lr=0;
			int area=0;
			for(auto ch:s)
			{
				if(ch=='U')
				{
					ud++;
					area+=x;
					y++;
				}
				else if(ch=='D')
				{
					ud++;
					area-=x;
					y--;
				}
				else if(ch=='L')
				{
					lr++;
					x--;
				}
				else
				{
					lr++;
					x++;
				}
			}
//			cerr<<"!! "<<area<<endl;
			if(area<0)
			{
				reverse(s.begin(),s.end());
				for(auto &ch:s)
				{
					if(ch=='U')ch='D';
					else if(ch=='D')ch='U';
					else if(ch=='L')ch='R';
					else ch='L';
				}
			}
			int ans=0;
			{
				//use v
				for(auto ch:s)
				{
//					cerr<<"go "<<ch<<endl;
					if(ch=='U')
					{
						y++;
						for(int i=x;i>=1;i--)
						{
//							cerr<<"add "<<i<<' '<<y<<endl;
							if(vis[a[i][y]]!=q)vis[a[i][y]]=q,cnt[a[i][y]]=0;
							cnt[a[i][y]]++;
							if(cnt[a[i][y]]==1)ans++;
						}
					}
					else if(ch=='D')
					{
						for(int i=x;i>=1;i--)
						{
//							cerr<<"del "<<i<<' '<<y<<endl;
							if(vis[a[i][y]]!=q)vis[a[i][y]]=q,cnt[a[i][y]]=0;
							cnt[a[i][y]]--;
							if(cnt[a[i][y]]==0)ans--;
						}
						y--;
					}
					else if(ch=='L')
					{
						x--;
					}
					else
					{
						x++;
					}
				}
			}
			cout<<ans<<"\n";
		}
	}
	
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 3460kb

input:

1
3 3 2
1 2 3
1 1 2
7 8 9
0 0 RRRUUULLLDDD
0 0 RRUULLDD

output:

6
2

result:

ok 2 lines

Test #2:

score: 0
Accepted
time: 1437ms
memory: 5364kb

input:

10
353 304 4000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98...

output:

59
64
78
56
73
55
62
68
121
101
65
71
72
55
78
79
58
61
57
59
52
66
79
68
68
96
56
79
60
58
58
64
62
58
54
80
52
67
67
50
62
62
70
77
93
69
59
50
53
86
65
74
57
77
51
82
56
81
62
74
63
61
58
55
86
86
53
65
82
63
61
99
77
84
74
83
59
67
73
72
75
51
87
61
51
55
73
75
83
74
75
79
63
94
65
82
87
98
76
7...

result:

ok 217500 lines

Test #3:

score: 0
Accepted
time: 155ms
memory: 4792kb

input:

2
359 306 4000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ...

output:

66
68
94
59
81
59
58
48
50
90
60
75
46
87
64
65
57
80
69
47
82
60
81
80
50
59
62
65
51
60
56
73
48
57
78
81
52
67
79
51
67
52
58
69
108
48
68
90
89
86
44
82
70
80
59
83
41
90
78
51
71
74
64
74
83
59
78
86
56
68
66
80
73
50
94
68
63
86
74
61
100
76
58
78
59
99
82
69
64
101
65
54
47
64
83
55
68
75
85
...

result:

ok 4600 lines