2020年6月8日 星期一

c521: 6. 顯微探測 解題心得

Virus, Microscope, Infection, Disease, Death, Medical

2017高雄市資訊學科能力複賽


數學不好,不知道有什麼數學公式能解決這個問題,如果你是跟我依樣數學不怎麼樣的工程師,請學會觀察,觀察測資與結果的關係。以範例四為例:
s0 + s1 + s2 = 2             0
s0 + s1 + s2 + s3 = 2     1
s0 + s1 + s2 + s3 + s4 = 3     2
        s1 + s2 + s3 + s4 + s5 = 2     3
                s2 + s3 + s4 + s5 + s6 = 3    4
                        s3 + s4 + s5 + s6 = 2    5
                                s4 + s5 + s6 = 2    6
S0代表第一隻細菌發出的光強度,如果想算出所有的細菌的加總,就是2 + 2 = 4如下圖。
故程式碼如下:

#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n, m, k;
cin >> n >> m >> k;
vector<int> v;
v.assign(n, 0);
for (int i = 0; i < n; i++) {
cin >> v[i];
}
long long sum = 0;
for (int i = 0; i <= k; i++) {//可接受的起點,超過K就取不到第一隻細菌
int j = i;
sum = 0;
for (j = j; j < n - k - 1;) {
sum += v[j];
j += 2 * k + 1;//
}
if (j == n - 1 || (j+k > n and j < n)) {
sum += v[j];
cout << sum << endl;
break;
}
}
}


如果還是不清楚請在下面留言,或是EMAIL我,我會一一回覆。

沒有留言:

張貼留言

o079. 4. 最佳選擇

 題目描述: 給一個長度為 n 的正整數序列 a1,a2...an ,你可以執行多次操作 (包含 0 次),每次操作只能選擇這個序列的第一個或最後一個數字,再將這個數字從序列中刪除並自己搜集起來。 求滿足總和不超過 k 且搜集的數字奇數和偶數個數相同的條件下,所能搜集的數字總和最...