題目看起來特別簡單,十分鐘搞定兩道題代碼部門,然後剩下50分鐘調bug。。。。幾乎遍歷了所有的方法
但是無論怎麼改第一題都只能A 36% ,第二題只能A 9%。筆試結束後問了身邊的小夥伴,大都和我相似的情況。
順便 有沒有全A的小夥伴,求思路。
1、定點射門
時間限制:C/C++語言 1000MS;其他語言 3000MS
內存限制:C/C++語言 65536KB;其他語言 589824KB
題目描述:
在一檔綜藝節目中,有一個定點射門的遊戲,在一條直線上有n個球門區域,這些球門的大小並不一樣,用形如“a b”的方式表示,球門區域是從a座標到b座標的區域,另外在距離球門所在直線不遠處的平行軸處,有若干個擺放好的足球,由於參加綜藝的人並不是專業運動員,因此只會將該直線a座標處的足球踢到另一條直線的a座標處。
球門可能會有重合,對於任何一個重合的位置,你可以任選一個球門踢入。只要有一個球門內有進球,就可以加一分,這位選手最多可以得多少分。
一顆球不可以在兩個球門中重複計數,門柱等問題忽略不計。
輸入
輸入第一行僅包含兩個正整數n,m,表示有n個球門,m顆球。 接下來n行,每行有兩個正整數a,b,表示球門的範圍。(1<=a,b<=1000) 再接下來m行,每行有一個正整數x,表示球所在的座標。(1<=x<=1000)
輸出
輸出包含一個正整數,表示最大得分
樣例輸入
3 3 1 5 2 6 7 8 2 4 8
樣例輸出
3
代碼:
import sys
n, m = map(int, sys.stdin.readline().strip().split())
hash_set = [0] * 1001
res = 0
for i in range(n):
a, b = map(int, sys.stdin.readline().strip().split())
for j in range(a, b+1):
hash_set[j] = 1
for i in range(m):
x = int(sys.stdin.readline().strip())
if hash_set[x]:
res += 1
print res
2、跳躍遞推
時間限制:C/C++語言 1000MS;其他語言 3000MS
內存限制:C/C++語言 65536KB;其他語言 589824KB
題目描述:
很多數列都是遞推形成的,現在給出一個序列的前四項,a[1],a[2],a[3],a[4],已知遞推式是a[n]=a[n-1]+a[n-3]+a[n-4]。請你求出第n項的值。
輸入
輸入僅一行,包含4個正整數a[1],a[2],a[3],a[4]及n。
輸出
輸出僅包含一個正整數,即a[n],但是由於這個數可能非常大,所以請輸出答案對10^9+7取模的結果。
樣例輸入
1 2 3 4 20
樣例輸出
9790
代碼:
import sys
line = sys.stdin.readline().strip()
a, b, c, d, n = map(int, line.split())
for i in range(4, n):
temp = (a + b + d)%1000000007
a = b
b = c
c = d
d = temp
#import pdb;pdb.set_trace()
print temp
感人。。。