1、把任意一個數a開b次方
輸入樣例:
1000 2
輸出樣例:
31.622777
代碼:
# 二分法
import sys
line = sys.stdin.readline().strip().split()
a = float(line[0])
b = int(line[1])
low = 0
high = a
res = (low+high)/2.0
while abs(res**b-a) > 10**(-8):
if res**b>a:
high = res
else:
low = res
res = (low+high)/2.0
print '%.6f'%res
# 感覺這題有兩個bug:
# 題目描述是輸出小數點後7位,但是輸出樣例是6位,輸出6位時全A
# 測試while循環的邊界條件時發現 > 10 ** (-4, -5, -6, -7)都能全A
2、有向圖中的環
給定一個有向圖,判定其中是否存在環
輸入描述:
一個用鄰接矩陣定義的有向圖,可以直接用json.loads()讀取,格式如下: {"a": ["b", "c", "d"], "b": ["a", "d"], "c": ["d"]} 其中字典中的key是節點名,value是這個節點所有孩子的節點名 從標準輸入讀取一個str,使用json.loads()轉換爲dict, 如果用其他編程語言,需要考慮怎麼把string解析成json格式
輸出描述:
如果圖中有環,打印True到標準輸出 否則,打印False到標準輸出
輸入樣例:
{"a": ["b", "c"], "b":["e"], "c":["d"], "e": ["a"]}
輸出樣例:
True
我的其他測試樣例:{"a": ["b", "c", "d"], "b": ["a", "d"], "c": ["d"]}; {"a": ["b", "c", "e"], "b":["e"], "c":["d"]}; {"a": ["b", "c"], "b":["e"], "c":["d"], "e": ["a"]}; {"a": ["b"], "b": ["c"], "c":["a"]}; {"a": ["b"], "b": ["c"]}
代碼:
# 深度優先搜索
import json
import sys
from collections import defaultdict
def dfs(v, dic, visited):
if visited[ord(v)-ord('a')]:
res = True
else:
res = False
visited[ord(v)-ord('a')] = 1
if v in keys:
temp = dic[v]
for i in temp:
res = dfs(i, dic, visited)
return res
visited[ord(v)-ord('a')] = 0
return res
global keys
line = sys.stdin.readline().strip()
dic = json.loads(line)
keys = dic.keys()
visited = [0] * 26
res = dfs(keys[0], dic, visited)
print res
很慚愧筆試的時候沒有寫出來,通過暴力 print True A了50%
剛剛自己測了五組數據都通過了,但是不知道還有沒有其他的問題,大佬們如果發現有bug一定要告訴我呀,小白感激不盡(默認輸入爲連通圖)
3、分糖果
代碼:
import sys
n = int(sys.stdin.readline().strip())
a = map(int, sys.stdin.readline().strip().split())
res = 0
if sum(a)%n != 0:
res = -1
else:
ave = sum(a)/n
for i in a:
temp = i - ave
if abs(temp)%2:
res = -1
break
elif temp>0:
res += temp/2
print res
總結:一個半小時,20道單選,3道編程,編程一共A了2.5題,第二題沒有OJ測試過,所以如果大佬們發現了bug一定要告訴我呀 (from: 一個對自己沒有信心的小白)