codeforce round615 div3 B
Posted mlcn-2000
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeforce round615 div3 B相关的知识,希望对你有一定的参考价值。
这道题一开始打算给每个点赋权值,再用记录路径的bfs去找可能的结果,后来看了题解发现这样子做麻烦了。观察就可以发现,给出的点要能形成一条通路,必须满足任意两个点(xi,yi),(xj,yj),其中i!=j,并且xi<yj,yi<yj,不然就无法走到该点,故可以推断出所有点必然满足一定的升序排列,所以只需要按照排好序的点来找就行。
1 #include <bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 int t; 5 cin>>t; 6 for(int i = 0;i<t;i++){ 7 int n; 8 cin>>n; 9 vector<pair<int,int>>a(n); 10 for(int k = 0;k<n;k++){ 11 cin>>a[k].first>>a[k].second; 12 } 13 sort(a.begin(),a.end()); 14 pair<int,int> cur = make_pair(0,0); 15 string ans; 16 bool ok = true; 17 for(int j = 0;j<n;j++){ 18 int r = a[j].first - cur.first; 19 int u = a[j].second - cur.second; 20 if(r<0||u<0){ 21 cout<<"NO "; 22 ok = false; 23 break; 24 } 25 ans+=string(r,‘R‘); 26 ans+=string(u,‘U‘); 27 cur = a[j]; 28 } 29 if(ok){ 30 cout<<"YES "; 31 cout<<ans<<endl; 32 } 33 } 34 }
以上是关于codeforce round615 div3 B的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #615 (Div. 3)
[Codeforces #615 div3]1294E Obtain a Permutation
[题解][Codeforces] Round_615_Div. 3 简要题解
Codeforces Round #615 (Div. 3)