序列平衡點

2021-07-05 14:45:51 字數 1333 閱讀 8409

題目一:

乙個序列的平衡點是這樣的,它的左邊的所有的元素的和應該等於右邊的所有的元素的和,比如在下面的序列a:

a[0] = -7 a[1] = 1 a[2] = 5 a[3] = 2 a[4] = -4 a[5] = 3 a[6] = 0

3是乙個平衡點因為:

6也是乙個平衡點因為:

(零個元素的和是零) 索引7不是平衡點,因為它不是序列a的有效索引。

如果你仍然不是很清楚,那麼這裡給出了明確的定義:0 ≤ k < n 並且 sum[i=0]k-1 a[i] =sum[i=k+1]n-1 a[i]。時, 整數k是序列a[0], a[1], ..., a[n−1] 的平衡點,這裡我們假定零個元素的和為零。

請寫乙個函式

int solution(vector&a);

返回給定序列的平衡點(任意乙個)如果沒有平衡點則返回−1,假設這個序列可達到非常大。

假定:

複雜度:

輸入陣列中的元素可以修改.

**如下:

#include #include using namespace std;

int solution(vector& a)

if (left_sum == right_sum) return 0;

for (size_t i = 1; i < a.size(); i++)

} return -1;

}int main()

a.clear();

} return 0;

}

變形題目二:

給定乙個元素個數至少為5的正整數陣列,兩個索引將陣列分為三段(其中索引指定的元素不計算在段內),並且每段都至少有乙個元素。求是否有這樣的索引對使得這三段元素中每段之和都相等。若存在這樣索引對,則返回1,否則返回0。

#include #include using namespace std;

int solution(vector& a)

while (head < tail - 1)

} else if (left_sum < right_sum) else

} return 0;

}int main()

cout << solution(a) << endl;

a.clear();

} return 0;

}

平衡點 balance 題解

現有一張無限大的桌子 二維平面 桌面上有n個洞,每個洞有一根繩子穿過掛著乙個重物,質量為wi,洞的座標為 xi,yi 這n根繩子有個公共的繩結,求系統平衡後繩結的座標。輸入第一行為乙個正整數n 1 n 10000 表示洞的數目。接下來n行,每行三個整數xi,yi,wi,表示第i個重物的橫座標,縱座標...

奇妙 P1337 JSOI 平衡點

機房的dalao們還在樹裡面搖擺,平衡來平衡去的 我不喜歡冗長的 於是不想看。一不小心看到了 模擬退火 這個詭異名稱 結果發現這演算法給的例題有毒。但是一不小心在洛谷找到了乙個號稱是用這個演算法做的題。我拿著我自己沒a過題的對模擬退火的理解,理解了這道題的題解 覺得好像思路還是可以借鑑的。其實,就是...

簡記平衡點問題的實現及改進

從論壇上看到乙個平衡點的考題,問題如下 quote 1.平衡點問題 平衡點 比如int numbers 25前面的總和為24,25後面的總和也是24,25這個點就是平衡點 假如乙個陣列中的元素,其前面的部分等於後面的部分,那麼這個點的位序就是平衡點 要求 返回任何乙個平衡點 quote 跟帖中有人採...