首页 技术 正文
技术 2022年11月7日
0 收藏 946 点赞 481 浏览 937 个字

高斯消元###

该来的总会来的系列

int gauss()
{
for(int i=1;i<=n;i++)//按照列来枚举,当前之前i-1列全消完了
{
int k=i;
for(int j=i+1;j<=n;j++)if(fabs(a[j][i])>fabs(a[k][i]))k=j;//找一个系数绝对值最大的放在当前行,方便消元
if(fabs(del=a[k][i])<eps)return 0;
for(int j=i;j<=n+1;j++)swap(&a[i][j],&a[k][j]);
for(int j=i;j<=n+1;j++)a[i][j]/=del;//把第i行的同时除系数
for(int j=1;j<=n;j++)
if(j!=i)
{
del=a[j][i];
for(int k=i;k<=n+1;k++)a[j][k]-=a[i][k]*del;
}
}
return 1;
}

在大学,背诵代码不是那么重要了,重要的还是积累,这个高斯消元就是标准的把一个n*n方阵消成上三角形,然后这个程序比较优秀的是一遍消下面一遍消上面,所以一下子就变成了对角线上全为1的矩阵了,十分方便。

求n个点曼哈顿距离极值###

先假设为三维的,就是求 $ max { |a_i-a_j| + |b_i-b_j| + |c_i-c_j| } \(
我们有绝对值不等式得\) |a|+|b| \geq |a+b| $

$ |a_i-a_j| + |b_i-b_j| + |c_i-c_j| = (\pm a_i \pm b_i \pm c_i )-( \pm a_j \pm b_j \pm c_j ) $

其中必须保证符号一致

所以我们就2^3次枚举 $ a_i,b_i,c_i $ 这个三元组的符号 ,然后每一次计算出最大值和最小值就可以了,代码如下

int calc()
{
int ans=0,Min,Max;
int i,j,k;
for(i=0;i<8;i++)
{
Min=oo,Max=-oo;
for(j=0;j<n;j++)
{
double sum=0;
for(k=0;k<3;k++)
{
int t=i&1<<k;
if(t)sum+=p[j][k];
else sum-=p[j][k];
}
Max=MAX(Max,sum);Min=MIN(Min,sum);
}
ans=MAX(ans,Max-Min);
}
return ans;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,565
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,413
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,186
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905