题目链接


题目大意

给你一个线性变换函数f(z)=az+bcz+df(z)=\frac{az+b}{cz+d}f(z)=cz+daz+b​,现在把取值范围扩展到复数域。给你3个等式
f(z1)=w1f(z_1)=w_1f(z1​)=w1​
f(z2)=w2f(z_2)=w_2f(z2​)=w2​
f(z3)=w3f(z_3)=w_3f(z3​)=w3​
问你f(z0)f(z_0)f(z0​)是多少?


解题思路:

题目有个很有意思的地方就是它保证了解是唯一的!!
现在有3个等式只能确定3个变量,那么对于第4个变量我们是可以直接赋一个特殊值去求的?

那么最特殊的是什么呢?肯定是分母啊!

那么肯定是对分母里面的ccc进行分类讨论

  1. c=0c=0c=0

如果c=0c=0c=0那么f(z)=az+bdf(z)=\frac{az+b}{d}f(z)=daz+b​其实ddd就是一个常数无所谓的那么就直接把ddd变成(1,0)(1,0)(1,0)就可以直接解了

  1. c!=0c!=0c!=0
    那么我们可以直接另这个c=(1,0)c=(1,0)c=(1,0)反正上下有比例都是无所谓的,现在有3个变量,3个方程也可以直接接高斯消元就可以了

AC code

#include <bits/stdc++.h>#define endl '\n'
#define IOS std::ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define mp make_pair
#define seteps(N) fixed << setprecision(N)
typedef long long ll;using namespace std;
/*-----------------------------------------------------------------*/ll gcd(ll A, ll b) {return b ? gcd(b, A % b) : A;}
#define INF 0x3f3f3f3fconst int N = 3e5 + 10;
const long double eps = 1e-9;
typedef pair<int, int> PII;typedef complex<long double> cp;
cp A[10][10];long double mo(cp x) {return x.imag() * x.imag() + x.real() * x.real();
}void guss(int n) {for(int i = 1; i <= n; i++ ){int r = i;for(int j = i + 1; j <= n; j++) {if(mo(A[j][i]) > mo(A[r][i])) r = j;}if(r != i) swap(A[r], A[i]);if(mo(A[i][i]) < eps) continue;for(int j = 1; j <= n; j++) {if(i == j) continue;cp tmp = A[j][i] / A[i][i];for(int k = i; k <= n + 1; k++) {A[j][k] -= A[i][k] * tmp; }}}for(int i = 1; i <= n; i++) {if(mo(A[i][i]) < eps) continue;A[i][n + 1] /= A[i][i];}
}int main() {IOS;cp a, b, c;cp z[5], w[5];cp qz;int t;long double x, y;cin >> t;while(t--) {for(int i = 1; i <= 3; i++) {cin >> x >> y;z[i].real(x);z[i].imag(y);cin >> x >> y;w[i].real(x);w[i].imag(y);}cin >> x >> y;qz.real(x);qz.imag(y);a = (w[1] - w[2]) / (z[1] - z[2]);b = w[1] - a * z[1];cp res;if(mo(a * z[3] + b - w[3]) < eps) {res = a * qz + b;} else {for(int i = 1; i <= 3; i++) {A[i][1] = z[i];A[i][2] = cp(1, 0);A[i][3] = -w[i];A[i][4] = w[i] * z[i];}guss(3);res = (A[1][4] * qz + A[2][4]) / (qz + A[3][4]);}cout << seteps(12) << res.real() << " " << res.imag() << endl;}
}

分类讨论 ---- 2021 icpc 沈阳 L Linear Fractional Transformation (思维题)相关推荐

  1. 容斥 + 树形dp ---- 2021 icpc 沈阳 L Perfect Matchings

    题目链接 题目大意: 就是给你一个2n2n2n个点的完全图,从这个图里面抽出2n−12n-12n−1条边,这些边形成一颗树,现在问你剩下的图里面点进行完美匹配有多少种方案? 解题思路: 一开始被完美匹 ...

  2. 2021 ICPC 沈阳赛区J题 Luggage Lock

    2021 ICPC 沈阳赛区J题 Luggage Lock 题意 有TTT组样例,其中每组样例为: 给定一个密码为b0b1b2b3b_0b_1b_2b_3b0​b1​b2​b3​的密码锁,已知当前密码 ...

  3. 2021 ICPC 沈阳站 D题 Journey to Un‘Goro (打表+找规律)

    2021 ICPC 沈阳站 D.Journey to Un'Goro [链接][http://codeforces.com/gym/103202/problem/D](http://codeforce ...

  4. 分类讨论 ---- 2020 icpc 上海 Walker (二分 or 思维分类讨论)

    题目链接 题目大意: 就是两个人在坐标轴上面,有起始的坐标p1,p2p1,p2p1,p2,和速度v1,v2v1,v2v1,v2,问你访问完这长度为nnn的数轴最短时间是多少? 解题思路: 大佬有直接二 ...

  5. 2021 ICPC 沈阳站总结

    热身赛 4道原题,3道水题+1道防AK(乱搞?)题,10min水出前3题提前下班 正式赛 题目有梯度,给出题人点赞! 开场前1h签了5个到,当时排名很靠前.之后就3人卡3题(ILM),I 我之前一直手 ...

  6. 2021 icpc 沈阳 J-Luggage Lock

    比赛结束后,立马和队友开了一场重现,然后被暴打.  J题是说,给你一把锁,有4位数,每位是0-9,然后给你目前锁的状态,和密码状态,你可以将连续的几个位置同时向上或下拨动,或者你单个位置拨动,问你最后 ...

  7. 2021 ICPC沈阳 J.Luggage Lock(bfs,模拟)

    题目描述 题目链接 题目分析 这是一道很明显的bfs+模拟的题(和八数码是一类题)这是一道很明显的bfs+模拟的题(和八数码是一类题)这是一道很明显的bfs+模拟的题(和八数码是一类题) 因为起点和终 ...

  8. 【ICPC 2021网络赛2】The 2021 ICPC Asia Regionals Online Contest (II)签到题5题

    M. Addition 题意: 给出n,接下来三行,每行n位二进制数,分别表示符号sgn{-1,1}和a{0,1}, b{0,1}. 令c=a+b(a和sgn每位相乘得到数a),最后将c拆成每一位输出 ...

  9. 2021 CCPC 哈尔滨 B. Magical Subsequence(思维题)

    Problem - B - Codeforces 思路: 从前往后找寻两两之和一样的最大长度.可以不连续,但是一定是按从前往后的顺序.可以发现每个数的范围是[1,100],范围不大,是一个突破口,两数 ...

最新文章

  1. HTML文本下划线效果,聊聊CSS中文本下划线_CSS, SVG, masking, clip-path, 会员专栏, text-decoration 教程_W3cplus...
  2. 短视频直播带货单页面源码 自媒体落地页织梦模板
  3. Shell编程基础(1)
  4. redis用HyperLogLog计算UV
  5. 人工智能学习(二)安装tensorflow与pytorch
  6. 每天学点Python Cookbook(三)
  7. 省级面板数据(2000-2019)三:人口比、抚养比、就业、失业、离婚、教育(stata版)
  8. 主机DIY玩家的必备工具包
  9. 7-2 Rank a Linked List (25 分)
  10. Filter过滤器的作用
  11. 东南亚电商巨头Shopee宣布裁员,互联网大厂还能养老吗?
  12. 证明厄米矩阵不同特征值对应特征向量正交
  13. LFY-SpringBoot1【课程概述、springboot2概述】
  14. 刚装修的房子多久能住?集成墙面真的好吗?
  15. jenkins:无法连接仓库
  16. 发布网站ASP.NET(ASPX)
  17. python中的matplotlib用法
  18. 技术美术知识学习_06:关于法线贴图详解
  19. 牛客练习赛52 BGalahad 树状数组
  20. 运营商大数据怎样精准营销推广获客?

热门文章

  1. Linux之用户组相关操作 groupadd groupdel
  2. python递归使用
  3. MAVEN项目对象模型,原来找Bug也不用如此费时费事。
  4. 目标检测新技能!引入知识图谱:Reasoning-RCNN
  5. 实战:使用Mask-RCNN的停车位检测
  6. 综述 | 基于深度学习的目标检测算法
  7. Netty Channel源码分析
  8. 单林多域群集环境中将Exchange 2003迁移到Exchange 2010系列之五
  9. 开源项目OpenGene发起人:用“互联网+基因技术”改变肿瘤的诊断与治疗
  10. ORA-32004: obsolete and/or deprecated parameter(s) specified