Emploi Semaine2 B

Signification des questions:
verser problème « remplissage A » représente le remplissage tasse A, « vide A » représente tasse vidée A, « pour AB » représente l'eau versée dans la A et la coupe B pour le remplissage ou la vidange de coupe B A.
Entrée:
entrée comprenant une pluralité d'ensembles de données. Chaque ensemble de données de A, B, C Plage de données 0 <A <= B, C <= B <= 1000, A et B sont premiers entre eux .
Sortie:
La sortie de votre programme sera une série d'instructions. Ces lignes de sortie peuvent provoquer un pot juste une unité C comprend en eau. Enfin, chaque ligne de données de la production devrait être « succès ». lignes de sortie partent de la première colonne ne devrait pas être des lignes vides ou les espaces.
ENTRÉE l'échantillon:
2. 7 2. 5. 4. 7
la sortie Exemple:
Remplir B
verser BA
Succès
Remplir un
versez AB
Remplissez A
verser AB
succès
Notes:
Si votre sortie avec différent Exemple de sortie, il n'a pas d' importance. Pour la réponse à cette question est de multiples solutions dans un « AB C », et non par la comparaison de texte standard pour déterminer l'exactitude de votre programme. Donc , cette question par le programme SPJ (Juge spécial) pour déterminer si le code que vous écrivez correctement.
idées:
Définition d'une structure, dont la quantité est définie dans les deux tasses. Il y a six états, remplissage A, B remplissage, vide A, B vide, verser AB, BA verser l' stocké dans un tableau. Défini dans six états différents, à savoir comment atteindre. Direct à 0, remplissage dans l'état, de sorte que deux bouteilles d'eau dans toute son plein montant dans l'état vide. En verser état, lorsque la coulée AB, si une tasse d'eau ne vaut pas 0, si la quantité des deux tasses d'eau classiques , on ajoute une capacité de coupe est plus grand que b, est la quantité de tasse de b montant total, et quantité est une quantité d'un gobelet après le remplissage des godets restant b. Si deux tasses de quantité existante est plus petite que b PREP quantité (b) de la coupe et la quantité de tasses existantes, et une ébauche de coupe. L' analyse par bfs, le résultat sera enfoncé dans le récipient, l'ordre du résultat stocké dans le récipient est atteint si la grandeur de sortie d'un godet conventionnel ou une tasse b est la quantité requise.
Code:
#include
// # include
#include
#include
#include
#include
l'espace de noms en utilisant STD;
Chaîne TEMP [6.] = { "Fill A", "vide A", "B Fill", "vide B", « pour AB "" pour BA « };
// int VIS [1005] [1005];
struct Node
{
int bottlea, bottleb;
Vector TEMP;
};
BFS vides (un int, int B, int C)
{
int VIS [1000] [1000] = {0};
la file d' attente q;
struct noeud noeud;
node.bottlea = 0;
node.bottleb = 0;
q.push (noeud);
vis [0] [0] = 1;
memset (vis, 0, sizeof (vis));
while (q.empty () de!)
{
noeud = q.front ();
q.pop ();
pour (int i = 0; i <6; i ++)
{
struct Node = noeud présent;
commutateur (i)
{
case 0:
now.bottlea = a;
Pause;
Cas 1:
now.bottlea = 0;
Pause;
Cas 2:
now.bottleb = b;
Pause;
case 3:
now.bottleb = 0;
Pause;
Cas n ° 4:
(! now.bottlea = 0) si
{
if (now.bottlea <= b-now.bottleb)
{
now.bottleb = now.bottleb + now.bottlea;
now.bottlea = 0;
}
Autre
{
now.bottlea = now.bottlea + now.bottleb-b;
now.bottleb = b;
}
}
Briser;
Cas 5:
if (! now.bottleb = 0)
{

             if(now.bottleb+now.bottlea<=a)
             {
              now.bottlea=now.bottlea+now.bottleb;
              now.bottleb=0;
 }
 else
 {
  now.bottleb=now.bottleb+now.bottlea-a;
  now.bottlea=a;
 }
 }
 break;

}
Now.temp.push_back (i);
si (now.bottlebc || now.bottleac)
{
for (vector :: iterator = tem now.temp.begin ()! = tem now.temp.end (); tem ++) {
Cout << temp [* tem] << endl;}
Cout << « succès » << endl;
revenir;
}
Autre
{
if (! Vis [now.bottlea] [now.bottleb])

    q.push(now);
vis[now.bottlea][now.bottleb]=true;

}
}
}
}
Int main ()
{
int A, B, C;
// while (scanf ( "% d% d% d", et a, b &, etc.))
tandis que (cin >> A >> B >> C)
{
bfs (A, B, C);
}
Return 0;
}

Publié 19 articles originaux · louanges gagnées 0 · Vues 221

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45117273/article/details/104738476
conseillé
Classement