Luogu P2455 [SDOI2006]线性方程组 真•高斯消元板子
果然如Miracle学长所说。。。调了一天。。。qwq。。还是过不了线下的Hack
upd after 40min:刚刚过了
就是多了一个判无解的操作。。。
当系数都为0,且常数项不为0时,即为无解。
当找到自由元时,不能跳过这一行。。。否则会被Hack,见洛谷讨论
#include<cstdio>
#include<iostream>
#include<cmath>
#define R register int
using namespace std;
const double eps=1E-;
inline int g() {
R ret=,fix=; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-:fix;
do ret=ret*+(ch^); while(isdigit(ch=getchar())); return ret*fix;
}
long double a[][];
int n,m,k;
inline bool ck0(double x) {return x<eps&&x>-eps;}
inline void Gauss() {
for(R i=,pos=;i<=n&&pos<=n;++i) { R p;
for(p=pos;p<=n&&ck0(a[p][i]);++p) ;
if(p==n+) continue;
if(pos!=p) for(R j=;j<=n+;++j) swap(a[pos][j],a[p][j]);
for(R j=pos+;j<=n;++j) if(!ck0(a[j][i])){
register long double t=a[j][i]/a[pos][i];
for(R k=;k<=n+;++k) a[j][k]-=a[pos][k]*t;
} ++pos;
} register bool flg1=false,flg2=false;
for(R i=;i<=n;++i) { R j=;
while(ck0(a[i][j])&&j<=n+) ++j;
if(j==n+) flg1=true;
if(j>n+) flg2=true;
} if(flg1) {putchar('-'),putchar(''); return ;}
if(flg2) {putchar(''); return ;}
for(R i=n;i>=;--i) {
for(R j=n;j>=i+;--j) a[i][n+]-=a[i][j]*a[j][n+];
a[i][n+]/=a[i][i];
} for(R i=;i<=n;++i) if(ck0(a[i][n+])) printf("x%d=0\n",i); else printf("x%d=%.2Lf\n",i,a[i][n+]);
}
signed main() {
n=g(); for(R i=;i<=n;++i) for(R j=;j<=n+;++j) a[i][j]=g(); Gauss(); //while(1);
}
2019.05.13
Luogu P2455 [SDOI2006]线性方程组 真•高斯消元板子的更多相关文章
- Luogu2455 [SDOI2006]线性方程组 (高斯消元)
模板特殊情况没exit(0) $\longrightarrow$60 了一下午 //#include <iostream> #include <cstdio> #include ...
- luogu P2962 [USACO09NOV]灯Lights 高斯消元
目录 题目链接 题解 题目链接 luogu P2962 [USACO09NOV]灯Lights 题解 可以折半搜索 map合并 复杂度 2^(n / 2)*logn 高斯消元后得到每个点的翻转状态 爆 ...
- 【Luogu】P3317重建(高斯消元+矩阵树定理)
题目链接 因为这个专门跑去学了矩阵树定理和高斯消元qwq 不过不是很懂.所以这里只放题解 玫葵之蝶的题解 某未知dalao的矩阵树定理 代码 #include<cstdio> #inclu ...
- 【luogu P2455 [SDOI2006]线性方程组】 题解
题目链接:https://www.luogu.org/problemnew/show/P2455 无解:最后一列对应元素不为0,前面全是0. 无穷解:一行全是0. 嗯...在消元过程中不要直接拿矩阵元 ...
- luogu 3389 【模板】高斯消元
大概就是对每一行先找到最大的减小误差,然后代入消元 #include<iostream> #include<cstdio> #include<cstring> #i ...
- P2455 [SDOI2006]线性方程组
P2455 [SDOI2006]线性方程组 真\(\cdot\)高斯消元模板题 由于各种hack数据被造出来~码量突增~,其实也就多了二三十行 将每行系数消到最多有一个非0数 特殊情况: 在过程同时 ...
- hdu 3359 Kind of a Blur (高斯消元 浮点型)
题目链接 题意: H * W (W,H <= 10) 的矩阵A的某个元素A[i][j],从它出发到其他点的曼哈顿距离小于等于D的所有值的和S[i][j]除上可达点的数目,构成了矩阵B.给定矩阵B ...
- UVALive - 3490 Generator (AC自动机+高斯消元dp)
初始有一个空串s,从前n个大写字母中不断随机取出一个字母添加到s的结尾,出现模式串t时停止,求停止时s的长度期望. 这道题解法不唯一,比较无脑的方法是对模式串t建一个单串AC自动机,设u为自动机上的一 ...
- [bzoj3601] 一个人的数论 [莫比乌斯反演+高斯消元]
题面 传送门 思路 这题妙啊 先把式子摆出来 $f_n(d)=\sum_{i=1}^n[gcd(i,n)==1]i^d$ 这个$gcd$看着碍眼,我们把它反演掉 $f_n(d)=\sum_{i=1}^ ...
随机推荐
- CentOS6 下Samba服务器的安装与配置
原地址:http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html 一.简介 Samba是一个能让Linux系统应用Microsoft网 ...
- TFS自定义开发中的反射应用
最近CM(Configuration Management) 的同事在自定义开发TFS的过程中遇到一个问题. 领导要求快速开发一个工具, 可以自动连接TFS,然后自动Check out一些word文件 ...
- JVM体系结构之五:本地方法栈
对于一个运行中的Java程序而言,它还可能会用到一些跟本地方法相关的数据区.当某个线程调用一个本地方法时,它就进入了一个全新的并且不再受虚拟机限制的世界.本地方法可以通过本地方法接口来访问虚拟机的运行 ...
- JAVA 编程思想三
1:JAVA可变参数? 参数个数不确定,但是类型确定: 可变参数位于最后一项,只支持一个可变参数: public void funciton1(int a, String ...args) { for ...
- LAMP 1.4 PHP编译安装
1.下载 ...
- JDBC编程之数据准备
--------------------siwuxie095 JDBC 编程之数据准备 启动 MySQL 服务,在管理员模式下的 CMD 窗口中输入 net start mysqldb 「对应的关闭 ...
- 将Linux 标准输出,错误输出重定向到文件
1.想要把make输出的全部信息,输出到某个文件中,最常见的办法就是: make xxx > build_output.txt 此时默认情况是没有改变2=stderr的输出方式,还是屏幕,所以, ...
- ubuntu server usb安装盘制作问题
本来服务器上装的是windows server 2003,开多个虚拟机装linux来用,但发现不管是vmware还是virtualbox,总是有内存泄漏,大约2个星期左右16G内存就全没了,任务管理器 ...
- 关于 char 和 unsigned char 的区别
首先卖个关子: 为什么网络编程中的字符定义一般都为无符号的字符? char buf[16] = {0}; unsigned char ubuf[16] = { 0 }; 上面两个定义的区别是: ...
- 数据库 连接(join)
转自http://www.cnblogs.com/caozengling/p/5318696.html 数据库中飞内连接,自然连接,外连接 数据库中的连接join氛围内连接,自然连接,外连接,外连接又 ...