BUAA 更大公约数

题目链接

给一个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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256200.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

How to make a Logical Volume ON AIX5.3

本文转自 xkdcc 51CTO博客&#xff0c;原文链接&#xff1a;http://blog.51cto.com/brantc/116431&#xff0c;如需转载请自行联系原作者1. 确定要建立的卷大小&#xff0c;比如700M 2. 检查要建立逻辑卷的卷组上的PP大小&#xff08;PP:物理分区&#xff0c;PP si…

启动Tomcat 7一闪而过的问题

点击bin目录&#xff08;"D:\apache-tomcat-7.0.33\bin"&#xff09;下的startup.bat一闪而过&#xff0c;什么都没发生... 解决&#xff1a;环境变量里配置一个JAVA_HOME&#xff0c;值为JDK的home目录&#xff08;"D:\Java\jdk1.7.0_80"&#xff09;转载…

Pytorch基础(五)—— 池化层

一、概念 池化就是把数据压缩的过程&#xff0c;属于下采样的一种方法&#xff0c;可以显著降低神经网络计算复杂度&#xff0c;减少训练中的过拟合&#xff0c;同时可以使数据具有一定的不变性。 池化从方法上来讲可以分为average Pooling、max Pooling、Overlapping Poolin…

【图像处理】——鼠标点击图像的一处,获得点击点的坐标值

import cv2 import numpy as np# 图片路径 img = cv2.imread(5-.jpg) a = [] b = []def on_EVENT_LBUTTONDOWN(event, x, y, flags, param)::param event: 鼠标事件:param x: 点击点的横坐标:param y: #点击点的纵坐标:param flags: :param param: :return: if event == cv2.EV…

解决sybase数据库的死锁问题

在使用数据库操作时&#xff0c;由于多人同时使用&#xff0c;导致数据库某些表无法访问&#xff0c;原因可能是由于多个用户操作同一个表&#xff0c;争抢统一资源出现死锁现象&#xff0c;现将解决死锁的方法总结如下&#xff1a; 1、执行 sp_who 语句&#xff0c;观察执行结…

揭开.NET 2.0配置之谜(一)

2010-03-20 15:33 by 吴秦, 4828 阅读, 20 评论, 收藏, 编辑 此文是译文&#xff0c;原文是Jon Rista&#xff0c;Unraveling the Mysteries of .NET 2.0 Configuration&#xff0c;由于这篇文章比较长&#xff0c;所以我就分为几部分来翻译。 以前没有翻译过外文&#xff0c;看…

Pytorch基础(六)——激活函数

一、概念 激活函数顾名思义&#xff0c;就是一种可以给神经网络注入灵魂的一种方法&#xff0c;也可以称之为激活层。其计算就是将线性的函数转变为非线性函数的过程&#xff0c;只有这样&#xff0c;我们制作的深层神经网络才能无限逼近真实值。 自神经网络发展到目前为止&am…

android数据的五种存储方式

Android提供了5种方式存储数据1 使用SharedPreferences存储数据它的本质是基于XML文件存储key-value键值对数据&#xff0c;通常用来存储一些简单的配置信息。其存储位置在/data/data/< >/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改&…

【NOIP 模拟题】[T1] 等差数列(dp)

【题解】【dp】 【f[i][j]表示以i为结尾&#xff0c;j为公差的子序列个数】 【要注意有负数&#xff0c;所以将公差1000】 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int const p9901; int f[1010][2010],n,a[1010]; lo…

走在网页游戏开发的路上(十)

页游资源管理 现在页游的规模越来越来大&#xff0c;游戏内容丰富&#xff0c;资源管理变得很重要。现在一款SNS页游的所有资源可达50M&#xff0c;MMO页游更高达几百M&#xff0c;不可能把资源放到一个文件里面、也不可能一次性加载完所有资源。按200kb/s的下载速度来算&#…

Pytorch基础(七)——线性层(全连接层)

一、概念 在神经网络中&#xff0c;我们通常用线性层来完成两层神经元间的线性变换。 按照官网的解释&#xff0c;Linear.weight也即A&#xff0c; 我们可以称之为权重矩阵&#xff0c;对其转置后乘以输入数据(一般都是一维张量)&#xff0c;加上Linear.bias即b偏置。 二、P…

跨线程取出控件的值的写法(不是跨线程赋予控件值)

//这个方法是跨线程取出控件的值&#xff0c;不是跨线程赋予控件值private delegate void DelegateGetControl(各种参数);private void GetControl(各种参数&#xff0c;和委托的参数是一样的){try{if (this.InvokeRequired){//如果是跨线程的控件&#xff0c;就调用委托去实现…

使系统生成50个0-9之间的随机数,将每个数字出现的次数 存入一个一维数组中,统计出现次数最多和出现次数最少的数字,及出现次数 和出现频率。...

int [] numsnew int[10]; for(int i0;i<50;i){ int num(int)(Math.random()*10);//随机生成0-9 nums[num];//生成随机数 对应下标位置 自增 } int maxIndex0;//存储出现最多次数的下标 int minIndex0;//存储出现最少次数的下标 //循环数组 for(int i1;i<nums.length;i){ …

PureMVC(AS3)剖析:吐槽

PureMVC&#xff08;AS3&#xff09;剖析&#xff1a;吐槽 写在前面 世上没有银弹——不存在适用于所有情况的框架&#xff0c;只有适合的框架。再者任何一个好的东西&#xff08;语言、框架等&#xff09;最终还取决于用的人&#xff0c;语言和框架本身并不能保证用户的代码清…

Pytorch基础(八)——正则化

一、概念 正则化在深度学习领域是为了防止训练结果过拟合而采取的一种方法。 1.1 过拟合 过拟合表示模型的泛化能力较差&#xff0c;体现在实际训练模型上就是在训练集表现很好&#xff0c;但是在测试集的效果一般。 过拟合的原因&#xff1a;1&#xff0c;模型过于复杂。2&…

uva 11997 K Smallest Sums 优先队列处理多路归并问题

题意&#xff1a;K个数组每组K个值&#xff0c;每次从一组中选一个&#xff0c;共K^k种&#xff0c;问前K个小的。 思路&#xff1a;优先队列处理多路归并&#xff0c;每个状态含有K个元素。详见刘汝佳算法指南。 1 #include<iostream>2 #include<cstdio>3 #includ…

.net生成随机字符串

生成随机字符串的工具类&#xff1a; /// <summary>/// 随机字符串工具类/// </summary>public class RandomTools{/// <summary>/// 随机系数/// </summary>public static int _RandIndex 0;#region 获取某个区间的一个随机数/// <summary>///…

【图像处理】——Python鼠标框选ROI(感兴趣)区域并且保存(含鼠标事件)

鼠标交互切割矩形 接下来,就是本文重点了。先吐个槽,网上有资源,但搜到的都是C++的。本来有点气馁的,还好,有官网在,文档写得很清楚,而且接口函数名字变化不大,稍微做下修改就行了。 import cv2global img global point1, point2 def on_mouse(event, x, y, flags, pa…

c++ 11 override final

C 11添加了两个继承控制关键字&#xff1a;override和final。 override确保在派生类中声明的重载函数跟基类的虚函数有相同的签名。final阻止类的进一步派生和虚函数的进一步重载 出处&#xff1a;http://www.cnblogs.com/zhangdongsheng/ 作者&#xff1a;张东升