2017-07-25 2 views
-4

http://codeforces.com/contest/462/problem/A qui est un problème et je veux le résoudre par C++ quelqu'un peut me expliquer ce qu'il veut ici spécialement à la ligne de la questionA. Appleman et tâche facile

et qui est le réponse, mais je ne peux pas le comprendre https://github.com/ahmedalbarbary/Competitive-programming/blob/master/Codeforces%20-%20not%20mine%20codes/problem-%20462A%20-%20Appleman%20and%20Easy%20Task

Merci de me aider

+3

Bonjour et bienvenue à SO. Veuillez prendre le [tour] (https://stackoverflow.com/tour) et lire la [page d'aide] (https://stackoverflow.com/help). Commencez par lire l'un de [ces livres C++] (https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list). – Ron

+1

question devrait être autonome, c.-à-d. La partie importante devrait être dans la question et non derrière des liens qui peuvent casser à tout moment – user463035818

+0

Pouvez-vous s'il vous plaît être précis sur votre question, si vous voulez de l'aide. Vous semblez ne pas comprendre le problème et cela ne vous aidera pas à comprendre la solution. – Acemad

Répondre

0

Vous devez compter pour chaque cellule [i, j]
    combien de cellule [i, j-1], cellule [i, j + 1], cellule [i-1, j], cellule [i + 1, j] (c.-à-d. les cellules adjacentes, c'est-à-dire les cellules voisines) contiennent un 'o'.

Si count est un nombre pair (pour chaque cellule [i, j]) le résultat est "oui", sinon "non". (Ainsi, le test peut être terminé lorsque le premier nombre impair est détecté.) Ainsi, 0 est compté comme un nombre pair aussi (bien sûr).

La question possible:

Pour les cellules frontalières, certains des tests doivent être sautée pour empêcher l'accès hors-lié.

La solution utilise une astuce pour cela: Elle stocke l'entrée en commençant par les indices [1,1] au lieu des indices [0,0]. Cela laisse des cellules de bordure "inutilisées" autour de la matrice d'entrée réelle. L'avance: pas de tests pour les cellules à sauter sont nécessaires.

Comme la mémoire est remplie avec '*' avant que les cellules de bordure inutilisées n'aient aucun effet négatif pour le comptage.

Pourquoi le tour est utilisé:

La plate-forme, nous l'espérons effectuer un accès en lecture aux cellules frontalières et comptant plus rapidement que le chèque (pour chaque cellule) si les cellules doivent être sautée (pour empêcher l'accès hors-lié).

+0

d'abord: merci de me répondre –

+0

https://github.com/ahmedalbarbary/Competitive-programming/blob/master/code Je pense que le code doit faire ce que U dit ci-dessus mais le deuxième cas de test du problème dans le lien dans mon Q faire imprimer 'OUI' mais il doit imprimer 'non' peut U vérifier s'il vous plaît –

+0

Désolé, (Je suis un tel git.) J'ai relu la question. (Il dit "pour chaque cellule du tableau".) Ainsi, j'ai corrigé ma réponse. – Scheff