2 条题解

  • 0
    @ 2023-8-4 10:37:45

    HydroOJ-NOIPJ2016B\text{HydroOJ-NOIPJ2016B}

    发表一个比楼下更为简便的题解。

    在写这道题的时候,我发现这样写一长串逻辑表达式太烦人了。于是我开始考虑如何进行优化。

    不难发现回文日期实际上就只有那么几个。

    于是我们可以打表。

    但我实际上不是那么写的,因为打表更烦人了!

    因为回文数的性质是前后颠倒一致,于是开始考虑枚举月份和日期来优化代码。于是得到这样一份简洁明了的代码:

    #include<bits/stdc++.h>
    using namespace std;
    int i,j,n,m,a,b,c,sum,ans;
    int s[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    //为了方便考虑直接枚举月和日,根据月和日倒推出年 
    int main()
    {
        scanf("%d%d",&n,&m);
        for (i=1;i<=12;i++)
            for (j=1;j<=s[i];j++)
            {
                c=(j%10)*1000+(j/10)*100+(i%10)*10+(i/10);
                sum=c*10000+i*100+j;//将日期化为整数计算 
                if (sum<n||sum>m) continue;
                ans++; 
            }
        printf("%d",ans);
        return 0;
    }
    

    完结撒花

    • 0
      @ 2022-6-12 10:15:53
      #include<bits/stdc++.h>
      using namespace std;
      long long q,w,e,r,t,y,u,i,o,p,s,f,g,h,j,k,l,m,n,v,x,z,kk;
      char b[1000][1000];
      int a[1000][1000];
      int c[1000];
      int d[1000];
      string ss;
      int main()
      {
      	cin>>n>>m;
      	for(i=n;i<=m;i++)
      	{
      		if(i%100>31)
      		{
      			i-=31;
      			i+=100;
      		}
      		if(i%100>30&&(i/100%100==2||i/100%100==4||i/100%100==6||i/100%100==9||i/100%100==11))
      		{
      			i-=30;
      			i+=100;
      		}
      		if(i%100>29&&i/100%100==2)
      		{
      			i-=29;
      			i+=100;
      		}
      		if(i%100>28&&(i/100%100==2&&i/10000%4!=0&&(i/10000%4==0&&i/10000%100==0)))
      		{
      			i-=28;
      			i+=100;
      		}
      		if(i/100%100>12)
      		{
      			i-=1200;
      			i+=10000;
      		}
      		if(i/10000000%10==i/1%10&&i/10000%10==i/1000%10&&i/100000%10==i/100%10&&i/1000000%10==i/10%10)
      		{
      			k++;
      		}
      	}
      	cout<<k;
      	return 0;
      }
      
      • 1

      信息

      ID
      160
      时间
      1000ms
      内存
      256MiB
      难度
      6
      标签
      递交数
      25
      已通过
      10
      上传者