今日份感想:今天好忙,偷闲做了几题:)
题源都来自洛谷
目录
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}")
版权声明:本文为DreamKx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。