模拟。
乍一看以为需要判断闰年之类的,最烦这种题了,仔细分析发现根本不用,因为肯定不存在29月29日这种。还有刚开始没读懂第一句话,以为月和日可以是不一样的,其实第一句话就要求了月和日是一样的,这样就简单了好多。
最多12个月,所以说平方数是有范围的。
#include <iostream>
using namespace std;
int T, a, b;
int f1[] = {1, 4, 9, 16, 25, 36, 49, 64, 81};
int f2[] = {100, 121, 144};
int res, temp;
int main()
{
cin >> T;
while(T--)
{
cin >> a >> b;
res = 0;
for(int i = a; i <= b; i++)
{
temp = i % 1000;
for(int j = 0; j < 3; j++)
{
if(f2[j] == temp)
{
res++;
break;
}
}
temp = temp % 100;
for(int j = 0; j < 9; j++)
{
if(f1[j] == temp)
{
res++;
break;
}
}
}
cout << res << endl;
}
return 0;
}
本文详细解读ZOJ3174 SquareRootDay问题的求解策略,通过模拟找到符合条件的日期数量。问题的核心在于识别平方数的范围,并通过循环遍历月份和日期来验证条件,最终输出满足条件的数量。
536

被折叠的 条评论
为什么被折叠?



