zoj 3785 What day is that day? (打表找规律)
思路:比赛的时候有想过找循环节,但是,打表打错了。 后来,看着过了挺多人,就急了, 看了一下别人的时间 耗时都挺长的,就以为不是找规律,
没想到真是找规律,不过,这个题的数据可能挺大的。
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char s[][] = {"Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"};
int a[]; int main()
{
int t, i, n;
int sum, x;
sum = ;
for(n = ; n <= ; n++)
{
x = ;
for(i = ; i <= n; i++)
{
x = x*n;
x = x%;
}
sum += x;
sum = sum%;
a[n] = sum;
}
while(cin>>t)
{
while(t--)
{
cin>>n;
x = n%;
if(x==)
x = ;
cout<<s[a[x]]<<endl;
}
}
return ;
}
打表代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = ;
int a[maxn], b[maxn], f[maxn]; int main()
{
int t, i, j, n;
int sum, x, cnt, ad;
while(cin>>t)
{
while(t--)
{
//cin>>n;
sum = ;
memset(a, , sizeof(a));
memset(b, , sizeof(b));
memset(f, , sizeof(f));
for(n = ; n <= ; n++)
{
x = ;
for(i = ; i <= n; i++)
{
x = x*n;
x = x%; //因为数会非常大,所以利用公式,取余
}
sum += x;
sum = sum%; //因为数会非常大,所以利用公式,取余
a[n] = sum; //把所有结果存入a数组
}
cnt = ;
for(i = ; i <= ; i++)
{
if(a[i]==)
{
b[cnt++] = i; //把结果为1的序号 存入b
f[i] = ;
}
/*cout<<a[i];
if(i%294==0)
cout<<endl<<endl;*/
}
for(i = ; i < cnt; i++)
{
ad = b[i]-; //每一个 的间隔
for(j = ; j <= ; j++) //如果照这个间隔向后推 几次,还是符合间隔的话,就找到了循环节
{
if(f[b[i]+ad*j] != )
break;
}
if(j==)
{
cout<<b[i]<<endl;
break;
}
}
}
}
return ;
}
zoj 3785 What day is that day? (打表找规律)的更多相关文章
- 【ZOJ】3785 What day is that day? ——浅谈KMP在ACM竞赛中的暴力打表找规律中的应用
转载请声明出处:http://www.cnblogs.com/kevince/p/3887827.html ——By Kevince 首先声明一下,这里的规律指的是循环,即找到最小循环周期. 这 ...
- 【ZOJ】3785 What day is that day? ——KMP 暴力打表找规律
转自:http://www.cnblogs.com/kevince/p/3887827.html 首先声明一下,这里的规律指的是循环,即找到最小循环周期. 这么一说大家心里肯定有数了吧,“不就是nex ...
- ZOJ 3622 Magic Number 打表找规律
A - Magic Number Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Subm ...
- zoj 3629 Treasure Hunt IV 打表找规律
H - Treasure Hunt IV Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu ...
- ZOJ 3785 What day is that day?(今天是星期几?)
Description 题目描述 It's Saturday today, what day is it after 11 + 22 + 33 + ... + NN days? 今天是星期六,11 + ...
- zoj 3785 What day is that day?
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5272 打表找规律. #include <cstdio> #incl ...
- ZOJ 3785 What day is that day?(数论:费马小定理)
What day is that day? Time Limit: 2 Seconds Memory Limit: 65536 KB It's Saturday today, what da ...
- ZOJ 3785:What day is that day?(数论)
What day is that day? Time Limit: 2 Seconds Memory Limit: 65536 KB It's Saturday today, what day is ...
- ZOJ问题(2010浙江大学研究生复试上机题目[找规律] hdoj 3788)
ZOJ问题 pid=3788">点击打开链接 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
随机推荐
- 第一个Nodejs程序
我的第一个Nodejs程序:Hello World var http = require("http"); http.createServer(function(request, ...
- 配置ASP.NET Nhibernate
web.config:配置sql server数据库 <configuration> <configSections> <!--NHibernate Section--& ...
- Careercup - Facebook面试题 - 5412018236424192
2014-05-01 01:32 题目链接 原题: Given a linked list where apart from the next pointer, every node also has ...
- 'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件的解决办法
前言: 本文的解决方法来自http://www.cnblogs.com/xionghui/archive/2012/04/11/2442404.html --感谢! 问题描述:新电脑装mysql后在c ...
- [设计模式] 13 责任链模式 Chain of Responsibility
转 http://blog.csdn.net/wuzhekai1985 http://www.jellythink.com/archives/878 向项目经理提交了休假申请,我的项目经理向 ...
- PE工具
PE编辑工具 Stud_PE v. 2.4.0.1 PE工具,用来学习PE格式十分方便. http://www.cgsoftlabs.ro/ 汉化版:http://bbs.pediy.com/show ...
- Unity3D脚本中文系列教程(四)
http://dong2008hong.blog.163.com/blog/static/4696882720140302451146/ Unity3D脚本中文系列教程(三) 送到动画事件. ◆ va ...
- python库:fuzzywuzzy
fuzzywuzzy 用于字符串匹配率.令牌匹配等 复制代码代码如下: from fuzzywuzzy import fuzzfuzz.ratio("Hit me with your bes ...
- 在UWSGI和NGINX配合的情况下,配置个别目录上传及超时
笨办法就是多加一个LOCATION. 然后,自定义以下类似参数 client_max_body_size uwsgi_connect_timeout uwsgi_read_timeout server ...
- poj 1730 Perfect Pth Powers
这个有2种方法. 一种是通过枚举p的值(p的范围是从1-32),这样不会超时,再就是注意下精度用1e-8就可以了,还有要注意负数的处理…… #include<iostream> #incl ...