http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4835

由题意,有:

(x1-x11)^2 + (x2-x12)^2 ... = D[1]^2

(x1-x21)^2 + (x2-x22)^2 ... = D[2]^2

...

(x1-x12,1)^2 + (x2-x12,2)^2 ... = D[12]^2

所以

-x1^2 + x11 * x1 .... = (-D[12] ^ 2 + x11` ^ 2 + x12 ^ 2 ....)/2

-x1^2 + x21 * x1 .... = (-D[22] ^ 2 + x21 ^ 2 + x22 ^ 2 ....)/2

高斯消元即可

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
const int maxn = 15;
double g[maxn][maxn],x[maxn];
double eps = 1e-8;
void debug(){
for(int i=0;i<12;i++){
for(int j=0;j<12;j++){
printf("%.2f%c",g[i][j],j==11?'\n':' ');
}
}
}
void gauss(){
memset(x,0,sizeof x);
for(int i = 0;i < 12;i++){
g[i][11] = -g[i][11] * g[i][11];
}
for(int i = 0;i < 12;i++){
for(int j = 0;j < 11;j++){
g[i][11] += g[i][j] * g[i][j];
}
}
for(int i = 0;i < 12;i++){
g[i][11] /= 2;
} for(int i = 0;i < 11;i++){
for(int j = 0;j < 12;j++){
g[i][j] -= g[11][j];
}
}
for(int i = 0;i < 11;i++){
//puts("begin");
// debug();
int maxr = i;
for(int j = i;j < 11;j++){
if(fabs(g[j][i]) > fabs(g[maxr][i])){
maxr=j;
}
}
if(maxr != i){
for(int j = i;j < 12;j++){
swap(g[i][j],g[maxr][j]);
}
}
// puts("after swap");
// debug();
for(int j = i + 1;j < 11;j++){
if(g[j][i] != 0){
double tmp = -g[j][i]/g[i][i];
for(int k = i;k < 12;k++){
g[j][k] += tmp * g[i][k];
}
}
}
}
for(int i = 10;i >= 0;i--){
double tmp = 0;
for(int j = i + 1;j < 11;j++){
tmp += g[i][j] * x[j];
}
x[i] = (g[i][11] - tmp) / g[i][i];
}
}
int main(){
int T;
scanf("%d",&T);
while(T--){
for(int i = 0;i < 12;i++){
for(int j = 0;j < 12;j++){
scanf("%lf",g[i]+j);
}
}
gauss();
for(int i=0;i<11;i++){
printf("%.2f%c",fabs(x[i])<eps?0:x[i],i==10?'\n':' ');
}
}
}

ZOJ 3645 BiliBili 高斯消元 难度:1的更多相关文章

  1. ZOJ 3645 BiliBili(高斯消元)

    Shirai Kuroko is a Senior One student. Almost everyone in Academy City have super powers, and Kuroko ...

  2. 「ZOJ 1354」Extended Lights Out「高斯消元」

    题意:给定一个\(5\times 6\)的棋盘的\(01\)状态,每次操作可以使它自己和周围四个格子状态取反,求如何操作,输出一个\(01\)矩阵 题解:这题可以通过枚举第一行的状态然后剩下递推来做, ...

  3. POJ1487 Single-Player Games 高斯消元

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - POJ1487 题解概括 给出多个树形结构,由小写字母和数字表示,每个小写字母表示一棵小树.现在,以a为根节点 ...

  4. 【BZOJ-3143】游走 高斯消元 + 概率期望

    3143: [Hnoi2013]游走 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2264  Solved: 987[Submit][Status] ...

  5. 【BZOJ-3270】博物馆 高斯消元 + 概率期望

    3270: 博物馆 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 292  Solved: 158[Submit][Status][Discuss] ...

  6. *POJ 1222 高斯消元

    EXTENDED LIGHTS OUT Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9612   Accepted: 62 ...

  7. [bzoj1013][JSOI2008][球形空间产生器sphere] (高斯消元)

    Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧 ...

  8. hihoCoder 1196 高斯消元·二

    Description 一个黑白网格,点一次会改变这个以及与其连通的其他方格的颜色,求最少点击次数使得所有全部变成黑色. Sol 高斯消元解异或方程组. 先建立一个方程组. \(x_i\) 表示这个点 ...

  9. BZOJ 2844 albus就是要第一个出场 ——高斯消元 线性基

    [题目分析] 高斯消元求线性基. 题目本身不难,但是两种维护线性基的方法引起了我的思考. void gauss(){ k=n; F(i,1,n){ F(j,i+1,n) if (a[j]>a[i ...

随机推荐

  1. 代码中特殊的注释技术——TODO、FIXME和XXX的用处

    本文内容概要: 代码中特殊的注释技术--TODO.FIXME和XXX的用处. 前言:今天在阅读Qt  Creator的源代码时,发现一些注释中有FIXME英文单词,用英文词典居然查不到其意义!实际上, ...

  2. (三)stm32之串口通信DMA传输完成中断

    一.DMA功能简介 首先唠叨一下DMA的基本概念,DMA的出现大大减轻了CPU的工作量.在硬件系统中,主要由CPU(内核).外设.内存(SRAM).总线等结构组成,数据经常要在内存和外设之间,外设和外 ...

  3. linux 命令集

          cat chattr chgrp c hmod chown cksum cmp diff diffstat file find git gitview indent cut ln less ...

  4. 下载Android 5.0源码(附源码)

    下载方法见我的另一篇博客:http://blog.csdn.net/maosidiaoxian/article/details/41680769 2014-12-24更新:5.0.1源码已上传. 这次 ...

  5. 【spring-quartz】 定时调度,时间设置

    .   CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 ...

  6. HBase之过滤器

    filter ==> SQL 中的Where filter的执行流程: 过滤器在客户端创建,然后通过RPC发送到服务器上,由服务器执行   基础过滤器:   比较器: Comparator  D ...

  7. winScp 跳板机到服务器

    http://jingyan.baidu.com/article/454316ab6ffe1af7a7c03a31.html?qq-pf-to=pcqq.group

  8. list转datatable c#

    private DataTable ToDataTable<T>(List<T> items) { var tb = new DataTable(typeof(T).Name) ...

  9. const 不再迷茫

    博客地址:http://blog.csdn.net/jiangxinnju github:https://github.com/jiangxincode 首先说明一下const在C和C++中的主要用法 ...

  10. Eclipse小技巧

      Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ ...