1 条题解

  • 0
    @ 2025-8-24 22:57:27

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar vernal_blossom
    OI奇妙吗?

    搬运于2025-08-24 22:57:27,当前版本为作者最后更新于2024-05-01 12:51:58,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    思路

    按题意模拟即可。

    另外题目让把数字转换成汉字再转笔画,其实可以直接数字转笔画。(不会真有人先把数字转汉字再对应多少笔吧)

    注意事项

    闰年,大月,小月。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int s[11]={13,1,2,3,5,4,4,2,2,2};//每个数字的笔画
    int main()
    {
    	int a=0,b=0,y=2000,m=1,d=1;
    	while(1)
    	{
    		if(m%2==1 && m<=7)//大月
    		{
    			if(d>31)
    			{
    				m++;
    				d=1;
    			}
    		}
    		else if(m%2==0 && m>=8)//大月
    		{
    			if(d>31)
    			{
    				m++;
    				d=1;
    			}
    		}
    		else if(m==2)//二月
    		{
    			if(y%100==0 && y%400==0)//闰年
    			{
    				if(d>29)
    				{
    					m++;
    					d=1;
    				}
    			}
    			else if(y%100!=0 && y%4==0)//闰年
    			{
    				if(d>29)
    				{
    					m++;
    					d=1;
    				}
    			}
    			else//平年
    			{
    				if(d>28)
    				{
    					m++;
    					d=1;
    				}
    			}
    		}
    		else//小月
    		{
    			if(d>30)
    			{
    				m++;
    				d=1;
    			}
    		}
    		if(m>12)
    		{
    			y++;
    			m=1;
    		}
    		if(y==2024 && m==4 && d==14)
    		{
    			cout<<b;//输出
    			return 0;
    		}
    		int sum=s[y%10];//统计笔画
    		sum+=s[(y%100)/10]+s[(y%1000)/100]+s[y/1000];
    		sum+=s[m%10]+s[m/10];
    		sum+=s[d%10]+s[d/10];
    		if(sum>50)
    		{
    			b++;
    		}
    		else
    		{
    			a++;
    		}
    		d++;
    	}
    }
    

    当然交这份代码上去会超时,而一般提交答案题都是获取到答案后再写份代码输出。

    输出代码

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
      cout<<???;//这里输出的就不透露了,输出上面那份代码得到的答案就行了
    }
    • 1

    信息

    ID
    10162
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者