题解:UVA10050 Hartals
Crewmateqaq · · 题解
意外发现了一道红题
题目意思
总共有
思路
模拟 + 暴力,我们可以在每一次输入的时候就从
AC Code
#include <iostream>
#include <string>
#include <cmath>
#include <iomanip>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <cstdio>
using namespace std;
#define ll long long
using namespace std;
ll A[1000000];//标记数组
ll B[1000000];
ll sum;
int main()
{
ll t,n,m,i,j;
cin >> t;
while(t--)//t组数据
cin >> n >> m;
memset(A,0,sizeof(A));
for(i = 1;i <= m;i++)
{
cin >> B[i];//根据题意输入m个数
}
ll day;
for(i = 1;i <= m;i++)
{
for(j = 1;j <= n;i++)
{
day = j % 7;
if(day != 6 && day != 0)//不是周末
if(j % B[i] == 0)//如果是B[i]的倍数
A[i] = 1;//标记为一
}
}
}
}
for(i = 1;i <= n;i++)
{
sum += A[i];//求和,也可以在标记时直接加
}
cout << sum << endl;
}
return 0;
}