Codeforces通关之旅(四)

Codeforces通关之旅(四)

首页动作格斗Code斩更新时间:2024-05-12

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

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!')

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved