小白书数据结构基础线性表的训练参考
题目链接 http://acm.hust.edu.cn/vjudge/problem/19134
解题思路
直接模拟。遇到星期五六忽略就行。
代码
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
const int maxLen = 101;
const int maxDay = 3651;
int partyDay[maxLen];
bool Day[maxDay];
int main()
{
int cases;
cin >> cases;
while(cases--) {
memset(Day, false, sizeof(Day));
int day, party;
int tot = 0;
cin >> day >> party;
for(int i=0; i< party; i++) cin >> partyDay[i];
for(int i=0; i< party; i++) {
int j=0; j+= partyDay[i];
while(j<=day) {
if((j+1)%7!=0 && j%7!=0) {
Day[j] = true;
j+= partyDay[i];
}
else j+= partyDay[i];
}
}
for(int i=1; i<=day; i++) if(Day[i]) tot++;
cout << tot << endl;
}
return 0;
}