一个社会研究组织决定通过一组简单的参数来模拟国家政党的行为.
第一个参数一个正整数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#include #include #include 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< <
posted on 2017-06-11 18:33 阅读( ...) 评论( ...)