> 文章列表 > 第五届SCPC中南民族大学程序设计竞赛-python

第五届SCPC中南民族大学程序设计竞赛-python

第五届SCPC中南民族大学程序设计竞赛-python

本人只过了六道简单题,是个水货

A.简单题

链接:https://ac.nowcoder.com/acm/contest/55672/A
来源:牛客网
给你一个只包含小写字母的字符串ss ,你可以重新排列这个字符串并且删除任意个(可以不删)位置的字符使它变成一个回文串,请问能变成的最长回文串的长度是多少。

(注:回文串指的是一个正着读和反着读都一样的字符串。)

感想:当时题都没读明白就开始写,写了一个求最长回文子序列的代码,反复提交了十次才意识到自己题读错了,把简单题做成了难题
出现偶数次的直接一前一后,出现奇数次的只能提取一个放在最中间,所以说奇数的只能保留一个,其他奇数次都需要减一,也就是舍弃一个,变成偶数个

s=input()
# 记录26个字幕出现次数
st=[0]*26
# flag记录此时是否有1个技术可以被放在最中间
flag=1
for i in s:st[ord(i)-97]+=1
ans=0
for i in st:if i&1:if flag:ans+=i# 标注不可以再计算奇数了flag=0else:ans+=i-1else:ans+=i
print(ans)

B.SCPC的个数
链接:https://ac.nowcoder.com/acm/contest/55672/B
来源:牛客网

有一天,小G打开学校史册,翻看着辉煌的历史!但里面包含了太多文字,他本想把所有大写的"SCPC"的连续字符串圈起来,但由于到了饭点,小G必须准时吃饭!因此他想让你帮他圈出所有的包含"SCPC"的字符串,聪明的你能帮助他完成吗?最后你只需告诉他一共需要圈多少次即可。

思路就是在找出字符串中有多少个SCPC

s=input()
print(s.count('SCPC'))

C.你还要我怎样
链接:https://ac.nowcoder.com/acm/contest/55672/C
来源:牛客网

题目描述
小兔子每天拿着鱼竿去钓鱼,却怎么也钓不到,因为他用的是胡萝卜。你能给她最好的,并不是她想要的……

小HH有一个数字 1,他想送给小K,但是她很喜欢另外一个数 y,于是小H努力学习了两个神奇的魔法:
将x变为x×2
将xx变为x×2+1
小H发现如果他做错了一步,那么他永远也给不了小K她喜欢的数字了,他想知道怎么操作才能变成 y。
输入描述:
输入一个数
输出描述:
输出若干个数,用空格隔开,表示使用魔法标号的顺序。
如果不能变为 y 则输出 −1
输入5
输出1 2

思路
将一个数乘以2就是将这个数右移一位,就是将二进制末尾补0
将一个数乘以2加1就是在数字的二进制末尾加了一个1
初始数字是1,其二进制就是1
目标值是目标值的二进制
所以实例的5变为1就相当于如何将1变为101

x=int(input())
x=bin(x)[3:]
ans=[]
for i in x:if i=='1':ans.append('2')else:ans.append('1')
print(' '.join(ans))

当时做题的时候没有想到二进制,只是想着好像所有数字都可以用这个操作得到,奇数肯定是操作2得到的,偶数肯定是操作1得到的

x=int(input())
ans=[]
while x!=1:if x&1:ans.append('2')x=(x-1)//2else:ans.append('1')x//=2
ans=ans[::-1]
print(' '.join(ans))

F.K个不同数和为n
链接:https://ac.nowcoder.com/acm/contest/55672/F
来源:牛客网

题目描述
历经千辛万苦之后,小光终于逃离了那个恐怖的迷宫空间,在梦中找到了他的牟牟,他醒来之后把这个故事告诉了他的牟牟

牟牟在听到了这件事情之后非常的感动,她决定奖励他,但是她又不想很轻易地让他得到这个奖励,于是他给小光出了一道题:

这有两个正整数 n 和 k,要小光构造出一个由 nn 个不同正整数组成的序列,使得它们的和等于 k,小光发现自己不太会,于是他来求助于你,你能帮他得到一个满足牟牟要求的序列吗。如果不存在这样的序列,则返回 −1。

思路 用1-----k-1来凑一个数,第k个数等于差值
有点贪心的思想,全用最小的

n,k=map(int,input().split())
ans=0
for i in range(1,n):ans+=i
# 1~n-1都用过了
if k-ans<n:print(-1)
else:l=[str(i) for i in range(1,n)]+[str(k-ans)]print(' '.join(l))

搞笑gif下载