hdu 6465 线性变换高斯消元
http://acm.hdu.edu.cn/showproblem.php?pid=6465
题意
给你三个点,再给你经过线性变换后的三个点,然后q次询问,给你一个点,需要你输出线性变换后的点
题解
- 线性变换:
- \(a_1x+b_1y+c_1=X\)
- \(a_2x+b_2y+c_2=Y\)
- 构造高斯消元矩阵,Y同理
\begin{matrix}
1 & x_1 & y_1 \\
1 & x_2 & y_2 \\
1 & x_3 & y_3
\end{matrix}
\right]
\left[
\begin{matrix}
a_1 \\
b_1 \\
c_1
\end{matrix}
\right]=\left[
\begin{matrix}
X_1 \\
X_2 \\
X_3
\end{matrix}
\right]
\]
代码
#include<bits/stdc++.h>
using namespace std;
void gao(double c[5][5]){
for(int i=1;i<=3;i++){
for(int j=i+1;j<=3;j++){
double rate=c[j][i]*1.0/c[i][i];
for(int k=i;k<=4;k++){
c[j][k]-=c[i][k]*rate;
}
}
}
for(int i=3;i>=1;i--){
for(int j=i-1;j>=1;j--){
double rate=c[j][i]*1.0/c[i][i];
c[j][4]-=c[i][4]*rate;
}
c[i][i]=c[i][4]/c[i][i];
}
}
double a[5][5],b[5][5];
int q,T;
double x,y,X,Y;
int main(){
cin>>T;
while(T--){
scanf("%lf%lf%lf%lf%lf%lf",&a[1][2],&a[1][3],&a[2][2],&a[2][3],&a[3][2],&a[3][3]);
a[1][1]=a[2][1]=a[3][1]=1;
for(int i=1;i<=3;i++)for(int j=1;j<=3;j++)b[i][j]=a[i][j];
scanf("%lf%lf%lf%lf%lf%lf",&a[1][4],&b[1][4],&a[2][4],&b[2][4],&a[3][4],&b[3][4]);
gao(a);gao(b);
scanf("%d",&q);
while(q--){
scanf("%lf%lf",&x,&y);
X=1*a[1][1]+x*a[2][2]+y*a[3][3];
Y=1*b[1][1]+x*b[2][2]+y*b[3][3];
printf("%.2f %.2f\n",X,Y);
}
}
}
hdu 6465 线性变换高斯消元的更多相关文章
- HDU 3949 XOR 高斯消元
题目大意:给定一个数组,求这些数组通过异或能得到的数中的第k小是多少 首先高斯消元求出线性基,然后将k依照二进制拆分就可以 注意当高斯消元结束后若末尾有0则第1小是0 特判一下然后k-- 然后HDU输 ...
- hdu 5755(高斯消元——模线性方程组模板)
PS. 看了大神的题解,发现确实可以用m个未知数的高斯消元做.因为确定了第一行的情况,之后所有行的情况都可以根据第一行推. 这样复杂度直接变成O(m*m*m) 知道了是高斯消元后,其实只要稍加处理,就 ...
- HDU 3949 XOR [高斯消元XOR 线性基]
3949冰上走 题意: 给你 N个数,从中取出若干个进行异或运算 , 求最后所有可以得到的异或结果中的第k小值 N个数高斯消元求出线性基后,设秩为$r$,那么总共可以组成$2^r$中数字(本题不能不选 ...
- Time travel HDU - 4418(高斯消元)
Agent K is one of the greatest agents in a secret organization called Men in Black. Once he needs to ...
- hdu 4870 rating(高斯消元求期望)
Rating Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- HDU 3364 Lanterns 高斯消元
Lanterns Problem Description Alice has received a beautiful present from Bob. The present contains ...
- HDU 3915 Game (高斯消元)
题意:有n堆石子,每个人只能从某一堆至少拿走一个,不能拿者败.问事先拿走某些堆的石子,使得先手必败. 析:将石子拆成二进制,未知数为1表示保留该堆石子,为0表示事先拿走该堆石子.最后求自由变元的数目, ...
- HDU 4870 Rating(高斯消元 )
HDU 4870 Rating 这是前几天多校的题目,高了好久突然听旁边的大神推出来说是可以用高斯消元,一直喊着赶快敲模板,对于从来没有接触过高斯消元的我来说根本就是一头雾水,无赖之下这几天做DP ...
- hdu 5755 2016 Multi-University Training Contest 3 Gambler Bo 高斯消元模3同余方程
http://acm.hdu.edu.cn/showproblem.php?pid=5755 题意:一个N*M的矩阵,改变一个格子,本身+2,四周+1.同时mod 3;问操作多少次,矩阵变为全0.输出 ...
随机推荐
- 初学Python之爬虫的简单入门
初学Python之爬虫的简单入门 一.什么是爬虫? 1.简单介绍爬虫 爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等. 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的 ...
- A1071 Speech Patterns (25 分)
一.技术总结 开始拿到这道题目时,思考的是我该如何区分它们每一个单词,不知道这里还是要学习得知在cctype头文件中有一个函数用于查看是否为0~9.a~z.A~Z,就是isalnum(),又因为题目中 ...
- 去掉Oracle数据库中字段值前后空格
发现oracle字段钟包含了空格,可能是前空格,也可能是后空格,因为是历史数据,需要特殊处理.但是中间的空格可能是一些特殊人员的姓名含有,这种情况不能处理.所以我们只需要处理前后空格即可.使用如下sq ...
- Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3) A. Math Problem 水题
A. Math Problem Your math teacher gave you the following problem: There are n segments on the x-axis ...
- python画一片绿叶给你
怎么用 turtle 画一个 π 字,于是我顺手到网上大致搜了下,发现网上没有画这个 π 字的,接着又用谷歌加英文搜索了下,还是没找到现成的答案. 不过通过这次搜索意外发现了一个有趣的网站,网站上有大 ...
- 洛谷 P2176(最短路)
###题目链接 洛谷 P2176 ### 题目大意: 已知农夫从 1 走到 N 点,一定走的是最短路.问你将某条路的长度变为其两倍后,农夫从 1 走到 N 点的路程最大增加多少,输出最大增量. 分析: ...
- Exploratory Testing 3.0 - 探索式测试
最近看了James Bach新发的一篇文章,名为Exploratory Testing 3.0,文章链接:http://www.satisfice.com/blog/archives/1509 这篇文 ...
- shell 命名管道,进程间通信, ncat作http server
命名管道基础 命名管道也被称为FIFO文件, 在文件系统中是可见的,并且跟其它文件一样可以读写! 命名管道特点: 当写进程向管道中写数据的时候,如果没有进程读取这些数据,写进程会堵塞 当读取管道中的数 ...
- Implement Dependent Reference Properties实现依赖引用属性 (EF)
In this lesson, you will learn how to implement properties whose values can depend on other properti ...
- c# jetbrains rider使用一段时间后
先上一个官方的对比图吧.https://www.jetbrains.com/rider/compare/rider-vs-visual-studio/index.html 功能上直接超越visual ...