浙江财经大学
信息管理与工程学院

HDU 5832 A water problem

本文由 Ocrosoft 于 2016-08-14 21:44:56 发表

A water problem

Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 250    Accepted Submission(s): 138

Problem Description
Two planets named Haha and Xixi in the universe and they were created with the universe beginning.

There is 73 days in Xixi a year and 137 days in Haha a year. 

Now you know the days N after Big Bang, you need to answer whether it is the first day in a year about the two planets.

 

Input
There are several test cases(about 5 huge test cases).

For each test, we have a line with an only integer N(0N), the length of N is up to 10000000.

 

Output
For the i-th test case, output Case #i: , then output “YES” or “NO” for the answer.
 

Sample Input
10001
0
333
 

Sample Output
Case #1: YES
Case #2: YES
Case #3: NO
 

Author
UESTC
 

Solution
题意:输入一个数(长度小于10000000),判断能否被73和137整除。
思路:能被73和137整除,因为两个都是素数,所以就是能被10001整除。接下来就用大数取余就可以了。
之前在写的时候就是没想到整除10001,TLE不断…

#include <set>
#include <map>
#include <list>
#include <cmath>
#include <stack>
#include <queue>
#include <ctime>
#include <string>
#include <cstdio>
#include <vector>
#include <cctype>
#include <climits>
#include <sstream>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define ms(a) memset(a,0,sizeof(a))
typedef long long ll;
const int INF = INT_MAX;
const int MAXN = 10000000 + 10;
using namespace std;
char s[MAXN];
int main()
{
	int cas = 1;
	while (~scanf("%s", &s))
	{
		int len = strlen(s);
		if (s[0] == '0')printf("Case #%d: YES\n", cas++);
		else
		{
			int m = 0;
			for (int i = 0; i < len; i++)
			{
				m = m * 10 + s[i] - '0';
				m %= 10001;
			}
			if (!m)printf("Case #%d: YES\n", cas++);
			else printf("Case #%d: NO\n", cas++);
		}

	}
	return 0;
}

 

欢迎分享与转载,请保留链接与出处。Ocrosoft » HDU 5832 A water problem

点赞 (0)or拍砖 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址