zoj 3519 – Who is the Smartest Man

通关比赛,当前智力为 ip,有一堆敌人,按照一定次序跟敌人吵架,必胜,如果对方智力比自己高,则升两点智力,否则升一点智力,求最后最高可以到多少智力。

解法: 贪心,总是先跟比自己当前智力高的敌人中智力最低的比,否则到最后才比,这样的次序是最优的。 因此将敌人智力从小到大排,每遇到一个比自己高的,加二继续,否则,累计起来到最后再每个加一到最终的结果输出,这样即可。

可恶的输入输出,本来四行 python 的有效代码居然搞成这么多行。。

# -*- coding: utf8 -*-
#3492415 2013-12-19 23:48:26 Accepted 3519 Python 220 140 呆滞的慢板

import sys
n = 0
for line in sys.stdin:
    if n == 0:
        n, ip = map(int, line.split())
    else:
        r = 0
        for x in sorted(map(int, line.split())):
            if x <= ip: r += 1
            else: ip += 2
        print(ip+r)
        n = 0

【转载请附】愿以此功德,回向 >>

原文链接:http://www.huangwenchao.com.cn/2013/12/zoj3519.html【zoj 3519 – Who is the Smartest Man】

《zoj 3519 – Who is the Smartest Man》有1个想法

  1. Moro ja kiitoksia vielä maistiaisista! Leivän päällä Ja sellaisenaan on nyt maisteltu nuita ja herkkua on, polte sopiva muttei jyrää liikaa raikkaan hedelmäisen maun yli. Kumpis noista isoimmista podeista oli nyt Congo ja kumpi Belize Red? Kyllähän tuon mainitsit mutta niin sitä ihminen unohtaa.. Paheslikaiusmpi oli.. jompikumpi?

发表评论

电子邮件地址不会被公开。 必填项已用*标注