PTA 7-177過去世アーカイブ(20ポイント)

7-177過去世のアーカイブ(20ポイント)
qs.jpg

この種の面白い占いアプレットは、オンラインの世界でよく見られます。実装の原則は非常に単純です。いくつかの質問を設計し、各質問に対するプレーヤーの回答に応じて、判断ツリーでパスを選択するだけです(図を参照)。結論は、パスの終わりに対応するノードです。

path.jpg

ここで、結論に1から始めて左から右に順番に番号を付けます。答えは単純な「はい」または「いいえ」であり、答え「はい」は左へのパスに対応し、答え「いいえ」は右へのパスに対応すると想定されます。プレイヤーからの一連の回答を踏まえて、彼が得た結論の番号を返してください。

入力形式:
最初の行を入力し、2つの正の整数を入力します。N(≤30)はプレーヤーがテストで回答する必要のある質問の数、M(≤100)はプレーヤーの数です。

M行に続いて、各行はプレーヤーからN個の回答を順番に提供します。ここで、yは「はい」に使用され、nは「いいえ」に使用されます。

出力形式:
各プレイヤーについて、対応する結論の番号を1行で出力します。

入力サンプル:
3~4
yny
NYY
NYN
yyn
出力サンプル:
3
5
6
2

#include<bits/stdc++.h>
using namespace std; 
int main(){
    
    
	int  n,m;
	cin>>n>>m;
	while(m--){
    
    
		string s;
		int ans=1;
		cin>>s;
		for(int i=0;i<n;i++){
    
    
			if(s[i]=='n')ans+=pow(2,n-i-1);
		}cout<<ans<<endl;
	}
	
}

おすすめ

転載: blog.csdn.net/Minelois/article/details/113208674