[伯俊/1759]パスワードの作成
白駿1759-パスワードの作成
質問元:白駿1759
指定されたアルファベットを使用して条件を満たすパスワードを作成する問題
条件:完了したパスワードを昇順で表示する必要があります.
abcはできますが、bacはできません.
プールとコード
DFSを使用してアルファベットを追加し、所定の長さに達したときに出力します.
アルファベットを事前にソートし、現在の長さと現在のアルファベットをdfs関数に渡します.
現在のアルファベット値より後のアルファベットのみを追加できます.#include<bits/stdc++.h>
using namespace std;
string str;
int L,C;
char mm[5]={'a','e','i','o','u'};
string tmp;
void dfs(int len,int position){
if(len>=L){
int mm_cnt=0;
for(int i=0;i<L;i++){
if (tmp[i] == 'a' || tmp[i] == 'e' || tmp[i] == 'i'
|| tmp[i] == 'o' || tmp[i] == 'u'){
mm_cnt++;
}
}
if(mm_cnt>=1 && tmp.size()-mm_cnt>=2){
cout<<tmp<<endl;
}
return;
}
for(int i=position;i<C;i++){
tmp.push_back(str[i]);
dfs(len+1,i+1);
tmp.pop_back();
}
}
int main(){
ios_base::sync_with_stdio(false);
cin>>L>>C;
for(int i=0;i<C;i++){
char tmp;
cin>>tmp;
str.push_back(tmp);
}
sort(str.begin(),str.end());
cout<<str<<endl;
dfs(0,0);
return 0;
}
Reference
この問題について([伯俊/1759]パスワードの作成), 我々は、より多くの情報をここで見つけました
https://velog.io/@anji00/백준1759-암호-만들기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
#include<bits/stdc++.h>
using namespace std;
string str;
int L,C;
char mm[5]={'a','e','i','o','u'};
string tmp;
void dfs(int len,int position){
if(len>=L){
int mm_cnt=0;
for(int i=0;i<L;i++){
if (tmp[i] == 'a' || tmp[i] == 'e' || tmp[i] == 'i'
|| tmp[i] == 'o' || tmp[i] == 'u'){
mm_cnt++;
}
}
if(mm_cnt>=1 && tmp.size()-mm_cnt>=2){
cout<<tmp<<endl;
}
return;
}
for(int i=position;i<C;i++){
tmp.push_back(str[i]);
dfs(len+1,i+1);
tmp.pop_back();
}
}
int main(){
ios_base::sync_with_stdio(false);
cin>>L>>C;
for(int i=0;i<C;i++){
char tmp;
cin>>tmp;
str.push_back(tmp);
}
sort(str.begin(),str.end());
cout<<str<<endl;
dfs(0,0);
return 0;
}
Reference
この問題について([伯俊/1759]パスワードの作成), 我々は、より多くの情報をここで見つけました https://velog.io/@anji00/백준1759-암호-만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol