uvalive 6185
高斯消元,以前从来没写过,今天的模拟比赛里面,添琦给了我一个模板!
虽然是个裸的,但是因为从来没写过,一个小细节竟然搞了我几个小时;
终于最后在小珺同志的帮助下成功a掉了,太开心了!
存一下,作为模板!
代码:
#include<cstdio>
#define maxn 10
#include<cstring>
#include<cmath>
#include<algorithm>
#define eps 0.00001
using namespace std;
double matrix[maxn][maxn+];
double ans[maxn];
double a[maxn]; void exchange_col(int p1,int p2,int n)
{
double t;
int i;
for(int i=; i<=n; i++)
t=matrix[p1][i],matrix[p1][i]=matrix[p2][i],matrix[p2][i]=t;
} bool gauss(int n)
{
int i,j,k;
int p;
double r;
for(i=; i<n-; i++)
{
p=i;
for(j=i+; j<n; j++)
if(abs(matrix[j][i])>abs(matrix[p][i]))
p=j;
if(p!=i)
exchange_col(i,p,n);
if(matrix[i][i]==) return false;
for(j=i+; j<n; j++)
{
r=matrix[j][i]/matrix[i][i];
for(k=i; k<=n; k++)
matrix[j][k]-=r*matrix[i][k];
}
}
for(i=n-; i>=; i--)
{
ans[i]=matrix[i][n];
for(j=n-; j>i; j--)
ans[i]-=matrix[i][j]*ans[j];
if(abs(matrix[i][i])<eps)return false;
ans[i]/=matrix[i][i];
}
return true;
} int main()
{
int d;
while(scanf("%d",&d)&&d)
{
memset(matrix,,sizeof matrix);
for(int i=; i<=d+; i++)
scanf("%lf",&a[i]);
for(int k=; k<=d+; k++)
{
int cnt=;
for(int j=; j<=d+; j++)
{
if(k==j) continue;
matrix[cnt][d+]=a[j];
for(int i=; i<=d; i++)
{
if(i==) matrix[cnt][i]=;
else matrix[cnt][i]=matrix[cnt][i-]*j;
}
cnt++;
}
if(!gauss(d+))
{
printf("%d\n",k);
break;
}
}
}
return ;
}
uvalive 6185的更多相关文章
- UVALive - 6185 Find the Outlier暴力填表+高斯消元+卡eps
https://cn.vjudge.net/problem/UVALive-6185 我真的是服了orz eps 1e5,1e6过不了 开1e2 1e1都能过 题意:给你一个d阶多项式f的f(0),f ...
- UVALive - 4108 SKYLINE[线段树]
UVALive - 4108 SKYLINE Time Limit: 3000MS 64bit IO Format: %lld & %llu Submit Status uDebug ...
- UVALive - 3942 Remember the Word[树状数组]
UVALive - 3942 Remember the Word A potentiometer, or potmeter for short, is an electronic device wit ...
- UVALive - 3942 Remember the Word[Trie DP]
UVALive - 3942 Remember the Word Neal is very curious about combinatorial problems, and now here com ...
- 思维 UVALive 3708 Graveyard
题目传送门 /* 题意:本来有n个雕塑,等间距的分布在圆周上,现在多了m个雕塑,问一共要移动多少距离: 思维题:认为一个雕塑不动,视为坐标0,其他点向最近的点移动,四舍五入判断,比例最后乘会10000 ...
- UVALive 6145 Version Controlled IDE(可持久化treap、rope)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- UVALive 6508 Permutation Graphs
Permutation Graphs Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit ...
- UVALive 6500 Boxes
Boxes Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Status Pract ...
- UVALive 6948 Jokewithpermutation dfs
题目链接:UVALive 6948 Jokewithpermutation 题意:给一串数字序列,没有空格,拆成从1到N的连续数列. dfs. 可以计算出N的值,也可以直接检验当前数组是否合法. # ...
随机推荐
- vim乱码处理
编辑~/.vimrc文件,加上如下几行: set fileencodings=utf-8set termencoding=utf-8set encoding=utf-8
- js按值传递还是按引用传递?
js和其他大部分语言一样,有基本类型和引用类型.因此访问变量就有按值和按引用两种方式,但是传参的时候却只能按值传递.基本类型作为参数时按值传递自然无可厚非,但引用类型作为参数也按值传递就让人有点困惑了 ...
- C#扫盲之:前台线程后台线程
1.线程分类 线程由程序员创建,可是创建的方式不同,总体来说有两种,一种是个人构造,也就是使用thread类new线程对象创建,这一类线程是大部分程序员知道的,也叫专用线程;还有一种是由CLR创建,这 ...
- css怎么写链接到图片和地址
- Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合(注解及源码)
Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合(注解及源码) 备注: 之前在Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合中 ...
- ASP与ASP.NET转换Session数据桥的应用
背景: 现有公司的产品OA是采用ASP早先的技术开发,需要与目前最新的ASP.NET产品进行数据交互的应用.现有的ASP应用程序往往采用“ASP Sessions”,这是一种经典的ASP内置模式,即允 ...
- 使用XMl序列化器生成xml文件
生成XML文件 创建几个虚拟的短信对象,存在list中 备份数据通常都是备份至sd卡 使用StringBuffer拼接字符串 把整个xml文件所有节点append到sb对象里 sb.append(&q ...
- SqlServer 事务日志传输
基本概念 可以使用日志传送将事务日志不间断地从一个数据库(主数据库)发送到另一个数据库(辅助数据库).不间断地备份主数据库中的事务日志,然后将它们复制并还原到辅助数据库,这将使辅助数据库与主数据库基本 ...
- rc4加密
function RC4(Expression, Password: string): string; var RB : array[0..255] of Integer; X, Y, Z: long ...
- 仿主题广告轮播js
function SlideShow(c) { var a = document.getElementById("slide"); var f = document.getElem ...