求解释一份奇怪的代码
查看原帖
求解释一份奇怪的代码
246331
mystic_qwq楼主2024/3/8 00:24

rt,翻提交记录找的,主要对f函数不明白,还有i,j,h的含义

#include<stdio.h>
#define S static inline
int i,j=1,m,n,h,p,k;
double q;
S char gc(){
  static char c[1<<16],*l=c,*r=c;
  return l==r&&(r=(l=c)+fread(c,1,1<<16,stdin),l==r)?0:*l++;
}
S int r(){
  int i=0;char c;
  for(;(c=gc())<48;);
  for(;c>47;c=gc())i=(i<<3)+(i<<1)+(c^48);
  return i;
}
S int f(long i){
  return i-(long)(i*q)*p;
}
S void e(int a,int b,int*x,int*y){
  b?e(b,a%b,y,x),*y-=a/b**x:(*x=1,*y=0);
}
main(){
  for(n=r(),p=r(),h=k=r(),q=(1+1e-15)/p;n--;i=f((long)i*m+(long)h*j),j=f((long)j*m),h=f((long)h*k))m=r();
  e(j,p,&h,&m),printf("%ld",f(f((long)i*h)+p));
}
2024/3/8 00:24
加载中...