2014-06-17 23:09:28
题意&思路:简单题,开个标记数组。(需要注意的是(i + 7) % 7 - 1,中的i + 7防负操作)
1 #include <cstdio> 2 #include <iostream> 3 #include <cstring> 4 using namespace std; 5 6 int main(){ 7 int T,N,P,h[105],d[3655]; 8 scanf("%d",&T); 9 while(T--){ 10 memset(d,0,sizeof(d)); 11 scanf("%d",&N); 12 scanf("%d",&P); 13 for(int i = 1; i <= P; ++i){ 14 scanf("%d",&h[i]); 15 for(int j = h[i]; j <= N; j += h[i]){ 16 d[j] = 1; 17 } 18 } 19 int cnt = 0; 20 for(int i = 1; i <= N; ++i){ 21 if(d[i] && (i + 7) % 7 - 1 != 5 && (i + 7) % 7 + 7- 1 != 6){ 22 ++cnt; 23 //printf("s %d\n",i); 24 } 25 } 26 printf("%d\n",cnt); 27 } 28 return 0; 29 }