++++++++++++++++++++++++++++++++++++++++++++1076+++++++++++++++++++++++++++++++++++++++++++++++++++

 

//妈妈咪呀  终于知道为啥错了,真是日了神狗哮天犬了.
//日了神狗 哮天犬   日了神狗哮天犬  日了神狗哮天犬.
//看来当你没有思路不知道哪里错了的时候  去吧程序在写一遍是很重要的  么么么么么么么哒.
//当你想减少时间复杂度  而不得不  增加空间复杂度的时候    很可能因为   在减少时间复杂度的时候  把其中的变量给弄错.
#include<stdio.h>
void fuck();
int a[1111];
int main()
{
    int b,q,t,i,year,year1,u,z,x;     //第一次改动.
    fuck();
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&year,&b);
        z=b/97;
        x=b%97;
        if(year%4==0&&year%100!=0||year%400==0)
            u=-1;
        else
            u=0;
        year1=year%400;//   在四百年为一个循环的年份里  是第几年.....
        year=year/400;//有几个四百年.....
        for(i=0;i<115;i++)
        {
            if(year1>a[i]&&year1<a[i+1]||year1==a[i])
            {
                q=i;
                break;
            }
        }
        printf("%d\n",(z+year)*400+a[q+u+x]);
    }
    return 0;
}
void fuck()
{
    int i,w;
    a[-1]=-4;
    for(i=0,w=0;i<500;i++)
    {
        if(i%4==0&&i%100!=0||i%400==0)
            a[w++]=i;
    }
}

 

下面附上正确的代码

//想法挺简单的,不过也是一种很好的想法.但是就是时间复杂度比较高.上一个时间复杂度比较低,
//但是 比较操蛋就是不对,也不知道咋回事.
#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    while(n--)
    {
        int a,b,i=0,num;
        scanf("%d%d",&a,&b);
        while(b!=0)
        {
            num=a+i;
            i++;
            if((num%4==0&&num%100!=0)||num%400==0)
            {
                b--;
            }
        }
        printf("%d\n",num);
    }
    return 0;
}

 

posted @ 2015-12-03 11:21  X-POWER  阅读(1161)  评论(0编辑  收藏  举报