题目链接

给一个n*m的矩阵, 删除里面的一行一列, 使得剩下的数的最大公约数最大。

一个格子(x,y), 先预处理出(1,1)到这个格子的内所有数的最大公约数, 同理处理出(1, m), (n, m), (n, 1), 然后枚举格子中的每一个数, 具体看代码。

#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;
}

转载于:https://www.cnblogs.com/yohaha/p/5063196.html

BUAA 更大公约数相关推荐

  1. hdu 5019 第k大公约数

    题意:       给你两个数,让你求他们的第k大公约数. 思路:       这个比较好想,我的做法是先求出最大公约数,他们的公共因子一定是最大公约数的因子,所以直接log(gcd(A,B))的时间 ...

  2. C/C++训练1---最大公约数与最小公倍数(java)

    C/C++训练1---最大公约数与最小公倍数 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Descript ...

  3. XTUOJ ABK(求出A和B的第K大公约数)

    Accepted : 21   Submit : 171 Time Limit : 1000 MS   Memory Limit : 65536 KB  题目描述 ABK是一个比A+B还要简单的题目, ...

  4. SDUT-1131 C/C++训练1---最大公约数与最小公倍数(JAVA*)

    C/C++训练1---最大公约数与最小公倍数 Time Limit: 1000 ms  Memory Limit: 65536 KiB Submit  Statistic Problem Descri ...

  5. C语言经典例16-最大公约数和最小公倍数

    目录 1 题目 2 分析 2.1 辗转相除法 2.2 相减法 3 实现 3.1 实现1(辗转相除法) 3.2 实现2(相减法) 1 题目 输入两个正整数m和n,求其最大公约数和最小公倍数. 2 分析 ...

  6. C/C++训练1---最大公约数与最小公倍数_JAVA

    Description 输入两个正整数,求它们的最大公约数与最小公倍数. Input 输入两个正整数,两个整数之间用空格分开. 数据保证在 int 范围内. Output 第一行输出最大公约数: 第二 ...

  7. V-最大公约数 递归

    输入2个正整数A,B,求A与B的最大公约数. Input 2个数A,B,中间用空格隔开.(1<= A,B <= 10^9) Output 输出A与B的最大公约数. Sample Input ...

  8. 【C++笔记】 判断两个数互质(做大公约数为1)

    定理:gcd(a,b) = gcd(b,a mod b)  // a和b的最大公因数,a和b的大小没影响. ①0和任意自然数的最大公约数就是那个自然数. ②互质指最大公约数等于1的两个自然数. ③1和 ...

  9. 牛客网小白月赛5 H-最大公约数(lcm)

    链接:https://www.nowcoder.com/acm/contest/135/H 来源:牛客网 题目描述 给定两个正整数a,b,求a,b的最小公倍数.(即[a,b]) 输入描述: 两个整整数 ...

最新文章

  1. DeepMind悄咪咪开源三大新框架,深度强化学习落地希望再现
  2. 技术总监,被判刑12年!因公司未兑现股权,愤怒植入代码,牟利333万
  3. 【Linux高频命令专题(24)】grep
  4. 唯品会API网关设计与实践--转
  5. 图解Android Studio 2.0安装步骤
  6. 华大 MCU 之六 SEGGER Embedded Studio 及 Ozone 使用 Jlink 调试
  7. MySQL 深潜 - MDL 锁的实现与获取机制
  8. iQOO 5今日发布:厚度/重量揭晓 5G手机也能够轻薄
  9. c语言的一些字符串库函数的自己实现
  10. 关于==和equals的探索
  11. mysqld install mysql default_Mysql_安装
  12. android四大组件共性,Android四大组件及意图和意图过滤器
  13. docx4j文档差异比较
  14. 基于 MQL5 源代码创建文档
  15. Php计算圆柱的表面积和体积,圆柱体的面积计算公式
  16. cad小插件文字刷_cad插件-文本修改
  17. 生产环境服务CPU飙升问题分析
  18. 报错: error in ./node_modules/@vueuse/core/index.mjs
  19. systemd service unit
  20. 学板绘可以找哪些工作?

热门文章

  1. 小老板,我学的计算机组成原理告诉我半导体存储器都是断电后丢失的,为什么U盘SSD(固态硬盘)没事呢?
  2. 数据结构-二叉排序树
  3. SPLT(Skimming-Perusal Tracking)算法详解
  4. 三种常用SoC片上总线的分析与比较 (Z)
  5. Advanced Bash-Scripting Guide 学习笔记一
  6. TensorFlow(二)函数基础
  7. 图片外链测试-HTML
  8. 民间借贷利息多少才合法?
  9. GSM/GPRS模块 AT指令集C语言编程——基于有方M660+和MSP430单片机
  10. 数字IC设计经典书籍