光合作用 (二分)

2021-08-08 17:50:12 字數 1442 閱讀 5189

蒜頭是個愛學習的孩子,他總喜歡在生活中做一些小實驗,這次蒜頭想研究一下光合作用。

蒜頭的實驗材料有如下幾樣:神奇的種子,普通的紙箱和一些光源。一開始,蒜頭將種子均勻的種在了箱子底部,你可以將其看成 x

x 軸,種子的位置為 x

x 軸上的點。然後蒜頭用紙板將箱子蓋住,並在紙板上安裝了一些光源(具體見圖)。神奇的種子會在有光的情況下一直向上生長直到沒光為止。現在蒜頭想知道當實驗結束時每顆種子的高度是多少?

頂上的為光源,光源兩邊與頂部的夾角都為 45^45

​∘​​

,黃色部分為光照,綠色的為植物。

第一行輸入乙個整數 t

t,表示測試資料的組數。

每組資料的第一行是三個整數 n,m,h(1 \leq n,m \leq 10^5, 0 \leq m \leq 10^5, 1 \leq h \leq 10^4)n,

m,h(

1≤n,

m≤10

​5​​

,0≤m

≤10​

5​​,

1≤h≤

10​4

​​),n

n 表示種子數(編號為 1 \cdots n1⋯

n),m

m 表示光源數,h

h 表示箱子的高度。

接下來 m

m 行,每行乙個整數 x_ix​

i​​ 表示第 i

i 個光源在頂部的位置。

對於每組測試資料,請輸出 n

n 行,每行乙個數表示第 i

i 顆種子的最終高度。

樣例輸入

2

7 1 2

44 4 112

34

樣例輸出

001

2100

1111

二分查詢植物的前後兩個光源,然後判斷大小

#include#include#include#include#include#include#includeusing namespace std;

int main();

for(int i=1;i<=m;i++) scanf("%d",&num[i]);

sort(num+1,num+m+1);

for(int i=1;i<=n;i++)

if(index==m+1)

if(index==1)

if(num[index]==i) maxn=h;

else if(num[index]-i<=h&&num[index]-i=i-num[index-1])maxn=h-(i-num[index-1]);

printf("%d\n",maxn);

} } return 0;

}

光合作用(思維)

輸入 第一行輸入乙個整數 t,表示測試資料的組數。每組資料的第一行是三個整數 n,m,h 1 n,m 1e5,0 m 1e5,1 h 1e4 n表示種子數 編號為1,2 n m表示光源數,h 表示箱子的高度。接下來m行,每行乙個整數xi表示第i個光源在頂部的位置。輸出對於每組測試資料,請輸出n行,每...

光合作用的過程

一 論證思路資料 主張 1642年,v helmont把一株2.3kg重的柳樹重在90.8kg的乾土中,用雨水澆灌,5年後小柳樹長成了重76.7kg的植株,而土壤重量僅比實驗開始時減少了57g。水是建造植物體的原料。1771年,j priestley發現將薄荷枝條和燃燒著的蠟燭放在乙個密封的鐘罩內,...

1128 二分 二分查詢

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述nettle最近在玩 艦 因此nettle收集了很多很多的船 這裡我們假設nettle氪了很多金,開了無數個船位 去除掉重複的船之後,還剩下n 1 n 1,000,000 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...