hdu 5139 Formula(离线处理)
来源:互联网 发布:技嘉主板网络唤醒设置 编辑:程序博客网 时间:2024/04/29 00:57
题目地址
题目大意:给出n(n<10000000),求
解题思路:f(n) = 1^n+2^(n-1)+3^(n-2)+......+n^1,即求f(n) = n!*(n-1)!*......1,因为n比较大,对其进行离线处理,即统一输入,统一处理,最后统一输出,输入的时候用pair<int,int>类型的vector记录下记录下每次输入的n以及输入的次序,对pair进行sort排序,是根据first从小到大排序的,所以让first等于输入的n,对其排序,然后n从小到大根据公式线性的求值就可以了,注意输入的n可能有相同的。
#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>#include <cstring>#include <vector>#include <queue>#include <string>#include <map>#include <set>#include <stack>using namespace std;const int mod = 1000000007;const int maxn = 10000000+100;int ans[maxn];int main(){ int n; long long result,tmp; int t,cnt; vector<pair<int,int> > v; cnt = 0; while(scanf("%d",&n) != EOF) { v.push_back(make_pair(n,cnt++)); } sort(v.begin(),v.end()); int maxx = v[cnt-1].first; result = 1,tmp = 1,t = 0; for(int i = 1; i <= maxx; i++) { tmp *= i; if(tmp >= mod) tmp %= mod; result *= tmp; if(result >= mod) result %= mod; while(t < cnt && v[t].first == i) //处理重复 { ans[v[t].second] = result; t++; } } for(int i = 0; i < cnt; i++) printf("%d\n",ans[i]); return 0;}
0 0
- [ACM] HDU 5139 Formula (离线处理)
- hdu 5139 Formula(离线处理)
- hdu 5139 Formula(离线处理)
- HDU 5139 Formula(数据离线处理)
- HDU 5139 Formula 离线处理
- HDU 5139 Formula(离线处理)
- HDU 5139 Formula(递推公式、离线处理)
- HDU 5139 Formula(数据离线处理)
- HDOJ 5139 Formula 离线
- hdu 5139 (离线处理)
- hdu 5139(离线处理)
- HDU5139 Formula (找规律+离线处理)
- HDU 5139 Formula
- hdu 5139 Formula
- HDU 5139 Formula
- HDU 5139 Formula
- hdu5139 Formula(离线操作)
- hdu 5057(树状数组+离线处理)
- JSP乱码的原因
- Log4J使用
- Android中ContentProvider详解例程
- C++中指针常量和常量指针的区别
- URL收集
- hdu 5139 Formula(离线处理)
- POJ2236,Wireless Network,并查集
- Kafka for uSwitch's Event Pipeline
- 自创关于java数据类型的面试题目,看看你到底会做多少
- NSIS “Win32 Error,Code:740 ,请求的操作需要提升”错误解决方法
- 如何在Android上编写高效的Java代码
- HDU 5340 Three Palindromes ——BestCoder Round #49
- 并查集的相关函数
- easyUI 验证控件应用、自定义、扩展验证 手机号码或电话话码格式