专栏文章
题解:UVA10050 Hartals
UVA10050题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @miqcndkq
- 此快照首次捕获于
- 2025/12/04 02:37 3 个月前
- 此快照最后确认于
- 2025/12/04 02:37 3 个月前
题目意思
总共有 个人,他们分别在 的倍数天罢工,但是如果罢工的日子是周六或者周日也就是周末,那就不算罢工,求 天中其余罢工的天数。
思路
模拟 + 暴力,我们可以在每一次输入的时候就从 遍历到 ,如果他罢工了且不在周末,那么就打上一个标记,最后的答案只需要统计一下了。
AC Code
CPP#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;
}
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...