日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

牛客网编程题python输入输出_牛客网算法题目记录

發(fā)布時間:2025/1/21 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 牛客网编程题python输入输出_牛客网算法题目记录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

車站建設(shè)問題

有10^8個村莊排在一條公路上,依次編號為0~10^8-1,相鄰村莊距離為1,其中有n個村莊居住著牛牛,居住著牛牛的村莊從小到大依次為a0~an-1,其中保證a0=0.

現(xiàn)在需要建設(shè)車站,有兩個要求必須被滿足:

1、每個有牛牛居住的村莊必須修建車站。

2、相鄰車站的距離必須為1或為某個質(zhì)數(shù)。

現(xiàn)給出n和a數(shù)組,求需要建設(shè)車站的最小數(shù)量。

實例:

輸入:3,[0,7,11]

輸出:4

Python3解決:

# 判斷是否是質(zhì)數(shù)

import math

class Solution:

def if_n(self, num):

if num == 0 or num == 1:

return False

if num == 2:

return True

for i in range(2,int(math.sqrt(num) + 1)): #注意使用平方根來判別,否則超時。

if num%i == 0:

return False

return True

def work(self, n, a):

need_a = 0

for i in range(n - 1):

# 兩個站之間的距離

temp = a[i+1] - a[i]

if self.if_n(temp) or (temp) == 1:

continue

else:

if temp%2 == 0:

need_a += 1

continue

else:

if self.if_n(temp - 2):

need_a += 1

continue

else:

need_a += 2

continue

return n + need_a

主要是用到了哥德巴赫猜想:

(1)一個大于2的偶數(shù),必然可以表示為兩個質(zhì)數(shù)之和。

(2)一個大于2的奇數(shù)p,可以表示為p = p -?2 + 2

如果p-2 為質(zhì)數(shù)則p可以表示為兩個奇數(shù)之和,否則p可以表示為三個質(zhì)數(shù)之和。

回路問題1

牛牛在一個迷宮中,迷宮有?nn個格子,有?m條通道,每條通道連接兩個格子?u,?v,編號為?u的格子可到達編號為?v?的格子,每人每條通道只能走一次。

牛牛想知道,他是否能從?11?號格子出發(fā)回到?11?號格子。

輸入

第一行給定兩個整數(shù)?nn?,?mm?。

接下來?mm?行,每行有兩個整數(shù)?uu,vv?。

1 \leq n \leq 100,000 \quad 0 \leq m \leq 100,000\quad 0 \leq L \leq m1≤n≤100,0000≤m≤100,0000≤L≤m

m對 u, v 互不相同

輸出

若能回到?11?號格子則返回Yes,否則返回No。

Python3解答:

class Solution:

# 獲取下一個點的集合

def get_next(self, key, p):

res = []? # 剔除的邊

res1 = []? # 剔除已經(jīng)選取的邊之后

for t in p:

if t.x is key:

res.append(t)

if t.x is not key:

res1.append(t)

return res, res1

# 從具有相同起點的點之中計算是否可行

def chexh(self, res, res1):

for th in res:

if th.y is 1:

return "Yes"

res, res1 = self.get_next(th.y, res1)

if res is []:

return "No"

rest = self.chexh(res, res1)

if rest is "Yes":

return "Yes"

return "No"

def solve(self, param, edge):

# write code here

ned, ned1 = self.get_next(1, edge)

return self.chexh(ned, ned1)

總結(jié)

以上是生活随笔為你收集整理的牛客网编程题python输入输出_牛客网算法题目记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。