【枚举】【高斯消元】Gym - 101412D - Find the Outlier
给你一个未知的d次多项式在0,1,...,d+2处的取值,其中有且只有一个是错的,问你哪个是错的。
枚举哪个是错的,再在剩下的d+2个中取d+1个高斯消元,解出多项式系数,然后代一下最后剩下的那个数看看是否合法,如果合法再看看那个错的是否真的错了。
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
#define N 11
double v[N];
int n;
double B[N][N+1],A[N][N+1],x[N],b[N];
double sqr(double x){return x*x;}
void guass_jordan()
{
memcpy(B,A,sizeof(A));
for(int i=1;i<=n;++i)
B[i][n+1]=b[i];
for(int i=1;i<=n;++i)//枚举:正在消除第i个未知数,之后第i个方程废掉,矩阵行、列-1
{
int pivot=i;
for(int j=i+1;j<=n;++j)//枚举j:把正在处理的未知数的系数的绝对值最大的方程换到第i行
if(fabs(B[j][i])>fabs(B[pivot][i]))
pivot=j;
swap(B[i],B[pivot]);
//if(fabs(B[i][i])<EPS)
//若所有(最大)的该未知数系数为0,说明少一个未知数,有无穷多解
for(int j=i+1;j<=n+1;++j)
B[i][j]/=B[i][i];
for(int j=1;j<=n;++j)
if(i!=j)//枚举所有的方程,从第j个方程中消去第i个未知数
for(int k=i+1;k<=n+1;++k)//依次把第j个方程中的第k个未知数减去应减的数值
B[j][k]-=B[j][i]*B[i][k];
}
for(int i=1;i<=n;++i) x[i]=B[i][n+1];
}
int d;
int main(){
while(1){
scanf("%d",&d);
if(!d){
return 0;
}
memset(B,0,sizeof(B));
memset(A,0,sizeof(A));
memset(x,0,sizeof(x));
memset(b,0,sizeof(b));
n=d+1;
for(int i=0;i<=d+2;++i){
scanf("%lf",&v[i]);
}
for(int i=0;i<=d+2;++i){
for(int j=0;j<=d+2;++j){
if(j!=i){
for(int k=0,l=0;k<=d+2;++k){
if(k!=i && k!=j){
int kk=1;
++l;
for(int p=1;p<=d+1;++p){
A[l][p]=(double)kk;
kk=kk*k;
}
b[l]=v[k];
}
}
guass_jordan();
int jj=1;
double tmp=0;
for(int k=1;k<=d+1;++k){
tmp+=(double)jj*x[k];
jj*=j;
}
if(fabs(tmp-v[j])<0.00001){
int ii=1;
double tmp2=0;
for(int k=1;k<=d+1;++k){
tmp2+=(double)ii*x[k];
ii*=i;
}
if(fabs(tmp2-v[i])>0.01){
printf("%d\n",i);
goto OUT;
}
}
}
}
}
OUT:;
}
return 0;
}
【枚举】【高斯消元】Gym - 101412D - Find the Outlier的更多相关文章
- uva 1560 - Extended Lights Out(枚举 | 高斯消元)
题目链接:uva 1560 - Extended Lights Out 题目大意:给定一个5∗6的矩阵,每一个位置上有一个灯和开关,初始矩阵表示灯的亮暗情况,假设按了这个位置的开关,将会导致周围包含自 ...
- poj1222 EXTENDED LIGHTS OUT 高斯消元||枚举
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8481 Accepted: 5479 Description In an ...
- POJ 3185 The Water Bowls(高斯消元-枚举变元个数)
题目链接:http://poj.org/problem?id=3185 题意:20盏灯排成一排.操作第i盏灯的时候,i-1和i+1盏灯的状态均会改变.给定初始状态,问最少操作多少盏灯使得所有灯的状态最 ...
- bzoj千题计划187:bzoj1770: [Usaco2009 Nov]lights 燈 (高斯消元解异或方程组+枚举自由元)
http://www.lydsy.com/JudgeOnline/problem.php?id=1770 a[i][j] 表示i对j有影响 高斯消元解异或方程组 然后dfs枚举自由元确定最优解 #in ...
- POJ 1681 Painter's Problem(高斯消元+枚举自由变元)
http://poj.org/problem?id=1681 题意:有一块只有黄白颜色的n*n的板子,每次刷一块格子时,上下左右都会改变颜色,求最少刷几次可以使得全部变成黄色. 思路: 这道题目也就是 ...
- POJ 1222【异或高斯消元|二进制状态枚举】
题目链接:[http://poj.org/problem?id=1222] 题意:Light Out,给出一个5 * 6的0,1矩阵,0表示灯熄灭,反之为灯亮.输出一种方案,使得所有的等都被熄灭. 题 ...
- POJ 1681 Painter's Problem 【高斯消元 二进制枚举】
任意门:http://poj.org/problem?id=1681 Painter's Problem Time Limit: 1000MS Memory Limit: 10000K Total ...
- poj1222(枚举or高斯消元解mod2方程组)
题目链接: http://poj.org/problem?id=1222 题意: 有一个 5 * 6 的初始矩阵, 1 表示一个亮灯泡, 0 表示一个不亮的灯泡. 对 (i, j) 位置进行一次操作则 ...
- POJ 1753 Flip Game(高斯消元+状压枚举)
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 45691 Accepted: 19590 Descr ...
随机推荐
- WinRAR分割超大文件
在自己的硬盘上有一个比较大的文件,想把它从网上通过E-Mail发送给朋友时,却发现对方的收信服务器不能够支持那么大的文件……,这时即使用ZIP等压缩软件也无济于事,因为该文件本身已经被压缩过了.于是许 ...
- Sqlmap使用教程
sqlmap也是渗透中常用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各种工具,只是一个便捷性问题,sql注入另一方面就是手工党了,这个就另当别论了. 今天把我一 ...
- linux编程之信号量编程
信号量当我们在多用户系统,多进程系统,或是两者混合的系统中使用线程操作编写程序时,我们经常会发现我们有段临界代码,在此处我们需要保证一个进程(或是一个线程的执行)需要排他的访问一个资源.信号量有一个复 ...
- Chrome控制台的妙用之使用XPATH
谷歌浏览器,对于作为程序员的我们来说可以是居家必备了,应该用的相当的熟悉了,我们用的最多的应该是network选项吧,一般用来分析网页加载的请求信息,比如post参数之类的,这些基本的功能基本上够用了 ...
- C#使用Linq To XML读取XML,Linq生成XML,Linq创建带属性或带节点XML
using System; using System.Linq; using System.Xml.Linq; namespace Sample2 { class Program { static v ...
- 【数位dp入门】【HDU2089】62
为了我的点歪的技能树…… 所以开始补一些sb的东西…… #include<bits/stdc++.h> typedef long long ll; using namespace std; ...
- IE6下面的浮动问题
第一个问题: 在IE6下面overflow:hidden;失效 原因:在IE6/7中子级设置position:relative;属性值后,导致父级的overflow:hidden;失效. ...
- hive-group by的时候把两个字段变成map
源表结构: pcgid string mobilegid string value double 测试数据如下: p1 m1 ...
- Freemarker的页面和JS遍历后台传入的Map
后端传到前端的Map Freemarker页面遍历Map: JS遍历Map:
- AC日记——[POI2008]BLO-Blockade 洛谷 [POI2008]BLO-Blockade
[POI2008]BLO-Blockade 思路: tarjan: 代码: #include <bits/stdc++.h> using namespace std; #define ma ...