码迷,mamicode.com
首页 > 其他好文 > 详细

hdoj1005 疯了

时间:2015-07-21 14:38:24      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

……提交30次……

手残把之前写的页面关了……万分悲痛的心路历程就略了吧……

题目大意:

1.多组测试数据,依次输入A,B,n(1 <= A, B <= 1000, 1 <= n <= 100,000,000),输入0 0 0 终止;

2.f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7;

3.输出 f(n)。

解题思路:

1.n的数值很大,这类数值很大的问题一般都有规律,找出循环节(周期)是关键;

2.找规律,这道题是从 f(1) = 1 和 f(2) = 1 开始,然后依次模7,可知 f(n) 只有7种情况,所以两数相邻只有7*7=49种;

3.所以从 f(1) 到 f(49) 必会出现相邻两个 f(m-1) = 1 , f(m) = 1,所以 f(n) 为周期函数,49为其一个周期;(按照其之前的描述,应该是周期不超过49,至于为什么周期是49,我也不清楚)

//该思路对应下面others1

 总结:

看到这种一亿的数据就不要用暴力这种复杂度感人的算法了

……取模……一定想想可能会有循环节的可能性!

代码:

技术分享others1//n%49
技术分享others2
技术分享mine1
技术分享mine2
技术分享mine3

 

 others2是已知循环节小于49,求循环周期再去余

与上面代码稍有不同的是,我的代码循环至找到循环节就停止(我以为会比较节约时间,结果各种问题)

开始暴力所以一直tle……接着看题解改思路re……

这里的re有必要说一下,它并不是因为tle(cin&scanf、ifelse嵌套)造成,时间并没有卡到如此感人的程度……也不是因为循环到n,因为不可能出现数组越界的状况

最大的可能是照另一个博主写到的那样:当写n=n%m成这种语句就是re的,改成 m=n%(i-2);就对了

……至于为什么我也不知道……

把变量一改之后再提交就是wa……找ac过的程序对拍还是找不到错误……我就奇了怪了……

恩,就酱吧……我的三个程序不是re就是wa就是tle……不管了(╯‵□′)╯︵┻━┻

 


 

小节:

1.数据类型范围

2.TLE & RE(runtime error)

3.RE可能情况

————————————————————————

1.数据类型范围

unsigned   int   0~4294967295   
int   2147483648~2147483647 
unsigned long 0~4294967295
long   2147483648~2147483647
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:18446744073709551615

__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615

//从kuangbin大神blog搜到的……

 

2.TLE & RE(runtime error)

一直以为这货是一个意思的孩纸伤不起……

http://poj.org/page?id=1000

技术分享

 

runtime是运行时刻,简单说呢,就是一个程序正在运行的时期。如果程序在运行过程中出现错误异常终止,计算机会返回一个含有错误信息的"Runtime Error"。平时很容易见到。
至于TLE,就是字面意思超时了

 

3.RE可能情况

runtime  error (运行时错误)就是程序运行到一半,程序就崩溃了。

比如说:

①除以零

②数组越界:int a[3]; a[10000000]=10;

③指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10;

④使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *p=10;

⑤数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000];

如果你用的是 Windows XP 操作系统,那么Runtime Error 的界面一般如下:

 

技术分享

 

hdoj1005 疯了

标签:

原文地址:http://www.cnblogs.com/travelller/p/4664294.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!