当前位置: 首页 > news >正文

简单数学板子和例题

线性丢番图方程

ax+by=c
d=gcd(a,b),若c|d,有无穷整数解 x = x 0 + b d n , y = y 0 − a d n x=x_0+{b\over d}n,y=y_0-{a\over d}n x=x0+dbn,y=y0dan

POJ 1265

poj真难用,abs一直报错,万能头也不能用,给我调红温了

struct point
{int x,y;
} q[1010];
int n;
ll num,In;
double S;
int gcd(int A,int B)
{return B==0?A:gcd(B,A%B);
}
int Mult(point A,point B)
{return A.x*B.y-B.x*A.y;
}
int main()
{int T,xx,yy,sx,sy,dx,dy,K=0;scanf("%d",&T);while(T--){scanf("%d",&n);sx=sy=0;S=0;num=0;for(int i=1; i<=n; i++){scanf("%d%d",&xx,&yy);sx+=xx;sy+=yy;q[i].x=sx;q[i].y=sy;}q[0].x=q[n].x;q[0].y=q[n].y;for(int i=0; i<n; i++){S+=Mult(q[i],q[i+1]);dx=abs(q[i].x-q[i+1].x);dy=abs(q[i].y-q[i+1].y);num+=gcd(max(dx,dy),min(dx,dy));}S=fabs(S/2);//不确定S是否为正数In=int(S)+1-num/2;//pick定理:点阵中 面积 = 内部格点数 + 边界格点数/2 - 1printf("Scenario #%d:\n",++K);printf("%I64d %I64d %.1f\n\n",In,num,S);}return 0;
}

扩展欧几里得算法

a x + b y = c ax+by=c ax+by=c找到一个特解

const int N=3e6+10;
int inv[N];
void solve(){int n,p;cin>>n>>p;inv[1]=1;cout<<inv[1]<<endl;forr(i,2,n){inv[i]=(p-p/i)*inv[p%i]%p;cout<<inv[i]<<endl;}
}

求逆

模意义下的乘法逆元

递推求1~n的模p的逆
1 − 1 = 1 若 p / k = i . . . r ,那么 k i + r ≡ 0 ( m o d p ) ( p / i ) r − 1 + i − 1 ≡ 0 ( m o d p ) i − 1 ≡ − ( p / i ) r − 1 ( m o d p ) i − 1 ≡ ( p − p / i ) r − 1 ( m o d p ) 1^{-1}=1 \\ 若p/k=i...r,那么ki+r\equiv 0(mod\ \ p)\\ (p/i)r^{-1}+i^{-1}\equiv 0(mod\ \ p)\\ i^{-1}\equiv -(p/i)r^{-1}(mod\ \ p)\\ i^{-1}\equiv (p-p/i)r^{-1}(mod\ \ p) 11=1p/k=i...r,那么ki+r0(mod  p)(p/i)r1+i10(mod  p)i1(p/i)r1(mod  p)i1(pp/i)r1(mod  p)

const int N=3e6+10;
int inv[N];
void solve(){int n,p;cin>>n>>p;inv[1]=1;cout<<inv[1]<<endl;forr(i,2,n){inv[i]=(p-p/i)*inv[p%i]%p;cout<<inv[i]<<endl;}
}

gcd

P1029最大公约数和最小公倍数问题

x y = P Q , g c d ( P , Q ) = x , l c m ( P , Q ) = y xy=PQ,gcd(P,Q)=x,lcm(P,Q)=y xy=PQ,gcd(P,Q)=x,lcm(P,Q)=y
给出xy,求出P Q对数
枚举

void solve()
{int x,y;cin>>x>>y;int a=x*y;int ans=0;for(int i=1;i*i<=a;i++){//枚举P Qif(a%i==0&&__gcd(i,a/i)==x)ans+=(i==a/i?1:2);//注意完全平方数 是一个情况}cout<<ans<<endl;
}

P10426


裴属定理

a x + b y = k gcd ⁡ ( a , b ) ax+by=k\gcd(a,b) ax+by=kgcd(a,b)

P4549

A 1 x 1 + A 2 x 2 + A 3 x 3 = k gcd ⁡ ( A 1 , A 2 ) + A 3 x 3 = k ′ gcd ⁡ ( A 1 , A 2 , A 3 ) A_1x_1+A_2x_2+A_3x_3=k\gcd(A_1,A_2)+A_3x_3=k'\gcd(A_1,A_2,A_3) A1x1+A2x2+A3x3=kgcd(A1,A2)+A3x3=kgcd(A1,A2,A3)

void solve()
{int n;cin>>n;vector<int>a(n+1);forr(i,1,n){cin>>a[i];}int s=0;s=__gcd(a[1],a[2]);for(int i=3;i<=n;i++){s=__gcd(a[i],s);}cout<<abs(s)<<endl;
}

素数

位运算

P1469

相同的数两两异或得0

void solve()
{int n;cin>>n;int ans=0;forr(i,1,n){int a;cin>>a;ans=ans^a;// cout<<ans<<' ';}cout<<ans<<endl;
}

相关文章:

  • 【短距离通信】【WiFi】WiFi7关键技术之4096-QAM、MRU
  • LLMs之Qwen:《Qwen3 Technical Report》翻译与解读
  • 用python实现中国象棋
  • PDF 编辑批量拆分合并OCR 识别
  • TCP 协议的相关特性
  • 识别速度快且精准的OCR工具
  • java每日精进 5.25【Redis缓存】
  • 【ExcelVBA 】类模块学习从入门到放弃
  • SHAP分析+贝叶斯优化BP神经网络+新数据预测+K折交叉验证+相关性分析+孤立森林异常值处理,Matlab代码实现,作者:机器学习之心!
  • 【MPC控制】番外篇:MPC 与 机器学习/深度学习 —— 双雄会的相似与不同
  • ADS学习笔记(三) 瞬态仿真
  • C++学习之STL学习:string类常用接口的模拟实现
  • 李宏毅《机器学习2025》笔记 第二讲 —— AI Agent
  • vue3中computed计算属性和watch监听的异同点
  • 历年吉林大学保研上机真题
  • Python经典算法实战
  • 分布式缓存:BASE理论实践指南
  • conda 环境中opencv 报错
  • MySQL-----表的操作
  • SAP Commerce(Hybris)开发实战(二):登陆生成token问题
  • oss可以做网站根目录吗/推广普通话手抄报句子
  • 迈肯奇迹做网站/三十个知识点带你学党章
  • 制作ppt的网站/网络整合营销的特点有
  • 沈阳做平板网站/今天新闻头条新闻
  • wordpress 全屏模板/沈阳seo排名公司
  • 四川省建设厅网站打不开/百度搜索引擎首页