hdu 5139 (离线处理)

来源:互联网 发布:淘宝首页怎么设置 编辑:程序博客网 时间:2024/04/29 18:15

题意:

f(n)=(i=1nini+1)%1000000007
You are expected to write a program to calculate f(n) when a certain n is given.


思路:

写出前几项,就很容易得出递推式。但是因为n的数据范围是1~10000000,而内存给的小

,所以并不能直接打表(MLE)

采用离线处理——先读完,再一次性输出。

中间采取了一点小技巧,先把所有读入的输入按照n的大小排序,使得处理答案时的时间复杂度为线性的,不然会TLE


code:

#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<vector>#include<string>#include<queue>#include<map>#include<set>#include<cmath>#include<cstdlib>using namespace std;#define INF 0x3f3f3f3f#define PI acos(-1.0)#define mem(a, b) memset(a, b, sizeof(a))#define mod 1000000007typedef pair<int,int> pii;typedef long long LL;//------------------------------const int maxn = 100005;//long long f[10000005];////void table(){//    f[1] = 1;//    long long sum = 2;//    for(int i = 2; i <= 10000000; i++){//        f[i] = (f[i-1] * sum) % mod;//        sum = sum * (i+1) % mod;//    }//}//int n;//int main(){//    table();//    while(scanf("%d",&n) != EOF){//        printf("%d\n",(int)f[n]);//    }//    return 0;//}//应该离线处理struct node{    int n, id;    bool operator < (const node nt) const{        return n < nt.n;    }}ma[maxn];int cnt = 0;int ans[maxn];void solve(){    long long sum = 1;    long long tmp = 1;    int st = 1;    for(int i = 0; i < cnt; i++){        for(int j = st; j <= ma[i].n; j++){            tmp = (tmp * sum) % mod;            sum = sum * (j+1) % mod;        }        st = ma[i].n + 1;        ans[ma[i].id] = (int)tmp;    }    for(int i = 0; i < cnt; i++){        printf("%d\n",ans[i]);    }}int n;int main(){    cnt = 0;    while(scanf("%d",&n) != EOF){        ma[cnt].n = n;        ma[cnt].id = cnt++;    }    sort(ma, ma+cnt);    solve();    return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 英语不会做题怎么办 孩子审题不细心怎么办 生孩子有恐惧症怎么办 小孩不喜欢上幼儿园怎么办 小孩不喜欢去幼儿园怎么办 小孩不喜欢学生字怎么办 学生不喜欢补课老师怎么办 小孩不喜欢上学逃课怎么办 一年级小朋友不爱写字怎么办 幼儿园小朋友不爱写字怎么办 孩子懒散不积极怎么办 孩子不肯上幼儿园怎么办 孩子不肯去幼儿园怎么办 小孩记不住字怎么办 小孩不会写字要怎么办 一年级孩子不爱写字怎么办 一年级小孩不爱写字怎么办 孩子不爱写字怎么办呢 幼儿园孩子不爱写字怎么办 孩子上学没学籍怎么办 孩子上学务工证怎么办 孩子上学被欺负怎么办 孩子害怕上幼儿园怎么办 孩子写字肩膀疼怎么办 5岁不会写字怎么办 上中班不爱写字怎么办 孩子性子太慢怎么办 13小孩特别懒怎么办 小孩不肯上幼儿园怎么办 宝宝不肯上幼儿园怎么办 宝宝不肯去幼儿园怎么办 小孩子不肯去幼儿园怎么办 上幼儿园不说话怎么办 小孩写字不认真怎么办 游戏打开是乱码怎么办 小孩不写字该怎么办 小孩不喜欢穿袜子怎么办 宝宝不喜欢穿袜子怎么办 看到婆婆就烦怎么办 什么也不想吃怎么办 宝宝不喜欢带围兜怎么办