題目描述
眾所周知,hrs學長實力強悍,就沒有我hrs不會的題,打比賽的時候經常占著鍵盤不下來,
隊友第一次來借鍵盤:hrs:“等會兒,這道題我快A了”, 幾分鐘過后,隊友第二次來借鍵盤:hrs:“慌啥,剛剛題意弄錯了,我改下”,
十分鐘過后,隊友又來催了,hrs:“你在教我做事”,,,,,, 幾分鐘后,hrs學長極不情愿地離開他心愛的鍵盤,
隊友成功地摸到了鍵盤,看著手下熟悉而又陌生的鍵盤,隊友一時間竟不知道該做些什么,就在這時,hrs的聲音響起,“給你10分鐘寫這題,寫不完就換我來”,hrs學長太強了,隊友苦思冥想兩個小時的題,對hrs來說,不過是一眼題罷了,
什么,你說前面有道題說hrs很菜,一眼看不出來,→_→,那道題是他自己出的,那叫謙虛,懂? 啥,我覺得hrs學長是個cj,
這樣,來看看hrs學長的一眼題, 這里有n個小球,每個小球都有一個隨機編號,你可以執行以下操作,
從這n個小球挑選出幾個小球,將這些小球上面的編號相加,這樣我們就得到了一個數字, 令mi為無法通過以上操作得到的最小正整數,輸出mi-1,
輸入
第一行一個數字T,表示T組測驗資料,(0<T≤10) 每組資料有兩行輸入, 第一行一個整數n,表示小球的個數,(1≤n≤ 10)
第二行n個整數a1,a2,a3,…,an(1≤i≤n,0<ai≤1000),表示小球上面的編號,
輸出
輸出每組資料的mi-1
樣例輸入
3
3
1 2 3
3
3 3 3
3
1 1 1
樣例輸出
6
0
3
參考代碼:
#include<bits/stdc++.h>
using namespace std;
int main() {
int T;
cin >> T;
int dp[10005];
while(T--) {
memset(dp, 0, sizeof(dp));
int n, ans = 0;
cin >> n;
int arr[n];
dp[0] = 1;
for(int i = 0; i < n; i++) {
cin>>arr[i];
}
for(int i = 0; i < n; i++) {
for(int j = 10000; j >= 0; j--) {
if(dp[j] == 1) {
dp[j+arr[i]] = 1;
}
}
}
for(int i = 1; i < 10004; i++) {
if(dp[i] == 0) {
cout << i-1 << endl;
break;
}
}
}
}
第一次寫博客,鍛煉一下自己,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/231073.html
標籤:其他
上一篇:ESP32編譯環境(Ubuntu 18.04 amd64)
下一篇:桂電信科2020程式設計大賽題解
