A - Count Takahashi
数 Takahashi 字符串的数量。
模拟。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=2e5+3;
char s[maxn];
int n,cnt;
signed main(){cin>>n;for(int i=1;i<=n;i++){cin>>s;cnt+=s[0]=='T';}cout<<cnt;return 0;
}
B - Couples
给 \(2N\) 个数,求两个相等的数之间恰好夹着一个数的对数。
模拟。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=2e5+3;
int a[maxn];
int n,cnt;
signed main(){cin>>n;for(int i=1;i<=2*n;i++){cin>>a[i];}for(int i=1;i<=2*n-2;i++){if(a[i]==a[i+2]) cnt++;}cout<<cnt;return 0;
}
C - Tile Distance 2
给一个平面直角坐标系,经过蓝线要付钱,求从 \((s_x+0.5,s_y+0.5)\) 到 \((t_x+0.5,t_y+0.5)\) 的最小花费。
考虑把平面直角坐标系换成六边形坐标系,就会发现,对于一个蓝色围成的区域,他到其相邻的
区域的花费为 \(1\)。
于是最短路为 \(\max\{|s_x-t_y|,\frac{|s_x-t_x|+|s_y-t_y|}{2}\}\)
注意处理坐标细节。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=2e5+3;
// int a[maxn];
int n,sx,sy,tx,ty,cnt;
signed main(){cin>>sx>>sy>>tx>>ty;if((sx+sy)%2==1) sx--;if((tx+ty)%2==1) tx--;int disy=abs(sy-ty),disx=abs(sx-tx);cout<<(max(disx,disy)+disy)/2;return 0;
}