[HDU3359]Kind of a Blur 高斯消元 陨石巨坑

2023-12-07 07:18

本文主要是介绍[HDU3359]Kind of a Blur 高斯消元 陨石巨坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是一道陨石巨坑的题 陨石巨坑 巨坑 

下面我讲一下坑在哪里 果断换红色

1.先读入宽度 !! 这该死的样例全是n*n

2.读入的是double !! 这该死的样例全是int

果断被坑N久 思路很简单 n*n个方程消元就行了

#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
#define eps 1e-6
#define EPS 1e-13
#define MAXN 200
#define MAXM 200
int n, m, D;
double pic[MAXN+10][MAXN+10];
int sgn(const double &x) {  return (x > eps) - (x < -eps); }
int ans[MAXN*MAXN+10];
template <int maxn, int maxm>
struct Maxtrix{int N, M, rank;Maxtrix() {}Maxtrix(int x, int y) { N = x; M = y; }double A[maxn+10][maxm+10];void init() { memset(A, 0, sizeof(A)); }void read(){for(int i = 0; i < N; i++)for(int j = 0; j <= M; j++)scanf("%lf", &A[i][j]);}void Gauss(){for(int i = 0, j = 0; i < N && j < N; i++, j++){int r = i;for(int k = i + 1; k < N; k++) if(fabs(A[k][j]) > fabs(A[r][j])) r = k;if(r != i) for(int k = 0; k <= M; k++) swap(A[r][k], A[i][k]);if(fabs(A[i][j]) < EPS) {i--;continue;}for(int k = 0; k < N; k++){if(i == k) continue;double f = A[k][j] / A[i][j];for(int l = j; l <= M; l++) A[k][l] -= f * A[i][l];}}}
};
Maxtrix <MAXN, MAXM> A;
int dis(int x1, int y1, int x2, int y2)
{return fabs(x1 - x2) + fabs(y1 - y2);
}
int id(int x, int y)
{return x * m + y;
}
void Build(int x, int y)
{int cnt = 0;int ID = id(x, y);for(int i = 0; i < n; i++)for(int j = 0; j < m; j++)if(dis(i, j, x, y) <= D){int tid = id(i, j);A.A[ID][tid] = 1;cnt++;}A.A[ID][n*m] = pic[x][y] * cnt;
}
int main()
{int kase = 0;while(scanf("%d%d%d", &m, &n, &D) == 3 && n+m+D){if(kase) puts("");for(int i = 0; i < n; i++)for(int j = 0; j < m; j++)scanf("%lf", &pic[i][j]);A.init();A.N = n*m;A.M = n*m+1;for(int i = 0; i < n; i++)for(int j = 0; j < m; j++)Build(i, j);A.Gauss();for(int i = 0; i < n; i++){for(int j = 0; j < m; j++) printf("%8.2lf", A.A[id(i, j)][n*m] / A.A[id(i, j)][id(i, j)]);puts("");}kase++;}
}


这篇关于[HDU3359]Kind of a Blur 高斯消元 陨石巨坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/464967

相关文章

HDU 5833 高斯消元

n个数,任选>=1个数相乘,使得乘积是完全平方数。 其实就是开关,控制灯泡。 数 ----第i个质因子p的个数%2  = {1 , 0} == 开关----第i个灯泡 = {开 , 关} 最后使得所有灯泡都是灭着的方案数 = 2^自由变元个数   全部关着的情况     ==   一个数也不选   应省去 import java.io.BufferedReader;

Vue Element Plus el-select 使用 filterable 搜索下 @blur 事件绑定失效

失效原因 使用 filterable 导致 blur 事件绑定在输入框上,而不是整个选择器上 当点击选项时,输入框失去焦点触发 blur 事件 而点击其她位置收起下拉款的时候,并不会触发输入款的 blur 事件 解决方案 使用 element 提供的 visible-change 事件进行绑定 在该事件绑定的函数上添加 visible 参数 当 visible 为 tru

给div元素添加blur() 事件或者focus()事件,tabindex,改变键盘上的 Tab 键在链接之间进行导航的顺序

给div元素添加blur() 事件或者focus()事件 话不多少上代码 <body><p onblur="b()" onfocus="f()" tabindex="2">获取焦点,失去焦点的事件</p></body><script>function f(){console.log('获取焦点')}function b(){console.log('失去获取焦点')}</script>

hiho一下第56周 高斯消元

小Ho:<吧唧><吧唧><吧唧> 小Hi:小Ho,你还吃呢。想好了么? 小Ho:肿抢着呢(正想着呢)...<吞咽>...我记得这个问题上课有提到过,应该是一元一次方程组吧。 我们把每一件商品的价格看作是x[1]..x[n],第i个组合中第j件商品数量记为a[i][j],其价格记作y[i],则可以列出方程式: a[1][1] * x[1] + a[1][2] * x[2] + ... +

poj 1222 EXTENDED LIGHTS OUT (高斯消元解异或方程组 开关问题)

近距离观摩今天北京站的比赛,向志愿者学姐要了一份题目,看了看H题; 因为数据被弱化,瞬间就想到了背包; 就先研究下标准解法——异或方程组; 下面为转载文: 题意:有一个5*6的矩阵,每个位置都表示按钮和灯,1表示亮,0表示灭。每当按下一个位置的按钮,它和它周围灯的状态全部翻转,问在这样的一个方阵中按下哪些按钮可以把整个方阵都变成灭的,这时1表示按了,0表示没按。 以下

poj1681 高斯消元+dfs枚举

wa  N多次后,终于把高斯消元的模板给弄出来了,并且精简了许多。 用dfs枚举变元比二进制枚举变元简单多了。 (也终于明白 变元代表只得解的个数。) 上模板。 #include <iostream>#include <algorithm>using namespace std;int a[400][400];int ans[400],x[400];//ans[]用于记录哪几种

poj1222 枚举 和 高斯消元

接触开关问题,最先的方法是枚举。然后接触到了更加高深的高斯消元。 高斯消元的思想:把一个全部熄灭的矩阵经过一系列开关后得到初始的状态。 具体分析可参照 http://blog.csdn.net/shiren_Bod/article/details/5766907 下面附上的代码付注释: #include <iostream>using namespace std;int map[3

【jquery】input 和 blur 事件

实现功能为:Dom 加载完之后,给input输入框绑定 input(输入变化) 和 blur(失去焦点) 事件,代码如下(错误): $("#newname").on("input", fIsNull("newname")) ;$("#newname").blur(fIsNull("newname")) ; 该代码会出现页面加载后自动执行 fIsNull 函数;后查看 jquery 文档

AcWing算法基础课笔记——高斯消元

高斯消元 用来求解方程组 a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n = b 2 … a n 1 x 1 + a n 2 x 2 + ⋯ + a n n x n = b n a_{11} x_1 + a_{12} x_2 + \dots + a_{1n} x_n = b_1\\ a_

Redis:WRONGTYPE Operation against a key holding the wrong kind of value

1.错误信息 redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value 2.分析 当前程序中key的操作类型,并不与redis库中存在的key的类型相匹配。举例  第一次保存key,将其设置为key-value