NC19840. 勘测
描述
输入描述
一行,一个数n。
输出描述
一行,一个数表示最多建设的道路数,答案对 10000000007 取模。
示例1
输入:
2
输出:
3
说明:
样例解释:示例2
输入:
100
输出:
6531708670
C(clang 3.9) 解法, 执行用时: 218ms, 内存消耗: 376K, 提交时间: 2019-04-23 21:47:40
#include<stdio.h> int main() { long long n,a=1,b=1,c,d=1,k=10000000007; scanf("%lld",&n); int i; for(i=2;i<=n;i++) { d=d+a+b; d=d%k; a=a%k; b=b%k; c=a; a=a+b; b=c; } printf("%lld",d); return 0; }
C++11(clang++ 3.9) 解法, 执行用时: 54ms, 内存消耗: 39416K, 提交时间: 2020-02-14 23:27:53
#include<iostream> using namespace std; long long a[5000005]; int main() { long long int c=10000000007,b; cin>>b; a[1]=1,a[2]=3; for(int i=3;i<=b;i++) a[i]=(a[i-1]+a[i-2]+2)%c; cout<<a[b]<<endl; }
Python3(3.5.2) 解法, 执行用时: 1490ms, 内存消耗: 3560K, 提交时间: 2018-12-22 21:22:41
a = 0 b = 1 n = int(input()) for i in range(n-1): sum = (a + b + 2) % 10000000007 a = b b = sum print(b)