異 形 卵 南陽acm709
阿新 • • 發佈:2018-08-22
時間 geo -a 約束 標記 stream 測試 %d arc
異 形 卵
時間限制:1000 ms | 內存限制:65535 KB 難度:2- 描述
-
我們探索宇宙,是想了解浩瀚星空的奧妙,但我們卻很少意識到宇宙深處藏匿的危險,它們無時無刻不緊盯著我們的地球。如果外星人拜訪我們,結果可能與哥倫布當年踏足美洲大陸不會有什麽兩樣,這是歷史,也是現實。
在ZDM-777星球上發現的休眠異形卵,其外表與常見的卵不同,表面被一層石墨覆蓋。當人走近時,那層石墨開始消融,能看到裏面的異形卵正在活動,異形卵是活物,具備一些熱量或壓力傳感器這些基本的中樞神經系統,通過感知周圍的熱量,選擇熱量最大處寄生。不過,假如周圍有不適合被寄生處,異形卵就選擇休眠。
周圍的熱量可以用一串整數a1
異形卵是如何感知它的寄生處呢?我們探索宇宙,是想了解浩瀚星空的奧妙,但我們卻很少意識到宇宙深處藏匿的危險,它們無時無刻不緊盯著我們的地球。如果外星人拜訪我們,結果可能與哥倫布當年踏足美洲大陸不會有什麽兩樣,這是歷史,也是現實。
在ZDM-777星球上發現的休眠異形卵,其外表與常見的卵不同,表面被一層石墨覆蓋。當人走近時,那層石墨開始消融,能看到裏面的異形卵正在活動,異形卵是活物,具備一些熱量或壓力傳感器這些基本的中樞神經系統,通過感知周圍的熱量,選擇熱量最大處寄生。不過,假如周圍有不適合被寄生處,異形卵就選擇休眠。
周圍的熱量可以用一串整數a1,a2,……,an來表示,異形卵具有一定的長度L,異形卵總是選擇ai+ai+1+…+ai+L-1達到最大值處寄生。若周圍的熱量低於0,異形卵則選擇休眠。
異形卵是如何感知它的寄生處呢?
- 輸入
- 第一行: K 表示有多少組測試數據。
接下來對每組測試數據有2行,第1行: L N
第2行:a1 a2 …… aN
【約束條件】
2≤K≤5 L≤N, 1≤L≤10 1≤N≤1000 -100≤ ai≤100
數據之間有一個空格。 - 輸出
- 對於每組測試數據,輸出一行:異形卵能寄生的起始位置。若有多處可以寄生,則選擇小的起始位置。若無處可以寄生,則輸出0。
- 樣例輸入
-
2 3 5 30 0 100 -30 100 3 5 -100 80 -80 -100 80
- 樣例輸出
-
3 0
- 來源
- 第六屆河南省程序設計大賽
- 上傳者
- ACM_趙銘浩
- 算法思想:先把1到L的溫度相加,然後再把1處的溫度用L+1處代替,相當於往後移動一位,以此類推,具體看代碼,有註釋。
- 代碼:
-
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 { 6 int i,j,k,n,l; 7 int a[1005]; 8 scanf("%d",&k); 9 while(k--) 10 { 11 scanf("%d%d",&l,&n); 12 for(i=1; i<=n; i++) 13 scanf("%d",&a[i]); 14 int sum = 0, max; 15 for(i=1; i<=l; i++) //把1到L的溫度相加 16 sum+=a[i]; 17 max = sum; //賦值給max 18 for(i=1; i<=n-l; i++) 19 { 20 sum = sum-a[i]+a[i+l]; //sum減去i處的溫度加上L+i的溫度,相當於往後移動一位 21 if(max < sum) 22 { 23 max = sum; 24 j = i+1; //找到比他大的,標記 25 } 26 } 27 if(max < 0) 28 printf("0\n"); 29 else 30 printf("%d\n",j); 31 } 32 return 0; 33 }
異 形 卵 南陽acm709