emmm.......随机化。

  好吧,我们不熟。

  考虑随机选取两组数据高斯消元消除结果后带入检验,能有超过1/2正确就输出。

  其实方程就四个,手动解都没问题。

  只是要注意看sin与cos的关系来确定角象限,被这个卡掉了,挑了好久。

  还要注意在合适的情况下\(eps\)越大越好。

Code
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. namespace STD
  4. {
  5. #define rr register
  6. #define scanf ybbb=scanf
  7. #define x1 a[id1].X1
  8. #define x2 a[id2].X1
  9. #define y1 a[id1].Y1
  10. #define y2 a[id2].Y1
  11. #define x1_ a[id1].X2
  12. #define x2_ a[id2].X2
  13. #define y1_ a[id1].Y2
  14. #define y2_ a[id2].Y2
  15. typedef long long ll;
  16. const int N=1e5+5;
  17. const double e=1e-4;
  18. int n,ybbb ;
  19. struct line{double X1,X2,Y1,Y2;} a[N];
  20. int read()
  21. {
  22. rr int x_read=0,y_read=1;
  23. rr char c_read=getchar();
  24. while(c_read<'0'||c_read>'9')
  25. {
  26. if(c_read=='-') y_read=-1;
  27. c_read=getchar();
  28. }
  29. while(c_read<='9'&&c_read>='0')
  30. {
  31. x_read=(x_read<<3)+(x_read<<1)+(c_read^48);
  32. c_read=getchar();
  33. }
  34. return x_read*y_read;
  35. }
  36. bool check(double cos,double sin,double dx,double dy)
  37. {
  38. int cnt=0;
  39. for(rr int i=1;i<=n;i++)
  40. {
  41. double x_=cos*a[i].X1-sin*a[i].Y1+dx;
  42. double y_=cos*a[i].Y1+sin*a[i].X1+dy;
  43. if(fabs(x_-a[i].X2)<=e&&fabs(y_-a[i].Y2)<=e)
  44. cnt++;
  45. }
  46. return cnt>=((n+1)>>1)&&cnt<=n;
  47. }
  48. };
  49. using namespace STD;
  50. int main()
  51. {
  52. n=read();
  53. for(rr int i=1;i<=n;i++)
  54. scanf("%lf%lf%lf%lf",&a[i].X1,&a[i].Y1,&a[i].X2,&a[i].Y2);
  55. double x,b,c,d,scale,cos,sin;
  56. srand(time(0));
  57. for(rr int i=1;i<=500;i++)
  58. {
  59. int id1=rand()%n+1;
  60. int id2=rand()%n+1;
  61. while(id1==id2) id2=(id2-rand()%n+n)%n+1;
  62. x=x1_-x2_-(y1_-y2_)*(y2-y1)/(x1-x2);
  63. x=x/(x1-x2+(y1-y2)*(y1-y2)/(x1-x2));
  64. b=((y1_-y2_)-(x*(y1-y2)))/(x1-x2);
  65. c=(x1_-x*x1+b*y1);d=(y1_-b*x1-x*y1);
  66. if(!check(x,b,c,d))continue;
  67. scale=sqrt(x*x+b*b);
  68. cos=x/scale,sin=b/scale;
  69. break;
  70. }
  71. printf("%.7lf\n%.7lf\n%.7lf %.7lf\n",sin>0?acos(cos):-acos(cos),scale,c,d);
  72. }

Walker的更多相关文章

  1. (转)Dependency Walker使用说明

    在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库.现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧! 初窥门径:Windows的基石 随便打开一个系统目录, ...

  2. DLL详解及Denpendcy Walker的使用

    下面的文章被N次转载,为了尊重原作,\(^o^)/~,贴出最早发布这篇文章的地址及作者.   动态链接库 Windows的活动大陆 2006-07-26 09:21  作者:狂ρκ来源:电脑爱好者 在 ...

  3. Dependency Walker使用说明

    Dependency Walker使用说明 标签: dllexewindowsvbqq工具 2010-03-29 11:10 25175人阅读 评论(22) 收藏 举报  分类: 基本常识(45)  ...

  4. Dependency Walker的替代品Dependencies

    在c++时代, Dependency Walker基本上是大部分程序员必备的工具之一,很可惜的是从2006起就不更新了.而且只支持vc的名字undemangle, https://github.com ...

  5. Dependency Walker使用说明 转载

    转载地址:http://blog.csdn.net/swort_177/article/details/5426848?reload 在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字 ...

  6. Dependency Walker使用说明[转]

    在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库.现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧! 初窥门径:Windows的基石 随便打开一个系统目录, ...

  7. 【原创】Dependency Walker

    https://zh.wikipedia.org/wiki/Dependency_Walker For situations where the system says it can’t find s ...

  8. 关于DLL调试的两个工具(dependency walker和dumpbin.exe)

    Dependency Walker工具: 该工具用来查看dll依赖库和依赖库内的函数. 左上角:模块依赖树,表示该dll所依赖的其它dll文件 右上角:导入函数,即与当前根模块有关系的函数(即根模块或 ...

  9. 【Visual Studio - Dependency Walker】查找程序依赖的动态链接库文件(转)

    原文转自 http://163n.blog.163.com/blog/static/5603555220113151113287/ 有时我们需要知道一个程序依赖哪些动态链接库(DLL)文件.实际上,有 ...

  10. Windows下程序打包发布时的小技巧(使用Dependency Walker侦测不理想,改用VS自带的dumpbin则万无一失,还可查看dll导出的函数)

    Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去.这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要.很久以前写过一篇关于Qt程序安装包制作的博客,里 ...

随机推荐

  1. Springboot+Dubbo使用Zipkin进行接口调用链路追踪

    Zipkin介绍: Zipkin是一个分布式链路跟踪系统,可以采集时序数据来协助定位延迟等相关问题.数据可以存储在cassandra,MySQL,ES,mem中.分布式链路跟踪是个老话题,国内也有类似 ...

  2. 《笨方法学python》随笔

    字符串 字符串可以包含格式化字符%s,只要将格式化的变量放到字符串中,再紧跟着一个百分号 %(percent), 再紧跟着变量名即可.唯一要注意的地方是, 如果你想要在字符串中通过格式化字符放入多个变 ...

  3. python算法(2)兔子产子(斐波那切数列)

    兔子产子 1.问题描述 有一对兔子,从出生后的第3个月起每个月都生一对兔子.小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总对数为多少? 2.问题分析 兔子产子 ...

  4. vue日记②之兼容各种情况的可跳转链接

    兼容各种情况的可跳转链接 需求 因为聊天气泡颜色原因,发送出去的链接通常模糊不清,而且不能直接跳转,所以我打算已a链接的显示直接抓取所有的网页链接,同时还要兼容富文本框的直接输入图片 这是运行效果 实 ...

  5. [开源]C++实现控制台随机迷宫

    我全程使用TCHAR系列函数,亲测可以不改动代码兼容Unicode/ANSI开发环境,功能正常.大概有100行代码是来自网络的,我也做了改动,侵权请联系删除.本文作者szx0427,只发布于CSDN与 ...

  6. thunderbird发送纯文本邮件

    向邮件列表中发邮件时,要求邮件格式必须是纯文本格式的,在thunderbird中,邮件格式(plain text或者html格式)在[工具->账户设置->[账户名称]->通讯录]下的 ...

  7. DrJava试用笔记

    安装方便:只要配好JAVA_HOME,用java -jar drjava-stable-20120818-r5686.jar即可启动,算是绿色软件: 特色功能:交互式命令行,可以在调试程序时改变变量值 ...

  8. Git-04-本地仓库撤销修改

    编辑修改了文件,但是还没有git add之前 直接用 git checkout -- filename 这个命令就可以了 已经 git add 了,但是没有 git commit 之前 1 模拟git ...

  9. WPF - 简单的UI框架 - 仪表盘

    源码链接:https://github.com/DuelWithSelf/WPFEffects 参考:https://www.cnblogs.com/duel/p/duel_clock.html 更新 ...

  10. vue中v-show和v-if在显示和隐藏元素上的区别

    v-show将元素隐藏是在dom节点上加style='display:none' v-if是直接将元素完全去掉 拿v-show示例,(v-if 也是一样,把下面的代码中v-show替换成v-if即可运 ...