Codeforces通关之旅(四)

Codeforces通关之旅(四)580A、479A、148A、136A、486A、617A、208A、318A、451A、469A580A:题目:寻找最长的不减少序列有多长思路

欢迎大家来到IT世界,在知识的湖畔探索吧!

代码具体查看github:https://github.com/hoperong/codeforce_problem

Codeforces通关之旅(四)

codeforces

所涉及的题目:

580A、479A、148A、136A、486A、617A、208A、318A、451A、469A

580A:

题目:

寻找最长的不减少序列有多长

思路:

依题意,按顺序查看计算就好了

代码:

#!/usr/bin/env python

# coding=utf-8

input_s = input()

input_l = input().split(‘ ‘)

before = 0

max_mount = 1

now_mount = 0

for l in input_l:

if int(l) >= before:

now_mount += 1

max_mount = max(now_mount, max_mount)

else:

now_mount = 1

before = int(l)

print(max_mount)

479A:

题目:

公主梦中打恐龙,每k条挂掉一只,每k条挂掉一只,每l条挂掉一只,每m条挂掉一只,每n条挂掉一只,请问来了n条,能活着活去几条?

思路:

其实就是计算下n个数种,有多少个不能呗k、l、m、n整除的数字

代码:

#!/usr/bin/env python

# coding=utf-8

k = int(input())

l = int(input())

m = int(input())

n = int(input())

d = int(input())

mount = 0

for i in range(1, d + 1):

if i % k != 0 and i % l != 0 and i % m != 0 and i % n != 0:

mount += 1

print(d – mount)

148A:

题目:

题目有点绕,简单来说就是,主人公记得谁送谁礼物,也就是第二行的第i个数为n,意味着i送给了n礼物。现在要求,谁收到谁送的礼物,也就是最后答案输出的,第i个数为n,意味着n收到了i送的礼物。

思路:

就是把第二行的l[i]=p改成k[p]=i就好了

代码:

#!/usr/bin/env python

# coding=utf-8

input_s = input()

input_l = input().split(‘ ‘)

list_l = [0] * len(input_l)

for (index, l) in enumerate(input_l):

list_l[int(l) – 1] = index + 1

s = ”

for l in list_l:

s += ‘{} ‘.format(l)

print(s.strip())

136A:

题目:

f(n) = - 1 + 2 - 3 + .. + ( - 1)nn

思路:

规律题,-1+2=1,-3+4=1。n为偶数,则f(n)=n/2,n为奇数,则f(n)=(n-1)/2-n

代码:

#!/usr/bin/env python

# coding=utf-8

input_s = int(input())

if input_s % 2 > 0:

print(int(-(input_s // 2 + 1)))

else:

print(int(input_s / 2))

486A:

题目:

f(n) = - 1 + 2 - 3 + .. + ( - 1)nn

思路:

规律题,-1+2=1,-3+4=1。n为偶数,则f(n)=n/2,n为奇数,则f(n)=(n-1)/2-n

代码:

#!/usr/bin/env python

# coding=utf-8

input_s = int(input())

if input_s % 2 > 0:

print(int(-(input_s // 2 + 1)))

else:

print(int(input_s / 2))

617A:

题目:

大象走路,一步两步三步四步,望着天,看星星,一颗两颗三颗四颗,连成线。。。跑题了。。。大象一步只能走1-5米的距离,请问n米远,大象需要走几步。

思路:

5米一步,不足5米还是一步。

代码:

#/usr/bin/env python

# coding=utf-8

input_s = int(input())

mount = input_s // 5

if input_s % 5 > 0:

print(mount + 1)

else:

print(mount)

208A:

题目:

由于DJ的remix会导致歌词混乱,会在每个词中间添加若干个“WUB”,寻找出原来的歌词。

思路:

替换“WUB”为空格,然后头尾去空格。(哈哈,高级语言的方便之处,啪啪啪,一行敲过,水题,就不自己去敲replace、strip功能了)

代码:

#!/usr/bin/env python

# coding=utf-8

input_s = input()

print(input_s.replace(‘WUB’, ‘ ‘).strip())

318A:

题目:

重新排序数字,先排奇数,从小到大,再排偶数,从小到大。问第几位是哪个数字?

思路:

由于给定数字范围很大,不能通过模拟排序来解答。用数学方式直接计算。计算出a个奇数。如果小于等于a则落在奇数区,则是数字为*2-1。如果大于a则落在偶数区,则数字应该是去掉前面a个,然后*2。

代码:

#!/usr/bin/env python

# coding=utf-8

input_s = input().split(‘ ‘)

a = int(input_s[0])

b = int(input_s[1])

half_a = a // 2 + a % 2

if b <= half_a:

print(b * 2 – 1)

else:

print((b – half_a) * 2)

451A:

题目:

木棍像“井”那样子摆放,横横竖竖。每次只能拿走交叉的一根横一根竖的木棍。没有交叉可以拿则算输。算出谁赢谁输。

思路:

找规律,最小的那个数决定结果。奇数,先手赢。偶数,后手赢。

代码:

#!/usr/bin/env python

# coding=utf-8

input_s = input().split(‘ ‘)

a = int(input_s[0])

b = int(input_s[1])

c = min(a, b)

if c % 2 == 1:

print(‘Akshat’)

else:

print(‘Malvika’)

469A:

题目:

两小孩一起玩游戏,每个人都能通过一些关卡。那么两个人一起玩能否通关?

思路:

老样子,依题意撸代码,洒洒水啦。(python,set特性,直接去重)

代码:

#!/usr/bin/env python

# coding=utf-8

input_s = int(input())

input_p = input().split(‘ ‘)[1:]

input_q = input().split(‘ ‘)[1:]

a = []

for i in input_p:

a.append(i)

for i in input_q:

a.append(i)

b = list(set(a))

if len(b) == input_s:

print(‘I become the guy.’)

else:

print(‘Oh, my keyboard!’)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/35717.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信