赞
踩
添加链接描述
贪心 考虑先颜色选B然后从小到大排序
#include<bits/stdc++.h> using namespace std; const int N=2e5+9; char s[N]; int dp[N]; typedef long long ll; struct node { int n; char ch; }t[N]; bool cmp(node a,node b){ if(a.ch==b.ch)return a.n<b.n; return a.ch<b.ch; } int solve(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&t[i].n); } char s[N]; scanf("%s",s); for(int i=1;i<=n;i++){ t[i].ch=s[i-1]; } sort(t+1,t+1+n,cmp); for(int i=1;i<=n;i++){ //cout<<t[i].n<<" "<<t[i].ch<<endl; if(t[i].n>i&&t[i].ch=='R')return 0; if(t[i].n<i&&t[i].ch=='B')return 0; } return 1; } int main(){ int T; scanf("%d",&T); while(T--){ if(solve())puts("YES"); else puts("NO"); } return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。