日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BUAA 更大公约数

發(fā)布時(shí)間:2023/12/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BUAA 更大公约数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接

給一個(gè)n*m的矩陣, 刪除里面的一行一列, 使得剩下的數(shù)的最大公約數(shù)最大。

一個(gè)格子(x,y), 先預(yù)處理出(1,1)到這個(gè)格子的內(nèi)所有數(shù)的最大公約數(shù), 同理處理出(1, m), (n, m), (n, 1), 然后枚舉格子中的每一個(gè)數(shù), 具體看代碼。

#include<bits/stdc++.h> using namespace std; #define mem(a) memset(a, 0, sizeof(a)) const int maxn = 1080; int a[maxn][maxn], b[maxn][maxn], c[maxn][maxn], d[maxn][maxn]; int init[maxn][maxn]; int gcd(int a, int b) {return b == 0?a:gcd(b, a%b); } int main() {int n, m;while(cin>>n>>m) {for(int i = 1; i<=n; i++) {for(int j = 1; j<=m; j++)scanf("%d", &init[i][j]);}mem(a); mem(b); mem(c); mem(d);for(int i = 1; i<=n; i++) {for(int j = 1; j<=m; j++) {a[i][j] = gcd(a[i][j-1], a[i-1][j]);a[i][j] = gcd(a[i][j], init[i][j]);}}for(int i = 1; i<=n; i++) {for(int j = m; j>=1; j--) {b[i][j] = gcd(b[i][j+1], b[i-1][j]);b[i][j] = gcd(b[i][j], init[i][j]);}}for(int i = n; i>=1; i--) {for(int j = 1; j<=m; j++) {c[i][j] = gcd(c[i][j-1], c[i+1][j]);c[i][j] = gcd(c[i][j], init[i][j]);}}for(int i = n; i>=1; i--) {for(int j = m; j>=1; j--) {d[i][j] = gcd(d[i][j+1], d[i+1][j]);d[i][j] = gcd(d[i][j], init[i][j]);}}int ans = 0;for(int i = 1; i<=n; i++) {for(int j = 1; j<=m; j++) {int tmp1 = gcd(a[i-1][j-1], b[i-1][j+1]);int tmp2 = gcd(c[i+1][j-1], d[i+1][j+1]);ans = max(ans, gcd(tmp1, tmp2));}}cout<<ans<<endl;}return 0; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/yohaha/p/5063196.html

總結(jié)

以上是生活随笔為你收集整理的BUAA 更大公约数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。