hdu 3049 Data Processing
来源:互联网 发布:国际阿里云开通流程 编辑:程序博客网 时间:2024/06/11 10:31
http://acm.hdu.edu.cn/showproblem.php?pid=3049
//这题简单一点说就是求 A/B%P
//由 B*B~ = kP +1; B~ 是B关于P的逆元;B~ = (kP + 1)/B//所以 A*B~ = A*(kP + 1)/B = P*k(A/B) + A/B;
//当A整除B时有:A/B%P = A*B~%P
#include<iostream>
using namespace std;
//求b关于a的逆元
int mulinv(int b,int a)//求一个整数b对a的乘法逆元
{
int x1,x2,x3;
int y1,y2,y3;
int t1,t2,t3;
x1=1;
x2=0;
x3=a;
y1=0;
y2=1;
y3=b;
int k;
for(t3=x3%y3;t3!=0;t3=x3%y3)
{
k=x3/y3;
t2=x2-k*y2;
t1=x1-k*y1;
x1=y1;
x2=y2;
x3=y3;
y1=t1;
y2=t2;
y3=t3;
}
if(y2<0)
y2+=a;
if(y3==1)
return y2;
else
return 0;
}
__int64 modular(__int64 b,__int64 n,__int64 m)//求同余幕
{
__int64 x=1,power=b%m;
__int64 temp=n;
int a[65];
int k=0,i;
while(temp>0)
{
a[k++]=temp%2;
temp/=2;
}
for(i=0;i<k;i++)
{
//printf("%d\n",a[i]);
if(a[i]==1)
x=(x*power)%m;
power=(power*power)%m;
}
return x;
}
int main()
{
int N,P = 1000003;
int T;
int cases = 0;
int nk,i;
__int64 mod;
__int64 mod1;
scanf("%d",&T);
getchar();
while(T--)
{
cases++;
mod = 0;
scanf("%d",&N);
for(i = 0;i<N;i++)
{
scanf("%d",&nk);
mod1 = modular(2,nk,P);
mod = (mod+mod1)%P;
}
// printf("%I64d\n",mulinv(N,P));
mod = (mulinv(N,P)*mod)%P;
printf("Case %d:%I64d\n",cases,mod);
}
return 0;
}
- HDU 3049 Data Processing
- hdu 3049 Data Processing
- hdu 3049 Data Processing
- hdu 3049 Data Processing(扩展欧几里德求逆元)
- HDU 3049 Data Processing 数论题解
- hdu 3049 Data Processing(扩展欧几里德求逆模)
- HDU 3049 Data Processing(a/b mod c, 逆元)
- hdu - 3049 - Data Processing(乘法逆元)
- hdu 1576 A/B||hdu 3049 Data Processing 乘法逆元
- Data Processing
- hdoj 3049 Data Processing(数学公式法)
- Realtime Data Processing
- SAP DEMO-Processing Data
- Big Data Processing at Easemob – Big Data Processing Platform
- In-Stream Big Data Processing
- In-Stream Big Data Processing
- Data Pre-processing(数据预处理)
- MapReduce: Simplified Data Processing on Large Clusters
- Zend Studio-8.0.0中文汉化教程
- Google Android双肩背包收到啦~~~~
- A/B测试是什么
- VC6+WDK+DriverStudio编译Windows驱动程序环境搭建
- 线性表-感觉一下
- hdu 3049 Data Processing
- volatile修饰符
- 读《疯狂的程序员》有感
- freemarker 常用的内置函数
- 博客地址
- Linux screen工具使用教程
- C#.NET客户端CS程序 只能启动一次
- linq 将单列结果集转换为集合并带人linqtosql查询
- vc中ifstream ofstream不能读取带有中文路径