hdu 1707 (简单数学)

点击打开链接


刚开始没理解,忽略了天数和时间的的关系。后来才改过来。。。

没什么难度,就个结构体。。(刚开始以为是线段树。。)

#include"stdio.h"
#include"string.h"
#include"stdlib.h";
struct node
{
    int day[10][15];
    char name[21];
}A[201];
int cmp(const void*a,const void*b)
{
    return strcmp((*(struct node*)a).name,(*(struct node*)b).name);
}
int main()
{
    int t;
    int n;
    int nn;
    int nnn;
    int i,j,l;
    int a,b,c;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        memset(A,0,sizeof(A));
        for(i=0;i<n;i++)
        {
            scanf("%s",A[i].name);
            scanf("%d",&nn);
            for(j=0;j<nn;j++)
            {
                scanf("%d%d%d",&a,&b,&c);
                A[i].day[a][0]=1;
                for(l=b;l<=c;l++)
                    A[i].day[a][l]=1;
            }
        }
        qsort(A,n,sizeof(A[0]),cmp);
        int cnt,f;    
        scanf("%d",&nnn);
        for(i=0;i<nnn;i++)
        {
            cnt=f=0;
            scanf("%d%d%d",&a,&b,&c);
            for(j=0;j<n;j++)
            {
                if(A[j].day[a][0]==1)
                {
                    for(l=b;l<=c;l++)
                    {
                        if(A[j].day[a][l]==1)
                        {
                            cnt++;f=1;
                            if(cnt==1)printf("%s",A[j].name);
                            else printf(" %s",A[j].name);
                            break;
                        }
                    }
                }
            }
            if(!f)printf("None");
            printf("\n");
        }
    }
    return 0;
}


原文地址:https://www.cnblogs.com/yyf573462811/p/6365123.html