用於計算物理實驗的 C++ 程式碼
假設我們正在進行物理實驗。我們給定 n 對值和閾值 k。將每對值中的第一個值新增到總值,將每對值中的第二個值也新增到另一個總值。現在,我們檢查總值是否為最小值,或者 (k - 總值) 是否為最小值。我們對兩個總值都執行此操作,然後將它們相加並列印輸出。
因此,如果輸入像 n = 4, k = 20, values = {{3, 5}, {4, 3}, {2, 1}, {4, 4}}, 則輸出將為 14。
步驟
為了解決這個問題,我們將遵循以下步驟 -
a := 0, b = 0 for initialize i := 0, when i < n, update (increase i by 1), do: a := a + first value of values[i] b := b + second value of values[i] print(min((a, k - a) + minimum of b and k - b))
示例
讓我們看看以下實現以加深理解 -
#include <bits/stdc++.h>
using namespace std;
#define N 100
void solve(int n, int k, vector<pair<int,int>> values) {
int a = 0, b = 0;
for(int i = 0; i < n; i++){
a += values[i].first;
b += values[i].second;
}
cout<<min(a, k - a) + min(b, k - b);
}
int main() {
int n = 4, k = 20;
vector<pair<int,int>> values = {{3, 5}, {4, 3}, {2, 1}, {4, 4}};
solve(n, k, values);
return 0;
}輸入
4, 20, {{3, 5}, {4, 3}, {2, 1}, {4, 4}}輸出
14
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP