Daily AtCoder # 42 en Python

introduction

Dernière fois Résolvez l'ABC-D d'hier.

#42 Problème

** Pensées ** Même après avoir lu l'explication, ce n'était pas rafraîchissant, donc je l'ai implémenté en référence à l'article de Kenchon. La chose importante en réfléchissant à ce problème est d'être conscient de l'intention d'écrire $ 10 ^ {100} $. Comme je l'ai écrit dans l'article de commentaire, la somme des nombres sélectionnés ne sera pas dupliquée lorsque différents nombres sont sélectionnés en raison de la présence de 10 $ ^ {100} $. De plus, la somme est un entier continu. De ce qui précède, il peut être considéré comme un problème de calcul de la somme de N + 1 nombres choisis parmi k parmi {0,1, ... N + 1}. Le nombre de sommes peut être écrit sous la forme (entier maximum composé de $ i-entier minimum composé de i + 1 $, $ k \ leq i \ leq N + 1 $). La somme minimale des $ i $ th est $ \ frac {i (i-1)} {2} $, et la somme du maximum nième à kth est $ \ frac {i (2N-i + 1)} { 2} $. Lorsque ceux-ci sont mis en œuvre,

n, k = map(int,input().split())

ans = 0
for i in range(k,n+2):
    minmin = (i*(i-1))//2 #Le nom de la variable est terrible
    maxmax = ((2*n-i+1)*i)//2
    ans += maxmax - minmin + 1

print(ans%(10**9+7))

Résumé

Ce concours était C: Facile, D: Un peu facile, E: Quoi? Alors j'ai pensé que je devais résoudre D. A bientôt, bonne nuit

Recommended Posts

AtCoder # 36 quotidien avec Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Daily AtCoder # 53 en Python
Daily AtCoder # 33 en Python
AtCoder # 7 tous les jours avec Python
Daily AtCoder # 37 en Python
AtCoder # 8 tous les jours avec Python
Daily AtCoder # 42 en Python
AtCoder # 21 quotidien avec Python
Daily AtCoder # 17 avec Python
Daily AtCoder # 38 en Python
Daily AtCoder # 54 en Python
Daily AtCoder # 11 en Python
Daily AtCoder # 15 en Python
Daily AtCoder # 47 avec Python
Daily AtCoder # 13 en Python
AtCoder # 45 quotidien avec Python
AtCoder # 30 tous les jours en Python
AtCoder # 40 quotidien avec Python
AtCoder # 10 quotidien avec Python
AtCoder # 5 tous les jours avec Python
Daily AtCoder # 28 en Python
AtCoder # 39 quotidien avec Python
Daily AtCoder # 20 en Python
Daily AtCoder # 19 en Python
Daily AtCoder # 52 en Python
Daily AtCoder # 3 en Python
Daily AtCoder # 14 avec Python
Daily AtCoder # 50 avec Python
Daily AtCoder # 26 avec Python
AtCoder quotidien # 4 avec Python
Daily AtCoder # 43 en Python
Daily AtCoder # 29 en Python
Tous les jours avec Python AtCoder # 22
Daily AtCoder # 49 en Python
Daily AtCoder # 27 en Python
AtCoder # 1 tous les jours avec Python
Daily AtCoder # 25 avec Python
Daily AtCoder # 16 en Python
Daily AtCoder # 12 en Python
Daily AtCoder # 48 en Python
Daily AtCoder # 23 en Python
Daily AtCoder # 34 en Python
AtCoder # 51 quotidien avec Python
Daily AtCoder # 31 en Python
Daily AtCoder # 46 en Python
AtCoder # 35 quotidien avec Python
AtCoder # 9 tous les jours avec Python
Daily AtCoder # 44 avec Python
Daily AtCoder # 41 en Python
Atcoder ABC164 A-C en Python
atCoder 173 Python
Note d'entrée Python dans AtCoder
Atcoder ABC167 A-D en Python
Atcoder ABC165 A-D en Python
Atcoder ABC166 A-E en Python
Atcoder ABC169 A-E en Python
AtCoder ABC177 A-D avec python
Résoudre Atcoder ABC169 A-D avec Python