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}^ ...
随机推荐
- Oracle RAC TAF 无缝failover
理论背景: TAF( Transparent Application Failover ) allows oracle clients to reconnect to a surviving inst ...
- bzoj 1101 Zap —— 莫比乌斯反演
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1101 直接莫比乌斯反演. 代码如下: #include<cstdio> #inc ...
- uboot和内核分区的修改
随着内核的更新,内核越来越大,uboot给nand的kernel分区默认是2M的 device nand0 <nandflash0>, # parts = 4 #: name ...
- BadImageFormatException,未能加载正确的程序集XXX的解决办法
BadImageFormatException,未能加载正确的程序集XXX的解决办法 IDE:VS2010 语言:C# 异常:System.BadImageFormatException,未能加载正确 ...
- 新版 Spring下载方法
1.百度 Spring 打开官方网站 http://spring.io/ 2.======================================= 3.================= ...
- .net关于应用程序缓存的一些疑惑
疑惑:获取缓存后强制转换为实体对象传递给前台,如果前台对这个实体对象中属性更改的话缓存中的数据也随之改变,为啥??? 首先是创建缓存的方法: /// <summary> /// 创建缓存项 ...
- JS设置cookie、读取cookie、删除cookie(转)
JS设置cookie.读取cookie.删除cookie 转载 2015-04-17 投稿:hebedich 我要评论 Js操作Cookie总结(设置,读取,删除),工作中经常会用到的哦! ...
- socket消息发送
expressClient.html <html><head><meta http-equiv="Content-Type" content=&quo ...
- 功能:formatter 表单提交 拼接参数的形式
datagarid的formatter属性 value: 代表当前单元格中的值.row:代表当前行.index: 代表当前行的下标. {field:'is_hot',title:'是否热门',widt ...
- Servlet的一些细节
由于客户端是通过URL地址访问web服务器的中的资源的,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet& ...