选址
问题描述
蒜头君有一个数轴,数轴是一维的,数轴上标了 n 个点,其中第 i 个点的坐标为 pi ,注意每个点的坐标不一定不同,蒜头君想再画一个点,要求这个点到这 n 个点的距离之和最小。蒜头君想知道这个点的坐标是多少会符合要求,如果有多个坐标符合要求,取最小的。
输入、输出格式
输入两行,第一行包含一个正整数 nnn ,表示点数。
第二行包含 nnn 个正整数,pip_ipi 表示第 iii 个点的坐标。
输出一行,为一个整数,为所求的答案。
3
1 4 2
2
4
1 4 2 7
2
思路
求中位数
n=int(input())
p=list(map(int,input().split()))
count=0
def Xuanzhi(n,p):
global count
p.sort()
if(len(p)%2==0):
count=p[(len(p))//2-1]
else:
count=p[(len(p))//2]
Xuanzhi(n,p)
print(count)
农场周围的道路
问题描述
约翰的 N (1≤N≤10^9) 只奶牛要出发去探索牧场四周的土地.她们将沿着一条路走,一直走到三岔路口(可以认为所有的路口都是这样的)。这时候,这一群奶牛可能会分成两群,分别沿着接下来的两条路继续走。如果她们再次走到三岔路口,那么仍有可能继续分裂成两群继续走。
奶牛的分裂方式十分古怪:如果这一群奶牛可以精确地分成两部分(大小不能为零),这两部分的牛数恰好相差 K (1≤K≤1000),那么在三岔路口牛群就会分裂。否则,牛群不会分裂,她们都将在这里待下去,平静地吃草。请计算,最终将会有多少 群 奶牛在平静地吃草.
输入、输出格式
两个整数 N,K.
一个整数,表示最终奶牛会分成的群数。
6 2
3
N,K=map(int,input().split())
qunshu=1
#print(N,K)
def Nainiu(N,K):
global qunshu
if((N-K)/2>=1 and (N-K)/2%1==0):
a=(N-K)/2
#print(a)
Nainiu(N-a,K)
Nainiu(N-a-K,K)
qunshu=qunshu+1
#print(qunshu)
Nainiu(N,K)
print(qunshu)
回文子串
问题描述
给定一个字符串,输出所有长度至少为 2 的回文子串。
回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccdeedccc都是回文字符串。
输入、输出格式
输入一个字符串,由字母或数字组成。长度 500500500 以内。
输出所有的回文子串,每个子串一行。
子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。
123321125775165561
33
11
77
55
2332
2112
5775
6556
123321
165561
思路
暴力循环,变量i控制长度,变量j控制开始的位数
s=input()
#t='' asdsa
def check(i,j,s):#开始,结束
x=i
y=j
#print(i,j)
while(i<=j):
if(s[i]!=s[j]):
#print(s[i],s[j])
return 0
else:
i=i+1
j=j-1
#print(s[i],s[j])
for k in range(x,y+1):
print(s[k],end='')
print()
for i in range(1,len(s)+1):#长度
for j in range(len(s)-i):#开始位置
check(j,j+i,s)