E. Expand the Path
一道灯下黑的题目。
我们很显然知道,要让每个列的上限最小,下限最大(同理计算行也可以)。
所以图形应该是一个中心对称图形
所以空白部分是一个矩形(除了一开始的地方),但是还要加上一开始的部分。
#include <bits/stdc++.h>
using namespace std;
#define int long long
string str;
signed main()
{int t;cin>>t;while (t--){int n;cin>>n;cin>>str;int len = str.length();int k = 1;while (k<len&&str[k]==str[k-1]) k++;int nx = 0,ny = 0;if (k==len) {cout<<n<<endl;continue;}for (int i = k;i<len;i++){if (str[i]=='R') nx++;else ny++;}int res = 0;res+=k*(n-1);res+=nx*ny;cout<<n*n-res<<endl;}
}