#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<stack>
#include<string>
#include<map>
#include<set>
#include<cmath>
#include<cassert>
#include<cstring>
#include<iomanip>
using namespace std;
#ifdef _WIN32
#define i64 __int64
#define out64 %I64d
#define in64 "%I64d"
#else
#define i64 long long
#define out64 %lld
#define in64 "%lld"
#endif
#define FOR(i,a,b) for( int i = (a) ; i <= (b) ; i ++)
#define FF(i,a) for( int i = 0 ; i < (a) ; i ++)
#define FFD(i,a) for( int i = (a)-1 ; i >= 0 ; i --)
#define S64(a) scanf(in64,&a)
#define SS(a) scanf("%d",&a)
#define LL(a) ((a)<<1)
#define RR(a) (((a)<<1)+1)
#define SZ(a) ((int)a.size())
#define PP(n,m,a) puts("---");FF(i,n){FF(j,m)cout << a[i][j] << ' ';puts("");}
#define pb push_back
#define CL(Q) while(!Q.empty())Q.pop()
#define MM(name,what) memset(name,what,sizeof(name))
#define read freopen("in.txt","r",stdin)
#define write freopen("out.txt","w",stdout)
const int inf = 0x3f3f3f3f;
const i64 inf64 = 0x3f3f3f3f3f3f3f3fLL;
const double oo = 10e9;
const double eps = 10e-10;
const double pi = acos(-1.0);
const int maxn = 1000005;
const int mod = 1000000007;
double dps[maxn];
i64 dp[maxn];
i64 a[maxn];
int T;
void init()
{
dps[0] = 0.0;
dps[1] = 1.0;
dps[2] = 1.5;
dp[0] = 0;
dp[1] = 1;
dp[2] = 3;
a[0] = 1;
a[1] = 1;
a[2] = 2;
for(int i=3;i<maxn;i++)
{
// dps[i] = dps[i-1]/i + dps[i-1] + 1.0;
dps[i] = dps[i-1] + 1.0/i;
a[i] = a[i-1]*i;
a[i]%=mod;
dp[i] = dp[i-1]*i + a[i-1];
dp[i]%=mod;
}
return ;
}
int x;
double pp;
int main()
{
init();
cin>>T;
for(int tt=1;tt<=T;tt++)
{
SS(x);
printf("Case %d: ",tt);
printf("%I64d ",dp[x]);
printf("%.6lf\n",dps[x]);
}
return 0;
}
fzu 2037 卡内存的坑爹题
最新推荐文章于 2014-01-19 12:54:17 发布
本文深入探讨了算法和数据结构在计算机科学中的核心作用,通过实例展示了如何利用它们解决实际问题,包括排序算法、动态规划、哈希算法等,并强调了数据结构如二叉树、队列和链表在不同场景中的应用。同时,文章还涉及了现代软件开发中常用的技术,如Git版本控制系统的使用,以及项目管理与协作工具的应用。
4187

被折叠的 条评论
为什么被折叠?



