zoukankan      html  css  js  c++  java
  • uva 10050 Hartals

    算法描述:开辟一个日期数组,清空为0,以1来标记当天已经有活动,不用再添加,每次从0变为1就计数一次。另外做一个预处理,将所有的周五和周六标记为1,但不能计数,没得到一个h,就调用函数在日期数组中搜索判断。判断所有h的倍数,如果为0,则计数并变为1

    #include <stdio.h>
    #include <string.h>
    #define MAX 3660
    bool date[MAX];
    int count,N;
    
    void manage()
    {
        int i;
        memset( date , 0 , sizeof(date) );
        for(i=7; i<=N+1; i+=7)  date[i]=date[i-1]=1;  //一定要N+1,不懂的话,想想N=12和N=13
    }
    void find(int h)
    { int i; for(i=h; i<=N; i+=h) if(!date[i]) { count++; date[i]=1;}  }
    int main()
    {
        int T,P,h,i;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d",&N); manage(); 
            scanf("%d",&P);
            for(count=0,i=1; i<=P; i++)
            {  scanf("%d",&h);  find(h); }
            printf("%d\n",count);
        }
        return 0;
    }
  • 相关阅读:
    Vue小实例
    Bootstrap进度条
    Bootstrap导航栏
    Bootstrap表单
    java date类
    正则表达式(java)规则大全
    正则表达式(java)
    java Stringbuffer类
    java String类
    object类
  • 原文地址:https://www.cnblogs.com/scau20110726/p/2712608.html
Copyright © 2011-2022 走看看