Codeforces Round #738 (Div. 2)——C. Mocha and Hiking
生活随笔
收集整理的這篇文章主要介紹了
Codeforces Round #738 (Div. 2)——C. Mocha and Hiking
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
傳送
問(wèn)題描述:
1.
已知 (i)~(i+1) 可行?(1<=i<=n-1)
2.
給出 (i)~(n+1)的關(guān)系 (1<=i<=n)?
a[i]=0:(i)~(n+1)?可行。
a[i]?=1:(n+1)~(i) 可行 。
3.
遍歷所有點(diǎn)一次。
輸出路徑。(不存在則輸出-1)
思路分析:
考慮三種情況。
1.(n+1)~(1)~(2)~ ...~ (n)?
滿足條件? ?a[1]==1
?2.(1)~(2)~ ...~(n)~(n+1)
滿足條件? ?a[n]==0?
3.(1)~(2)~...~(k)~(n+1)~(a[k+1])~...~(n)
滿足條件? ?a[k]==0&&a[k+1]==1?
解決方案:
/* 2021.8.16 */ #include <bits/stdc++.h> #define bbn 200005 #define mod 1000000007 //1e9+7 typedef long long int LL; using namespace std; int main() {int t;cin>>t;while(t--){bool judge=0;int n;int a[bbn]= {};cin>>n;for(int i=1; i<=n; i++){cin>>a[i];}if(a[1]==1){cout<<n+1<<' ';for(int i=1; i<=n; i++){cout<<i<<' ';}cout<<endl;continue;}else if(a[n]==0){for(int i=1; i<=n; i++){cout<<i<<' ';}cout<<n+1<<' ';cout<<endl;continue;}else{for(int i=1; i<=n-1; i++){if(a[i]==0&&a[i+1]==1){for(int j=1; j<=i; j++){cout<<j<<' ';}cout<<n+1<<' ';for(int j=i+1; j<=n; j++){cout<<j<<' ';}cout<<endl;judge=1;break;}}}if(judge==0)cout<<-1<<endl;} }總結(jié)
以上是生活随笔為你收集整理的Codeforces Round #738 (Div. 2)——C. Mocha and Hiking的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HTML:给自己设计一个简单的专属网页音
- 下一篇: 估值报告写作第三讲——第五届CVA估值建