寄寄寄寄寄寄寄寄寄寄寄寄寄寄寄寄寄|

TLE_Automation

园龄:2年9个月粉丝:19关注:23

P2455 [SDOI2006]线性方程组 题解

乱搞思路

他卡我顺序,那我打乱不就行了嘛

我直接一个 rand(),不断的交换就行了。

交了 10 遍才过。

/*
Work by: TLE_Automation
*/
#include<cmath>
#include<queue>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define LL long long
#define int long long
using namespace std;
const int N = 1e6 + 10;
const int MAXN = 2e5 + 10;
inline char readchar() {
static char buf[100000], *p1 = buf, *p2 = buf;
return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 100000, stdin), p1 == p2) ? EOF : *p1++;
}
inline int read() {
#define readchar getchar
int res = 0, f = 0;char ch = readchar();
for(; !isdigit(ch); ch = readchar()) if(ch == '-') f = 1;
for(; isdigit(ch); ch = readchar()) res = (res << 1) + (res << 3) + (ch ^ '0');
return f ? -res : res;
}
inline void print(int x) {
if (x < 0 ) putchar('-'), x = -x;
if (x > 9 ) print(x / 10);
putchar(x % 10 + '0');
}
double a[102][102];
int n;
void Gauss() {
for(int i = 1; i <= n; i++) {
int Max = i;
for(int j = i + 1; j <= n; j++) if(fabs(a[j][i]) > fabs(a[Max][i])) Max = j;
for(int j = 1; j <= n + 1; j++) swap(a[i][j], a[Max][j]);
if(a[i][i] == 0) continue;
for(int j = 1; j <= n; j++) {
if(j == i) continue;
double tmp = a[j][i] / a[i][i];
for(int k = 1; k <= n + 1; k++) a[j][k] -= a[i][k] * tmp;
}
}
}
#include<ctime>
signed main() {
srand(time(0));
n = read();
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n + 1; j++) {
scanf("%lf", &a[i][j]);
}
}
int T = 10;
while(T--) {
for(int i = 1; i <= n; i++) {
int rd = rand() % n + 1;
for(int j = 1; j <= n + 1; j++) {
swap(a[i][j], a[rd][j]);
}
}
}
Gauss();
for(int i = 1; i <= n; i++) {
if(a[i][i] == 0 && a[i][n + 1] == 0) return puts("0"), 0;
if(a[i][i] == 0 && a[i][n + 1] != 0) return puts("-1"), 0;
}
for(int i = 1; i <= n; i++) {
printf("x%lld=%.2lf\n", i, a[i][n + 1] / a[i][i]);
}
}

本文作者:TLE_Automation

本文链接:https://www.cnblogs.com/tttttttle/p/16310257.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   TLE_Automation  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起