社区讨论

O2优化什么鬼!

P2010[NOIP 2016 普及组] 回文日期参与者 44已保存回复 45

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
45 条
当前快照
1 份
快照标识符
@mi6nhkw0
此快照首次捕获于
2025/11/20 07:45
4 个月前
此快照最后确认于
2025/11/20 08:30
4 个月前
查看原帖
CPP
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
struct node
{
	char d[17];
};
node c[17];
char a[9],b[9],e[17],len=0;
int se[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int year1,moon1,date1;
int year2,moon2,date2;
int i,j,k,sum=0;
int main()
{
	k=0;
	i=0;
	while(len<16)
	{
		scanf("%s",c[i].d);
		for(j=0;j<=strlen(c[i].d)-1;j++)
		{
			e[k]=c[i].d[j];
			k++;
		}
		len+=strlen(c[i].d);
		i++;
	}
	for(i=0;i<=7;i++)
	{
		a[i]=e[i];
		b[i]=e[i+8];
	}
	year1=(a[0]-'0')*1000+(a[1]-'0')*100+(a[2]-'0')*10+(a[3]-'0')*1;
	year2=(b[0]-'0')*1000+(b[1]-'0')*100+(b[2]-'0')*10+(b[3]-'0')*1;
	moon2=(b[4]-'0')*10+(b[5]-'0')*1;
	date2=(b[6]-'0')*10+(b[7]-'0')*1;
	for(i=year1;i<=year2;i++)
	{
		moon1=(i/1%10*10)+(i/10%10*1);
		date1=(i/100%10*10)+(i/1000%10*1);
		if(moon1!=2)
		{
			if(i!=year2)
			{
				if(date1<=a[moon1])
				{
					sum++;
				}
			}
			else
			{
				if(moon1<moon2)
				{
					sum++;
				}
				if(moon1==moon2)
				{
					if(date1<=date2)
					{
						 sum++;
					}
				}
			}
		}
		else
		{
			if((i%4==0&&i%100!=0)||(i%400==0))
			{
				if(i!=year2)
				{
					if(date1<=29)
					{
						sum++;
					}
				}
				else
				{
					if(moon1<moon2)
					{
						if(date1<=se[moon1])
						{
							sum++;
						}
					}
					if(moon1==moon2)
					{
						if(date1<=date2)
						{
							 sum++;
						}
					}
				}
			}
			else
			{
				if(i!=year2)
				{
					if(date1<=28)
					{
						sum++;
					}
				}
				else
				{
					if(moon1<moon2)
					{
						if(date1<=se[moon1])
						{
							sum++;
						}
					}
					if(moon1==moon2)
					{
						if(date1<=date2)
						{
							 sum++;
						}
					}
				}
			}
		}
	}
	cout<<sum;
    return 0;
}
没有O2优化60分 O2后70分 谁能告诉我O2优化是干嘛的!

回复

45 条回复,欢迎继续交流。

正在加载回复...