HDU 2802 F(N) [Ad Hoc]
2016-03-04 17:50
267 查看
Description
给一个公式,求F(N)Algorithm
肯定是有循环 不然O(N)都TLE,直接找循环节,然后就变成周期问题了Hint
找循环节那个数组范围要开大,其次数据类型也要是long longCode
#include <cmath> #include <iostream> using namespace std; const int maxn = 5000; const int kmod = 2009; int main() { int a[maxn] = {0, 1, 7}; long long t; for (int i = 3; i < maxn; i++) { a[i] = (a[i - 2] - ((i - 1) * (i - 1) * (i - 1)) + (i * i * i)) % kmod; if (a[i] == 1) { t = i - 1; } } long long n; for (;;) { cin >> n; if (n == 0) break; if (n % t == 0) cout << a[t]; else cout << a[n % t]; cout << endl; } return 0; }
相关文章推荐
- Javac编译过程
- 面试
- REST and SOAP
- Javac编译过程
- 一、java基础
- LintCode Wiggle Sort II
- maven + eclipse(Mars.2 Release (4.5.2))错误异常处理
- iOS开发 之 可穿戴设备 蓝牙4.0 BLE 开发
- Hbase总结:Hbase中的Coprocessor
- Restful Web Service
- PHP 的垃圾收集机制
- javascript代码获取css属性
- 105.Examine the structure of the PROMOS table:
- Android Get方法和POST方法发送请求
- tiny4412的中断资源连接关系示意图
- android xml中转义字符使用
- 关于IT服务管理的服务台
- 如何处理滞销的库存
- STL---对于set中元素是否有序的探究
- Android工程编译的时候报libmaliinstr.so not found