Yidabang dashlugo, regarde.

Questions et réponses du rseoc 2021-12-30 06:50:25 阅读数:952

yidabang dashlugo regarde. regarde

Système de sécurité des pâturages
Description du problème:C'est le propriétaire d'une ferme de bétail.,Avec l'expansion de l'élevage bovin,Le nombre de bovins augmente.Donc,,La gestion devient de plus en plus difficile.,Il y a des accidents.,Par exemple,:Certaines vaches vont disparaître.,Certains bovins ne poussent pas bien parce qu'ils sont négligents, etc.,Tout ça a causé des dégâts à Ming Ming..Et donc,,Ming Ming a décidé d'installer un système moderne de gestion de la production pour l'élevage bovin,Gestion scientifique des élevages bovins,Dans ce système de sécurité,Besoin d'un numéro par vache,Ce numéro est unique.,Utilisé pour identifier chaque vache.C'est une façon claire de gérer,Ne négligez pas une vache.,Et ne fera pas perdre le bétail à nouveau..Mais en numérotant chaque vache,,J'ai rencontré des difficultés.,Pour des raisons systémiques,Le système impose certaines limites au nombre de bovins par vache.,Ce numéro doit avoirLComposé de petites lettres,Ces lettres minuscules doivent être sélectionnées parmi les lettres fixes,Et au moins une voyelle dans ce numéro(‘a’, ‘e’, ‘i’, ‘o’, Ou ‘u’),Au moins deux consonnes(Syllabes autres que les voyelles), Et les lettres sont dans l'ordre alphabétique(Par exemple,'abc’Ça marche.,Et’bac’Pas efficace). Par exemple:Supposons que le numéro soit attribué par5Composé de petites lettres,Et ces lettres minuscules ne peuvent être quea、b、c、d、e、f,Les numéros possibles qui en résultent sont les suivants:6Espèce: bcdef acdef abdef abcef abcdf abcde Je trouve ça très gênant., C'est dur de s'arranger à la main , La probabilité d'erreur est grande ,À ce moment - là,, Je me souviens de toi , Vous êtes programmeur. , Pourriez - vous écrire un programme , Aidez - le à suivre les règles de numérotation , Tous les numéros valides générés par le programme , Pour une utilisation Claire . Le problème évident peut se résumer à : Donnez - vous une longueur de numéro valide L,EtC Lettres minuscules disponibles , Générer tous les numéros valides selon les règles de codage .

Entrez la description: Le programme que vous avez écrit exige que les données d'essai soient lues à partir de l'appareil d'entrée standard comme données d'entrée pour le programme que vous avez écrit . Il y a plusieurs ensembles de données d'essai dans le dispositif d'entrée standard ,Il y a deux lignes pour chaque ensemble de données d'essai,La première ligne est deux entiersL(3≤L≤15)EtC(3≤C≤26),L Indique la longueur du numéro ,C Indique le nombre de lettres minuscules qui peuvent être sélectionnées ,LEtCSéparé par un espace.La deuxième ligne estC Deux petites lettres différentes , Séparés les uns des autres par un espace . Il n'y a pas de lignes vides entre chaque ensemble de données d'essai et l'ensemble suivant de données d'essai , .Il n'y a pas non plus de lignes vides avant et après le premier ensemble de données d'essai .

Description des produits:Pour chaque ensemble de données d'essai, Le programme que vous avez écrit exige qu'un ensemble correspondant de résultats de calcul soit calculé , .Et écrivez cet ensemble de résultats d'opération comme les données de sortie du programme que vous avez écrit dans le périphérique de sortie standard à tour de rôle . Chaque ensemble de résultats est divisé en deux parties , La première partie porte sur tous les numéros valides générés ,Chaque ligne, Sortie dans l'ordre alphabétique inverse , La deuxième partie est un entier , Indique le nombre total de codes valides . Il n'y a pas d'espace au début et à la fin de la ligne pour chaque ensemble de résultats d'opération , Il y a une ligne vide entre chaque ensemble de résultats d'opération et l'ensemble suivant de résultats d'opération , Il n'y a pas de lignes vides après le dernier ensemble d'opérations . Note::En général, L'affichage est un dispositif de sortie standard .

Exemple d'entrée:
3 3
a b c
5 6
a b c d e f

Exemples de produits:
abc
1

bcdef
acdef
abdef
abcef
abcdfPot
abcde
6




Adopter les réponses:

Le sujet, Ça fait longtemps , Je l'ai fait pour toi , Tu vas courir et essayer
L'idée est de compter d'abord ce qui est possible , Et à l'envers
Essayez chaque personne de façon récursive

#include<iostream>#include<vector>using namespace std;vector<string>res;int cmp(const void* _a, const void* _b) // Format des paramètres fixe { char* a = (char*)_a; //Forcer la conversion de type char* b = (char*)_b; return *a - *b;}bool isLegal(string s) { int num1 = 0, num2 = 0; for (char c : s) { if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') num1 += 1; else if (c >= 'a' && c <= 'z') num2 += 1; if (num1 >= 1 && num2 >= 2) return true; } if (num1 < 1 || num2 < 2) return false; else return true;}//Méthode de rétrosuivi:Récursive head Représente l'emplacement actuel de l'élément à placer void backTrack(string target, string resultStr, int m, int head) { if (resultStr.size() == m) { //Contient au moins1 Un original. a e i o u,Contient au moins2 Autres caractères  if(isLegal(resultStr)) res.push_back(resultStr); return; } int targetLength = target.length(); int resultStrLength = resultStr.size(); int limit = resultStrLength + targetLength - m; for (int i = head; i < targetLength; i++) { if (limit< i) return; backTrack(target, resultStr + target[i], m, i + 1); }}int main() { int length, kinds;// [3,15] [3,26] char String[27] = "\0"; while (cin >> length >> kinds) { for (int i = 0; i < kinds; i++) cin >> String[i]; String[kinds] = '\0'; //Trier Petit à grand Si la vitesse est lente, Notez ce qui suit  qsort(String, kinds, sizeof(char), cmp); res.clear(); backTrack(string(String), "", length, 0); for (int i = res.size() - 1; i >= 0; i--) { cout << res[i] << endl; } cout << res.size() << endl; }}


Autres réponses2:

Marque - le.


Autres réponses3:

img

版权声明:本文为[Questions et réponses du rseoc]所创,转载请带上原文链接,感谢。 https://primo.wiki/2021/12/202112281540495531.html