首页 > 代码库 > uva-10050-模拟水题
uva-10050-模拟水题
一个社会研究组织决定通过一组简单的参数来模拟国家政党的行为.
第一个参数一个正整数h(叫做罢工参数),用于指示在对应的政党在
俩个连续休假之间的平均天数.虽然这个参数太简单了,它不是最完美的参数.
但是它还是可以用来预测因为罢工带来的损失.以后是计算的例子.
考虑三个政党,假设h1=3,h2=4,h3=8,hi代表i政党的罢工参数.下一步,我们将模拟这三个
政党在N=14天内的行为.模拟的天数总数从周天开始,假设在周末假期(周五和周六)没有罢工.
以上的模拟表明在14天内有五天罢工.在第六天没有罢工,因为它是周五,因此我们在俩周内
有5天是没有工作的.
在这个问题内,给你几个政党的罢工参数和N的值,你的任务是计算出在N天内有多少天因为
罢工没有工作.
输入
输入的第一行是单个int类型的T表示有多少组测试用例.
每一个测试用例的第一行包含一个int N(7<=N<=3650)表示这次模拟的天数.
下一行包含另外一个int P(1<=p<=100)代表政党的数目,
P后面的第i行包含一个正整数hi(永远不会是7的倍数)表示政党i的罢工参数.
输出
AC:0ms
#include<stdio.h>#include<iostream>#include<queue>#include<memory.h>using namespace std;const int N = 3650+10;const int P = 100+10;int main(){ freopen("d:\\1.txt", "r", stdin); int t; cin >> t; while (t--) { int n, p; cin >> n; cin >> p; int a[P][N]; memset(a, 0, sizeof(a)); int pp[P]; memset(pp, 0, sizeof(pp)); for(int i = 1; i <= p; i++) cin >> pp[i]; for(int i = 1; i <= n; i++) { if(i % 7 == 6||i%7==0) continue; for(int j = 1; j <= p; j++) if(i%pp[j]==0) { a[j][i] = 1; } } int total = 0; for(int i = 1; i <= n; i++) { if(i % 7 == 6||i%7==0) continue; for(int j = 1; j <= p; j++) if(a[j][i] == 1) { total++; break; } } cout<<total<<endl; } return 0;}
uva-10050-模拟水题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。