hdoj 3049 Data Processing(数学公式法)
来源:互联网 发布:淘宝老顾客拍有权重吗 编辑:程序博客网 时间:2024/05/21 10:28
【题目大意】:给出你n个数,分别记为n1,n2,n3....nn。求(sigma(k=1..n)2^k)/n; 由于答案太大,mod 1000003
【解题思路】:这是下午学校个人赛的一道题,看到题目之后,第一个反应是快速幂加逆元。RE多次之后,返回了TLE...这个结果我至今表示不解,为什么40000的数组会RE...二分的快速幂也很快怎么会TLE...严重质疑。
不过,最后在模版上发现了这题公式:
利用mod的数是素数:
(1). A/B%P=((A%(B*P))/B)%p;
(2). A/B%P=A*(B`)%P 其中B`是B对于P的逆元
所以....(sigma(k=1..n)2^k)/n%mod <=>sigma(k=1..n)((2^k)%(n*mod))%mod/n....接下来的代码实现就很简单了...可是我还是没想明白RE是从哪里来的啊 T_T!!!
【代码】
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <queue>#include <cmath>#include <string>#include <cctype>#include <map>#include <iomanip> using namespace std; #define eps 1e-8#define pb push_back#define lc(x) (x << 1)#define rc(x) (x << 1 | 1)#define lowbit(x) (x & (-x))#define ll long long#define inf 1000003ll power[41000];int a[41000];ll mod,ans,n;int main() { int T,cas=0; cin >> T; while (T--){ scanf("%d",&n); for(int i=1; i<=n; i++) scanf("%d",&a[i]); mod=inf*n; power[0]=1; for(int i=1;i<=40000;i++){ power[i]=2*power[i-1]; if(power[i]>=mod) power[i]-=mod; } ans=0; for(int i=1;i<=n;i++){ ans=ans+power[a[i]]; if (ans>=mod) ans-=mod; } cas++; printf("Case %d:%lld\n",cas,ans/n); } return 0;}
- hdoj 3049 Data Processing(数学公式法)
- HDU 3049 Data Processing
- hdu 3049 Data Processing
- hdu 3049 Data Processing
- hdu 3049 Data Processing(扩展欧几里德求逆模)
- hdu - 3049 - Data Processing(乘法逆元)
- hdoj 1799 循环多少次?(数学公式)
- Data Processing
- hdu 3049 Data Processing(扩展欧几里德求逆元)
- HDU 3049 Data Processing 数论题解
- hdoj 1129 Do the Untwist(数学公式+英文理解)
- Realtime Data Processing
- SAP DEMO-Processing Data
- HDU 3049 Data Processing(a/b mod c, 逆元)
- Big Data Processing at Easemob – Big Data Processing Platform
- In-Stream Big Data Processing
- In-Stream Big Data Processing
- Data Pre-processing(数据预处理)
- 从市梦率到市盈率:“团跑跑”跑回互联网
- ubuntu上Android NDK调试配置
- The code architecture of***ResponseHandler
- S3C2440之uboot移植
- 电商(二)
- hdoj 3049 Data Processing(数学公式法)
- Strut2 源码分析
- cocos2d-x开发遇到的几个问题
- 不喜欢用使用Oracle,以及其优缺点
- 自定义对象数组的排序
- 应用JUnit实施单元测试
- 【Visual C++】游戏开发笔记之七——基础动画显示(一)定时器的使用
- 使用NSConnection下载数据
- android工程更改api版本