題目: UVa - 10050 - Hartals
題目說明
給某個天數及一些團體罷工的週期,從週日開始,週五及週六不算,求在這些天數中,罷工的天數為多少 ( 只要任意團體在該天罷工則該天視為罷工 )。
Input: 第一個整數 T
,表示有 T
組測資,後面兩個整數 N
、P
,分別代表天數及團體的數量,後面 P
個整數表示各團體罷工的週期。
Output: 輸出罷工的天數。
解題思路
先讀取測資,之後根據題意模擬即可。
參考解法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| #include <bits/stdc++.h>
using namespace std;
static auto __ = [] { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); return 0; }();
int N; int P; int hartalCycles[101];
void read() { cin >> N >> P; for (int i = 0; i < P; ++i) cin >> hartalCycles[i]; }
void solve() { int hartal = 0; for (int i = 1; i <= N; ++i) { if (i % 7 == 6) { ++i; continue; }
for (int j = 0; j < P; ++j) if (i % hartalCycles[j] == 0) { ++hartal; break; } } cout << hartal << '\n'; }
int main() { int T; cin >> T; while (T--) { read(); solve(); } }
|
參考資料
Programming學習筆記: UVa 10050 Hartals