洋葱第4场C和D题解……

只是记录一下:

我们机房讨论的结果……(当然有一个au爷一开始就秒掉了……
首先先n^2或随机枚举出一对点
根据抽屉原理可得枚举(n/2)^2+1次后至少有一对点全是对的
然后对于两个对的点,首先考虑缩放比例
不论是旋转还是平移两个点之间的距离都不会改变
而缩放对两点间的距离改变的倍数就等于缩放的倍数
(因为相似三角形
所以缩放就求出来了
然后可以发现缩放和旋转其实可以反过来
那么把缩放放到前面,现在考虑中间只有旋转和平移
对于旋转
因为平移不会改变两个点之间连线的斜率,所以直接根据斜率的变化可以求出旋转角
然后结合旋转角和缩放比就可以直接把平移偏移量求出来了
此题完结

(核心思路就是两个点之间相对的某个值不会随其中的两个操作而改变,只会随剩下的一个操作改变,根据这个就可以根据唯一一个会影响两个点之间相对的某个值的操作直接得出某操作的值了……

时间: 2024-08-05 16:07:11

洋葱第4场C和D题解……的相关文章

牛客网_2018年全国多校算法寒假训练营练习比赛(第一场)_部分题解

~__~花了大半个小时水了点题,将究看看. 比赛首页 > A   大吉大利,今晚吃鸡--枪械篇 > 21035827 在绝地求生(吃鸡)游戏里,不同的枪支有不同的威力,更是可以搭配不同的配件,以提升枪支的性能. 每一把枪都有其威力及其可装备配件种类.每一个配件有其所属种类,可以为枪支提供威力的百分比加成.每一把枪只能装备一个同类配件.给你n把枪支和m个配件,枪的威力为p,可装备的配件数量为k,为k个不同类型的配件,同种类配件只可以装备一个.配件种类用数字q表示,配件威力加成用一个小数b表示.请

Codeforces Round #372 +#373 部分题解

用了两场比赛上Div 1感觉自己好腊鸡的说...以下是这两场比赛的部分题解(不得不说有个黄学长来抱大腿还是非常爽的) Round #372 : Div 2 A:Crazy Computer 题意:给定N个输入和一个时间长度M,每次输入屏幕上增加一个字符,若两个输入间隔大于M则屏幕上的字符会被清空,问结束时屏幕上还有多少个字符 直接模拟没有什么好说的 代码: 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring&g

10-3国庆节第六场模拟赛题解

T1 炮 (cannon) Description Makik 曾经沉迷于打麻将,热衷于点炮的他近日终于开始爱上了中国象棋.面对一个n×m的棋盘,他不禁陷入了思考:在这张棋盘上摆"炮",并且任意两个"炮"之间不会互相攻击的方案数究竟有多少呢? 说明:两枚炮可以互相攻击,当且仅当它们处在同一行或同一列上且恰好间隔一枚棋子,即"炮打隔山". 由于 Makik 记不住太大的数字,所以请告诉他答案对 999983 取模的结果. Input 输入文件包含一

10-4国庆节第七场模拟赛题解

10-4 国庆节第七场模拟赛题解 T1工厂 (factory) 水 #include<iostream> #include<cstdio> #define int long long using namespace std; inline int read(){ int sum=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-')f=-1; ch=getchar(); } while(ch>='0

2019 湖南多校第五场题解

解题过程 开场byf去修锅,各种spj没写,还有写挂的.开场shl写A,lfw写K,shl写E,shl写G,前期签到顺利.随后lfw推出D的规律,开始写,遇到了一些错误,首先MLE了,因为k^2预处理,lfw用的string来存不同的子串丢到unordered_map里,那么就是k^3的存储,肯定炸,接着换成了hash值,但是单关键字冲突了,WA了一发,接着用双关键字,使用一个pair存map,map带的logn常数MLE了一发,中间B题加上了spj,lfw习惯性输出空格,WA一发后过了,最后l

题解报告(CDUT暑期集训——第三场)

题解报告(CDUT暑期集训--第三场) A - Problem A. Ascending Rating HDU - 6319 思路:单调队列板子题?(但是弱的一批的我还是不会用(有空补上 用的滑动窗口算法 按着题解的从后往前做(ps:菜是原罪 AC代码 #include<stdio.h> #include<iostream> #include<math.h> #include<algorithm> #include<string.h> #incl

Leetcode 第174场周赛 题解

Leetcode 第174场周赛 题解 方阵中战斗力最弱的 K 行 签到题,统计一下每行的军人数量,然后设置一下排序规则即可. 时间复杂度 \(O(nlogn)\) typedef long long ll; typedef double db; #define _for(i,a,b) for(int i = (a);i < b;i ++) #define _rep(i,a,b) for(int i = (a);i > b;i --) #define INF 0x3f3f3f3f3f3f3f3

Leetcode 第175场周赛 题解(完结)

Leetcode 第175场周赛 题解 检查整数及其两倍数是否存在 数据范围小的可怜,\(O(n^2)\) 解法可行.如果范围大一点,可以先进行排序然后遍历每一个数进行二分查找,时间复杂度 \(O(nlogn)\) 代码是平方解法. typedef long long ll; typedef double db; #define _for(i,a,b) for(int i = (a);i < b;i ++) #define _rep(i,a,b) for(int i = (a);i > b;i

2014百度之星初赛第一场部分题解

代码太丑就不贴了.,又是一篇无责任民科的题解.. HDU 4828 Grids 看了一下跟卡特兰数差点儿相同就猜了一下,详细为啥我也不知道.. 然后有除法套个逆元.. HDU 4830 pid=4830">Party 发现这个除了叶子节点可能是环,剩下就是一棵树了(假设是单独的环,就用虚拟节点0来连接一下) 剩下就是环状树形dp. . 章鱼图上的树形dp.. . . 类似zoj 3527