BZOJ 3933 CQOI2015 多项式 高精度
来源:互联网 发布:网络光纤传输器 编辑:程序博客网 时间:2024/06/08 08:46
题目大意戳这里
用x替换式子中的x-t得到:
于是可以得到:
其中
然后。。。出题人我*尼玛。。。
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const long long power_10[]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};struct Big_Int{ #define BASE 1000000000ll long long num[2020];int cnt; Big_Int() {} Big_Int(long long _) { memset(num,0,sizeof num); num[cnt=1]=_; } friend istream& operator >> (istream &_,Big_Int &x) { static char s[3030]; scanf("%s",s+1); int i,len=strlen(s+1); for(i=len;i;i--) x.num[(len-i)/9+1]+=(s[i]-'0')*power_10[(len-i)%9]; x.cnt=len/9+1; return _; } Big_Int& operator += (const Big_Int &x) { int i; cnt=max(cnt,x.cnt); for(i=1;i<=cnt;i++) { num[i]+=x.num[i]; if(num[i]>=BASE) num[i]-=BASE,num[i+1]++; } if(num[cnt+1]) ++cnt; return *this; } friend Big_Int operator + (const Big_Int &x,const Big_Int &y) { Big_Int re; re=x;re+=y;return re; } friend int operator - (const Big_Int &x,const Big_Int &y) { int i; long long re=0; for(i=x.cnt;i;i--) (re*=BASE)+=x.num[i]-y.num[i]; return re; } /* friend Big_Int operator - (const Big_Int &x,int y) { Big_Int re; int i; re=x;re.num[1]-=y; for(i=1;re.num[i]<0;i++) re.num[i]+=BASE,re.num[i+1]--; while(!re.num[re.cnt]) re.cnt--; return re; } */ friend Big_Int operator * (const Big_Int &x,const Big_Int &y) { Big_Int re(0); int i,j; for(i=1;i<=x.cnt;i++) for(j=1;j<=y.cnt;j++) { re.num[i+j-1]+=x.num[i]*y.num[j]; if(re.num[i+j-1]>=BASE) re.num[i+j]+=re.num[i+j-1]/BASE,re.num[i+j-1]%=BASE; } re.cnt=x.cnt+y.cnt; if(!re.num[re.cnt]) re.cnt--; return re; } Big_Int& operator *= (const Big_Int &x) { return *this=*this*x; } Big_Int& operator /= (int x) { int i; for(i=cnt;i;i--) num[i-1]+=(num[i]%x)*BASE,num[i]/=x; num[0]=0; if(!num[cnt]) --cnt; return *this; } int operator % (int x) const { int i; long long re=0; for(i=cnt;i;i--) ((re*=BASE)+=num[i])%=x; return re; } friend ostream& operator << (ostream &_,Big_Int &x) { int i; while( x.cnt>0 && !x.num[x.cnt] ) --x.cnt; printf("%d",(int)x.num[x.cnt]); for(i=x.cnt-1;i>0;i--) printf("%09d",(int)x.num[i]); return _; }}n,m,ans,C=1,_t=1;int t;int Quick_Power(int x,int y){ int re=1; while(y) { if(y&1) (re*=x)%=3389; (x*=x)%=3389; y>>=1; } return re;}int A(const Big_Int x){ int temp=x%3388; return (209*Quick_Power(1234,temp)+3181)%3389;}int main(){ int i; cin>>n>>t>>m; int temp=n-m; for(i=0;i<=temp;i++) { if(i) { C*=m+i; C/=i; _t*=t; } ans+=C*_t*A(m+i); } cout<<ans<<endl; return 0;}
0 0
- BZOJ 3933 CQOI2015 多项式 高精度
- [BZOJ3933][CQOI2015]多项式 && 高精度
- [BZOJ3933][CQOI2015]多项式-高精度
- [CQOI2015]&[bzoj3933]多项式 二项式定理+高精度
- bzoj 3931: [CQOI2015]网络吞吐量
- 选数 [Bzoj 3930,CQOI2015]
- bzoj 3931: [CQOI2015]网络吞吐量
- bzoj 3930: [CQOI2015]选数
- BZOJ 3932 CQOI2015 主席树
- bzoj 3932: [CQOI2015]任务查询系统
- 【递推】BZOJ 3930: [CQOI2015]选数
- 【BZOJ 3932】[CQOI2015]任务查询系统
- BZOJ 3932: [CQOI2015]任务查询系统
- BZOJ 3932 [CQOI2015]任务查询系统
- bzoj 2056: gift? 高精度?
- bzoj 1263 高精度b
- BZOJ 4807(車-高精度)
- BZOJ-1002 (高精度)
- Linux下高性能网络编程中的几个TCP/IP选项_SO_REUSEADDR、SO_RECVBUF、SO_SNDBUF、SO_KEEPALIVE、SO_LINGER、TCP_CORK、TCP_NODE
- 运行成功的最新进度条代码
- JavaScript 的 this
- 最高分是多少
- Redis 集成Spring(spring-data-redis)
- BZOJ 3933 CQOI2015 多项式 高精度
- Maya/3Ds MAX与OpenGL的联系
- jvm 关于初始化时<cinit> , <init>的调用。
- 浏览器兼容模式页面错乱 兼容模式和急速模式
- GIT 工具如何入门使用---我手把手教你windows环境下的git使用
- fragment使用
- c++智能指针
- SharedPreferences java.lang.RuntimeException: Unable to resume activity {com.kingnet.gamecent
- printf("和老婆相识 %d 天了!!\n",days);