博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU5139:Formula(找规律+离线处理)
阅读量:6480 次
发布时间:2019-06-23

本文共 1233 字,大约阅读时间需要 4 分钟。

Problem Description
f(n)=(i=1nini+1)%1000000007
You are expected to write a program to calculate f(n) when a certain n is given.
 
Input
Multi test cases (about 100000), every case contains an integer n in a single line.
 
Please process to the end of file.
[Technical Specification]
1n10000000
 
Output
For each n,output f(n) in a single line.
 
Sample Input
2
100
 
Sample Output
2
148277692
官方题解:
找规律f(1)=1f(2)=1*1*2=(1)*(1*2)=1!*2!f(3)=1*1*1*2*2*3=(1)*(1*2)*(1*2*3)=1!*2!*3!式子可以简化为 f(n)=∏i=1n(n!)%MOD,直接打表不行,会超内存,可以对数据进行离线处理。排好序之后从小到大暴力。ClogC+10000000 ,C为case数目。 题目解析:以前根本不知道题目可以这么做,又学了一样新东西,离线处理。
#include 
#include
#include
#include
#include
#include
#include
#include
const int mod=1000000007;using namespace std;int n,tt;struct node{ int id,x,sum;} q[100010];int cmp1(const void *a,const void *b){ struct node *aa=(struct node *)a; struct node *bb=(struct node *)b; return aa->x-bb->x;}int cmp2(const void *a,const void *b){ struct node *aa=(struct node *)a; struct node *bb=(struct node *)b; return aa->id-bb->id;}int main(){ tt=0; __int64 s=1,s2=1; while(scanf("%d",&n)!=EOF) { q[tt].id=tt; q[tt++].x=n; } qsort(q,tt,sizeof(q[0]),cmp1); for(int i=0,j=2; i

 

 

 

转载地址:http://qyfuo.baihongyu.com/

你可能感兴趣的文章
System Center 2012 SP1 Data Protection Manager 防止重复备份数据
查看>>
python实现带验证码网站的自动登陆
查看>>
支持51CTO,支持博客大赛
查看>>
关于复制Linux虚拟机后无法相互ping通的问题
查看>>
mac下php环境apache httpd-vhosts.conf
查看>>
近5年133个Java面试问题列表
查看>>
Spring4-通过bean.属性或bean.方法调用
查看>>
MongoDB集合数据操作
查看>>
简单的返回顶部的js代码
查看>>
mongo shell启动配置文件.mongorc.js(三)
查看>>
openstack部署之keystone
查看>>
Active Directory权限委派(1)
查看>>
zookeeper3.3.3源码分析(一)工作原理概述
查看>>
管理聚合链路和桥接网络(多网卡绑定,redhat liunx 7.0) 基础知识
查看>>
W-6-1 SQL Server的安装
查看>>
window.location.href,window.open,<a href="/"></a>打开新页面区别
查看>>
linux下IPTABLES配置详解
查看>>
shell学习
查看>>
exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp服务
查看>>
数据结构之栈
查看>>