题解:dfs之Ball

    xiaoxiao2022-07-05  169

    还是日语,解释题目: 1到10编号的10个球从容器A掉下,可掉入筒B或筒C中 要求:筒B和筒C中球的号码由大到小 Sample Input 2 3 1 4 2 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1

    Output for the Sample Input YES NO 我们只要关注筒中号码最大的那个就行了

    #include<iostream> #include<cstring> using namespace std; int a[12],bo; void dfs(int b,int c,int i)//b中最大的号码,c中最大的号码 { if(bo) return; if(i>10) { bo=1; return ; } if(b<a[i]) dfs(a[i],c,i+1); if(c<a[i]) dfs(b,a[i],i+1); } int main() { int t; cin>>t; while(t--) { for(int i=1;i<=10;i++) cin>>a[i]; bo=0; (dfs(0,0,1)); if(bo) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }
    最新回复(0)