Olympiade de l'informatique version python tout-en-un |

Apprenez Python à partir d'un bébé! Utilisez python pour compléter le sujet du site Web Informatics Olympiad All-in-one et enregistrez chaque instant.

Vous trouverez ci-joint un article récapitulatif : Édition Python tout-en-un de l'Olympiade de l'informatique |


【Description】

Un voyageur a un sac à dos pouvant contenir jusqu'à V kilogrammes. Il y a maintenant n articles, leurs poids sont W1, W2, ..., Wn et leurs valeurs sont C1, C2, ..., Cn. Ces éléments sont divisés en plusieurs groupes, et les éléments de chaque groupe sont en conflit les uns avec les autres, et au plus un est sélectionné. La résolution des articles à emballer dans le sac à dos peut faire en sorte que la somme des coûts de ces articles ne dépasse pas la capacité du sac à dos, et la somme des valeurs est la plus grande.

【entrer】

La première ligne : trois nombres entiers, V (capacité du sac à dos, V≤200), N (nombre d'articles, N≤30) et T (nombre maximal de groupes, T≤10) ;

Ligne 2...N+1 : Trois entiers Wi, Ci, P dans chaque ligne, indiquant le poids, la valeur et le numéro de groupe de chaque élément.

【Sortir】

Une seule ligne, un chiffre, indiquant la valeur totale maximale.

【Exemple de saisie】

10 6 3

2 1 1

3 3 1

4 8 2

6 9 2

2 8 3

3 9 3

【Exemple de sortie】

20

【Explication du code】

V,N,T = [int(i) for i in input().split()] #V相当于一维背包中的M(背包容量)
Wi = [[0 for j in range(N+1)] for i in range(N+1)]
Ci = [[0 for j in range(N+1)] for i in range(N+1)]
dp = [0 for j in range(V+1)]
siz = [0 for i in range(N+1)]
maxx = 0

for i in range(1, N+1):
    ls = [int(i) for i in input().split()]
    w = ls[0]
    c = ls[1]
    s = ls[2]
    Wi[s][siz[s]] = w
    Ci[s][siz[s]] = c
    siz[s] += 1
    maxx = max(maxx, s)

for i in range(1, maxx+1):
    for j in range(V, 0, -1):
        for k in range(0, siz[i]):
            if j >= Wi[i][k]:
                dp[j] = max(dp[j], dp[j - Wi[i][k]] + Ci[i][k])

print(dp[V])

【résultat de l'opération】

10 6 3
2 1 1
3 3 1
4 8 2
6 9 2
2 8 3
3 9 3
20

Guess you like

Origin blog.csdn.net/guolianggsta/article/details/130903012