[爬山算法] [BZOJ5041] LWD的降临
来源:互联网 发布:mac pro win10性能 编辑:程序博客网 时间:2024/04/30 11:14
题目传送门
2017.9.15 水 UOJ 裙的时候 onepointo 童鞋说这道题没人水……于是看了看……
其实就是求一个椭圆与给定圆外切的切点坐标,这个椭圆不是标准椭圆(即主轴为
如果我们暴力列方程的话有如下几个方程:
切点在圆上;
切点在椭圆上;
该点处圆的切线与椭圆的切线相同。
按理说是可求的,可是切点未知,解方程很难……
问题出在并不知道切点(也不会求切线……),观察到精度要求很低,可以想到等分圆周,判断每个点为切点的情况。
怎么判断切点……不是切线不会求吗……
观察到如果该点为切点,形成的椭圆长轴长应该是最短的,类比一下两个圆的位置关系可以理解到这一点。
然后就有判断依据咯……等分圆周然后找一个
那天晚上A了……可是出题人认为暴力太简单加强了数据……等分圆周就T了(其实是WA?)
于是改进这个等分圆周的策略……
出题人:这个距离函数长得跟正弦函数差不多
???蛤?
证明:感性理解
???蛤?
这样的话爬山就可以了……复杂度玄学
可是模拟退火不仅比爬山慢而且精度比爬山低得多……不知道为什么…… 纪念写的第一份爬山,并写出了倒数的速度……(感谢Claris……(大雾))
UPD:退役之后想了想,还是感觉证明很麻烦。
下面说说成果吧……劳资推了两个晚自习了QAQ
先转化一下坐标系,让原点位于两焦点中点,两焦点连线位于
下面是坐标变换公式:
设平面直角坐标系
这样就可以得到一个标准椭圆了。
联立:
于是得到了一个非常复杂的一元四次方程,注意不要将
然后根据盛金公式,令这个方程有四重根就好了。
没算,留坑不补了(真的太恶心了……)
换种方法?
椭圆上一点的切线可以这样作:令
也就是说,圆心与
没什么好做法了,不如上知乎问个问题QAQ。
假题害人啊QAQ
Code
- [爬山算法] [BZOJ5041] LWD的降临
- bzoj 5041: LWD的降临
- bzoj 5041: LWD的降临
- 爬山算法
- 爬山算法
- 爬山算法
- [bzoj5042][ST表]LWD的分科岛
- 新生命的降临
- 人工智能时代的降临
- 人工智能时代的降临
- 人工智能时代的降临
- 人工智能时代的降临
- 搜索算法:爬山法
- 爬山搜索算法
- 爬山算法->模拟退火
- 通俗理解爬山算法
- python爬山算法
- POJ2420爬山算法
- C++模板
- centos开ftp账号
- PHPSTORM+sftp远程
- bzoj1084: [SCOI2005]最大子矩阵
- LeetCode4. Median of Two Sorted Arrays
- [爬山算法] [BZOJ5041] LWD的降临
- [NOIP模拟] sort
- 用JS禁止微信浏览器下滑出现黑屏
- Android 5.0以下,使用android studio 出现错误com.android.build.api.transform.TransformException:
- 1.Mybatis HelloWorld工程
- java反射技术总结
- ios-MVC VS MVVM
- 网络请求数据回来中文乱码问题解决方法
- 2017 ACM-ICPC 亚洲区(西安赛区)网络...