Après le "Concours de programmation Diverta 2019"

C'était la deuxième participation au concours AtCoder, cette fois seulement A était AC, je ne sais pas si B était présent ou non (comme WJ), C était 48/51 bonne réponse 3 WA, comment faire C'était triste de ne pouvoir presque rien faire pendant les 30 dernières minutes ...

Un problème

Je suis vite venu avec ça, car tout ce que j'ai à faire est de rassembler K sur N ...

    list = input().split()
    print(int(list[0]) - int(list[1]) + 1)

Je veux apprendre la méthode de saisie sans utiliser de liste rapidement ...

Problème B

Il était facile de penser à l'algorithme car il y avait un problème similaire de loterie dans le livre des fourmis, je me demandais vaguement si c'était pour 3 fois au début, mais 2 fois c'était assez ... C'est C

    #include<stdio.h>
     
    int main(){
      int r, g, b, n;
      int cnt = 0;
      scanf("%d %d %d %d\n", &r, &g, &b, &n);
      int x = n / r;
      for(int i=x;i>=0;i--){
        int y = (n - (i * r)) / g;
        for(int j=y;j>=0;j--){
          int z = n - (i * r) - (j * g);
          if(z % b == 0){
            cnt++;
          }
        }
      }
      printf("%d\n", cnt);
      return 0;
    }

Veuillez me pardonner le traumatisme que j'ai mis dans x, y, z à cause de l'erreur flottante dans la première moitié ... S'il vous plaît laissez-moi savoir s'il y en a plus.

Post-scriptum: C'était AC, je l'ai fait

Problème C

Algorithme de pensée

Si vous écrivez grossièrement ・ Augmentez cnt de 1 pour chaque ʻAB` dans un mot ・ Augmentez cnta de 1 pour le dernier «A» ・ Augmenter cntb de 1 par «B» de la tête ・ Sorties cnt plus les valeurs minimales de cnta et cntb

Code implémenté

    n = int(input())
    list = []
    cnt = 0
    cnta = 0
    cntb = 0
    cntexp = 0
    for i in range(n):
      list.append(input())
      a = list[i].count("AB")
      cnt += a
      if(list[i][-1:] == "A"):
        cnta += 1
      if(list[i][0:1] == "B"):
        cntb += 1
      if((list[i][-1:] == "A")and(list[i][0:1] == "B")):
        cntexp += 1
    cntab = min(cnta, cntb)
    if(cntab == cntexp):
      cntab -= 1
    ans = cnt + cntab
    print(ans)

C'est au-dessus que je l'ai implémenté en tenant compte de diverses manipulations d'exceptions, mais les deux derniers étaient WA ... Veuillez me dire quels autres modèles existent ...

Je semblais être capable de résoudre les problèmes D et E, mais je n'avais pas assez de temps donc je veux y aller lentement ...

Recommended Posts

Après le "Concours de programmation Diverta 2019"
Concours de programmation Acing 2020
Concours de programmation HHKB 2020
Examen du concours de programmation Keyence 2020
Revue du concours de programmation NOMURA 2020
Examen du concours de programmation HHKB 2020
Concours de programmation Atcoder Acing Python
Notes pour le concours de programmation HHKB 2020
Critique du concours de programmation Tokio Marine & Nichido 2020
Rapport de participation au concours de programmation AtCoder HHKB 2020
Rapport de participation au concours de programmation AtCoder Acing 2020
Rapport de participation au concours de programmation AtCoder Keyence 2020
Rapport de participation au concours de programmation AtCoder Panasonic 2020
Impressions 3 mois après l'obtention du diplôme d'école de programmation
Bilan 2019 du concours de programmation Sumitomo Mitsui Trust Bank