栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python之旅(做题笔记)——Day7.20

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python之旅(做题笔记)——Day7.20

今日份感想:今天好忙,偷闲做了几题:)

题源都来自洛谷

目录

P1152 欢乐的跳

P1909 [NOIP2016 普及组] 买铅笔

P1161 开灯


P1152 欢乐的跳

看了好几遍题目才明白它的意思-.-

我的想法是另开一个list来记录[1,n-1]哪些整数出现过,出现过mark 1,最后统计list中1的数量,要是满足n-1个,即为“Jolly”

AC代码:

nums = input().split()
n = int(nums[0])
mark = list()
for i in range(n):
    mark.append("0")
    mark[i] = int(mark[i])
for i in range(1,n):
    t = int(nums[i])-int(nums[i+1])
    cnd = abs(t)
    if cnd >= 1 and cnd <= (n-1):
        mark[cnd-1] = 1
if mark.count(1) == n-1:
    print("Jolly")
else:
    print("Not jolly")

P1909 [NOIP2016 普及组] 买铅笔

这题第一反应就是暴力破解哈哈哈,就是分成三组分别计算,最后输出最小的,连每一组计算的代码都一样。我记得以前做过类似的题不过难一点,把固定三组改成输入n组,然后再分成n组输入每一组的数据;但也简单,输入一组算一组,再把算出来的金额持续进行打擂台就可以得出最少花费。

AC代码:

n = int(input()) #直接就是一个暴力破解的大动作
k = input().split()
m1 = int(k[0])
m2 = int(k[1])
if n%m1 != 0:
    pay_1 = m2 * (int(n/m1)+1)
else:
    pay_1 = m2 * (n/m1)
k = input().split()
m1 = int(k[0])
m2 = int(k[1])
if n%m1 != 0:
    pay_2 = m2 * (int(n/m1)+1)
else:
    pay_2 = m2 * (n/m1)
k = input().split()
m1 = int(k[0])
m2 = int(k[1])
if n%m1 != 0:
    pay_3 = m2 * (int(n/m1)+1)
else:
    pay_3 = m2 * (n/m1)
final_pay = min(pay_1,pay_2,pay_3)
print(f"{int(final_pay)}")

P1161 开灯

灵活变换数据类型就好了,还有就是表要开大一点

AC代码:

light = list()
for i in range(1000001):
    light.append("0")
    light[i] = int(light[i])
n = int(input())
for i in range(n):
    inp = input().split()
    a = float(inp[0])
    t = int(inp[1])
    for j in range(1,t+1):
        q = int(a*j)
        if light[q] == 0:
            light[q] = 1
        else:
            light[q] = 0
cnd = light.index(1)
print(f"{cnd}")

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1017783.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号