https://cn.vjudge.net/problem/UVALive-6185

我真的是服了orz eps 1e5,1e6过不了 开1e2 1e1都能过

题意:给你一个d阶多项式f的f(0),f(1)...f(d+1),f(d+2) 有一个是错误的,问第几个是错的

题解:题目多给了两个方程(约束)。

想了一下如果只给一个,是找不出来的。

给两个的话,可以这么考虑:

  先取出一个方程X,再取剩下的n个高斯消元一下,将解得的系数带入最后一个方程,if成立,说明X是错的,else再取另一个(说明错误的在n个 或最后一个)。

坑:下标无限搞错,对着样例1写了一下,虽然具体一些,但有个d+1写成了3orz

#include <iostream>
#include <vector>
#include <cstdlib>
#include <algorithm>
#include <cstring>
#include <cmath>
#include<cstdio>
#include<vector>
#define rep(i,t,n) for(int i =(t);i<=(n);++i)
#define per(i,n,t) for(int i =(n);i>=(t);--i)
#define mmm(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long ll;
const int maxn= ;
double a[][],aa[][], del;
double eps = 5e-;
/*高斯消元,系数矩阵为a[i][j],i=1…n,j=1…n,常数为a[i][n+1],i=1…n,返回值为是否有唯一解,答案存在a[i][n+1]*/
bool gauss(int n) {
for (int i = ; i <= n; i++) {
int k = i;
for (int j = i + ; j <= n; j++)if (fabs(a[j][i]) > fabs(a[k][i]))k = j;
if (fabs(del = a[k][i]) < eps)return ;
for (int j = i; j <= n + ; j++)swap(a[i][j], a[k][j]);
for (int j = i; j <= n + ; j++)a[i][j] /= del;
for (k = ; k <= n; k++)if (k != i) {
del = a[k][i];
for (int j = i; j <= n + ; j++)a[k][j] -= a[i][j] * del;
}
}
return ;
} int main() {
int d;
while (cin >> d&&d) {
mmm(a, );
mmm(aa, );
rep(i, , d + ) {
//cin >> aa[i][d + 2];
scanf("%lf", &aa[i][d + ]);
//aa[i][d + 2] = aa[i][d + 1];
}aa[][] = ; rep(i, , d + ) {
rep(j, , d+) {
aa[i+][j] =pow(1.0*i, j-);
}
}
rep(k, , d + ) {
int tot = ;
rep(i, , d + )if (i != k&&tot<=d+) { rep(j, , d+) a[tot][j] = aa[i][j]; tot++;}
if (!gauss(d + ))continue;
double temp = ;
int last = d + ;
if (k == d + )last--;
rep(i, , d+)
temp += a[i][d + ] * aa[last][i];
if (abs(temp - aa[last][d + ]) < 0.5) {
cout << k - << endl; break;
} } }
}
/*
1
1
2
2 4
42.4715310246
79.5420238202
28.0282396675
-30.3627807522
-49.8363481393
-25.5101480106
7.58575761381
*/
/*
2
1.0
4.0
12.0
16.0
25.0
1
-30.5893962764
5.76397083962
39.3853798058
74.3727663177
4
42.4715310246
79.5420238202
28.0282396675
-30.3627807522
-49.8363481393
-25.5101480106
7.58575761381
5
-21.9161699038
-48.469304271
-24.3188578417
-2.35085940324
-9.70239202086
-47.2709510623
-93.5066246072
-82.5073836498
0*/

UVALive - 6185 Find the Outlier暴力填表+高斯消元+卡eps的更多相关文章

  1. UVALive 7138 The Matrix Revolutions(Matrix-Tree + 高斯消元)(2014 Asia Shanghai Regional Contest)

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...

  2. Gauss 高斯消元

    高斯消元…… (裸的暴力) 如果你有一个n元的方程组你会怎么办? Ans:直接用初中的解方程组的方法呀! 没错,直接暴力加减消元.那什么是“高斯消元”?说白了,就是普通的加减消元罢了. 本人再考场上打 ...

  3. 洛谷P4457/loj#2513 [BJOI2018]治疗之雨(高斯消元+概率期望)

    题面 传送门(loj) 传送门(洛谷) 题解 模拟赛的时候只想出了高斯消元然后死活不知道怎么继续--结果正解居然就是高斯消元卡常? 首先有个比较难受的地方是它一个回合可能不止扣一滴血--我们得算出\( ...

  4. BZOJ 2466 中山市选2009 树 高斯消元+暴力

    题目大意:树上拉灯游戏 高斯消元解异或方程组,对于全部的自由元暴力2^n枚举状态,代入计算 这做法真是一点也不优雅... #include <cstdio> #include <cs ...

  5. BZOJ4689 Find the Outlier 【高斯消元】*

    BZOJ4689 Find the Outlier Description Abacus教授刚刚完成了一个制作数表的计算引擎的设计.它被设计用于同时计算一个多项式在许多点的取值.例如对于多项式 f(x ...

  6. UVALive 6449 IQ Test --高斯消元?

    题意:给你一串数字,问这串数字符合f[n] = a*f[n-1],f[n] = a*f[n-1]+b*f[n-2],f[n] = a*f[n-1]+b*f[n-2]+c*f[n-3]这几个方程中的哪个 ...

  7. UVALive 7455 Linear Ecosystem (高斯消元)

    Linear Ecosystem 题目链接: http://acm.hust.edu.cn/vjudge/contest/127401#problem/B Description http://7xj ...

  8. First Knight UVALive - 4297(优化高斯消元解概率dp)

    题意: 一个矩形区域被分成 m*n 个单元编号为 (1, 1)至 (m, n),左上为 (1, 1),右下为(m, n).给出P(k)i,j,其中 1 ≤ i ≤ m,1 ≤ j ≤ n,1 ≤ k ...

  9. 【枚举】【高斯消元】Gym - 101412D - Find the Outlier

    给你一个未知的d次多项式在0,1,...,d+2处的取值,其中有且只有一个是错的,问你哪个是错的. 枚举哪个是错的,再在剩下的d+2个中取d+1个高斯消元,解出多项式系数,然后代一下最后剩下的那个数看 ...

随机推荐

  1. 把linux的man手册转化为windows下可读的格式

    原文链接: http://www.linux521.com/2009/system/200904/1542.html 把linux的man手册转化为windows下可读的格式 我也是一个Linux学习 ...

  2. java解惑--摘要

    (1)下面是一个试图解决上述问题的程序,它会打印出什么呢?public class Change{public static void main(String args[]){System.out.p ...

  3. C#-MVC开发微信应用(4)--微信门户菜单的管理操作

    最近对微信接口进行深入的研究,通过把底层接口一步步进行封装后,逐步升级到自动化配置.自动化应答,以及后台处理界面的优化和完善上,力求搭建一个较为完善.适用的微信门户应用管理系统. 在微信门户系统里面, ...

  4. 无意识(无知)-->有意识-->进入潜意识-->无意识(本能状态)

    无意识(无知)-->有意识-->进入潜意识-->无意识(本能状态) 1. 从“无意识-->有意识”的两个重要内容是“反省”+“要努力学习”,估计有80%的人无法跨过这一步 2. ...

  5. 开源CFD并非万金油

    今天有网友在群里讨论开发CFD软件的事情,众说纷纭,有网友提到"没有必要开发CFD软件了,直接使用开源OpenFOAM就行".但个人认为这说法还是有一些需要商榷的地方,开源软件也不 ...

  6. Java多线程:SimpleDateFormat

    一.SimpleDateFormat的线程安全问题 为什么SimpleDateFormat是线程不安全的? 下面通过一个案例代码来说明 public class DateUtilTest { publ ...

  7. 【C】——实现tree命令

    在大部分的linux系统中有一个很好用的命令——tree,就是显示目录的结构,但是发现在FreeBSD中没有这个命令,因此自己实现了一个简单的tree.代码如下:主要利用了递归的思想. #includ ...

  8. 用opencv抽取视频的帧并保存为连续的图片

    转自http://blog.csdn.net/timidsmile/article/details/8283319 #include"stdafx.h" #include < ...

  9. IOC容器特性注入第七篇:请求上下文作用域

    Ninject的对象作用域: Transient .InTransientScope() 每次调用创建新实例. Singleton .InSingletonScope() 单例,仅创建一个实例. Th ...

  10. [PyData] 01 - Web Crawler

    前言 一.总体策略 一些常见抓取数据的例子.三步走: 抓取数据并存储 <---- 数据处理 数据展示 二.学习资源 首先,通过Beautiful Soup抓取数据 from http://www ...