AtCoder Beginner Contest 175 Merci pour votre travail acharné! Page officielle
Le code que j'ai écrit cette fois est ici Le résultat a été AC jusqu'à A-C. Les deux D et E étaient difficiles ...
Je vais vous expliquer brièvement ci-dessous.
La question de savoir combien de fois une chaîne est continue.
String.charAt()
J'ai obtenu le caractère spécifié avec et honnêtement obtenu le document conditionnel.
Compte tenu de la longueur de trois côtés, le problème de l'impression de savoir si cela devient un triangle. Veuillez noter que les côtés de même longueur ne doivent pas être utilisés.
Vous n'avez pas à vous soucier de la quantité de calcul, et même une triple boucle suffira. L'intérieur de la triple boucle ressemble à ceci. Tout d'abord, j'ai vérifié s'il y avait les mêmes longueurs de côté et j'ai décidé s'il s'agissait d'un triangle.
if (first == second || second == third || third == first) {
continue;
}
if (isTriangle(first, second, third)) {
count++;
}
Le jugement quant à savoir s'il s'agit d'un triangle a été fait comme suit
public static boolean isTriangle(int i, int j, int k) {
int max = Math.max(i, j);
max = Math.max(max, k);
return i + j + k - max > max;
}
Le problème du déplacement de X à K fois sur un certain nombre de lignes droites par D et de sortie de la position la plus proche de l'origine. Si vous dessinez une petite figure, lorsque K et D sont plus petits que X, il suffit de se déplacer vers l'origine. Sinon, vous pouvez voir que la valeur est déterminée par pair ou impair.
Si K ou D est assez grand par rapport à X dans une certaine mesure, vous aurez l'impression d'errer autour de l'origine.
De plus, étant donné que X, K et D sont tous grands, le point n'est pas d'utiliser la multiplication inutilement. (Il débordera.) Premièrement, la branche lorsque X est suffisamment grand peut être écrite comme ceci.
if (x / d > k) {
print(x - d * k);
return;
}
Sinon, faisons la distinction entre «x% d» et «d-x% d» par pair et impair et en sortie. Notez également que X peut prendre des valeurs négatives. Cela a pris beaucoup de temps ...
(Post-scriptum)
(Post-scriptum)
J'ai dormi trop longtemps pendant 20 minutes, donc c'était la performance la plus basse (592) ... La note a également chuté 4 fois de suite, orz à 930
Je passerai en revue les problèmes D et E en profondeur, je les mettrai à jour correctement ultérieurement et j'écrirai le code source ...! Kuyashi!
Merci d'avoir lu jusqu'au bout!
Recommended Posts