给出n个点,问你有没有可能存在一条直线,这n个点中存在百分号p以上点在这条直线上。

两个点确定一条直线,所以可以随机枚举两个点,然后用这条直线去判断其他的点是不是在这条直线上,如果在这个直线上的点超过%p,那么就说明找到了一种情况

  1. #include<map>
  2. #include<set>
  3. #include<ctime>
  4. #include<cmath>
  5. #include<stack>
  6. #include<queue>
  7. #include<string>
  8. #include<vector>
  9. #include<cstdio>
  10. #include<cstdlib>
  11. #include<cstring>
  12. #include<iostream>
  13. #include<algorithm>
  14. #define lowbit(x) (x & (-x))
  15. #define INOPEM freopen("in.txt", "r", stdin)
  16. #define OUTOPEN freopen("out.txt", "w", stdout)
  17.  
  18. typedef unsigned long long int ull;
  19. typedef long long int ll;
  20. const double pi = 4.0*atan(1.0);
  21. const int inf = 0x3f3f3f3f;
  22. const int maxn = 1e5+;
  23. const int maxm = ;
  24. const int mod = 1e9+;
  25. using namespace std;
  26.  
  27. int n, m;
  28. int T, tol;
  29. struct Node {
  30. ll x, y;
  31. };
  32. Node node[maxn];
  33.  
  34. int check(int i, int j, int k) {
  35. ll ans1 = (node[i].x - node[j].x) * (node[i].y - node[k].y);
  36. ll ans2 = (node[i].x - node[k].x) * (node[i].y - node[j].y);
  37. if(ans1 == ans2) return ;
  38. else return ;
  39. }
  40.  
  41. //x1-x2 x1-x3
  42. //y1-y2 y1-y3
  43.  
  44. int main() {
  45. srand(time());
  46. while(~scanf("%d%d", &n, &m)) {
  47. memset(node, , sizeof node);
  48. for(int i=; i<n; i++) scanf("%lld%lld", &node[i].x, &node[i].y);
  49. if(n <= ) {
  50. printf("possible\n");
  51. continue;
  52. }
  53. int ans = n*m;
  54. bool flag = false;
  55. for(int T=; T<=; T++) {
  56. int sum = ;
  57. int x = rand() % n;
  58. int y = rand() % n;
  59. while(x == y) y = rand() % n;
  60. for(int i=; i<n; i++) {
  61. if(i == x || i == y) continue;
  62. sum += check(x, y, i);
  63. if(sum * >= ans) {
  64. flag = true;
  65. break;
  66. }
  67. }
  68. if(flag) break;
  69. }
  70. printf("%s\n", flag ? "possible" : "impossible");
  71. }
  72. return ;
  73. }

Finding Lines UVALive - 6955(随机)的更多相关文章

  1. 随机算法 - HNU 13348 Finding Lines

    Finding Lines Problem's Link: http://acm.hnu.cn/online/?action=problem&type=show&id=13348&am ...

  2. Finding Lines

    Finding Lines 题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8& ...

  3. UVALive - 6955 Finding Lines 随机算法

    题目链接: http://acm.hust.edu.cn/vjudge/contest/126968#problem/F 题意 给你n个点,问是否有>=p/100*n个点共线(p>=20& ...

  4. UVALive 6955 Finding Lines(随机化优化)题解

    题意:问你是否有一条直线满足这条直线上的点个数与总个数之比不小于p 思路:解法太暴力了,直接随机取两个数,如果能满足条件就输出可以,否则不行.证明一下为什么可以随机化,题目给出可能有P >=20 ...

  5. Educational Codeforces Round 41 (Rated for Div. 2) D. Pair Of Lines (几何,随机)

    D. Pair Of Lines time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  6. java随机生成验证码

    package com.yuyuchen.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; im ...

  7. Gym101482 NWERC 2014(队内训练第4场)

    -----------------------前面的两场感觉质量不高,就没写题解----------------------------- A .Around the Track pro:给定内多边形 ...

  8. Gym 101482 题解

    B:Biking Duck 题意:现在有一个人要从(x1,y1)点走到(x2,y2)点, 现在走路的速度为v. 还有骑自行车的速度v2,自行车要从某个自行车站到另一个自行车站,现在我们可以视地图的边界 ...

  9. ImageUtil(验证码数据生成工具类)

    登录界面时,常常会使用到验证码图片生成,程序如下: package util; import java.awt.Color; import java.awt.Font; import java.awt ...

随机推荐

  1. vue 开发依赖安装

    安装element-ui yarn add element-ui --save 使用element-ui main.js import Vue from 'vue'; import ElementUI ...

  2. ShowDoc上手

    ShowDoc是什么 每当接手一个他人开发好的模块或者项目,看着那些没有写注释的代码,我们都无比抓狂.文档呢?!文档呢?!Show me the doc !! 程序员都很希望别人能写技术文档,而自己却 ...

  3. Windows 机器上面同时安装mysql5.6 和 mysql5.7 的方法

    1. 自己遇到的两个坑: . mysql 登录的时候 需要使用-P 来指定端口号 不然默认走 呢 . mysql 5.6 和 mysql 5.7 更改用户密码的命令不一样.. 我这边浪费了很长时间: ...

  4. java随笔4 java中接参整形转字符串

    通过+‘’来实现

  5. SpringMVC配置三大组件

    1.组件扫描器 使用组件扫描器省去在spring容器配置每个Controller类的繁琐. 使用<context:component-scan>自动扫描标记@Controller的控制器类 ...

  6. linux audit审计(8)--开启audit对系统性能的影响

    我们使用测试性能的工具,unixbench,它有一下几项测试项目: Execl Throughput 每秒钟执行 execl 系统调用的次数 Pipe Throughput 一秒钟内一个进程向一个管道 ...

  7. linux audit审计(3)--audit服务配置

    audit守护进程可以通过/etc/audit/auditd.conf文件进行配置,默认的auditd配置文件可以满足大多数环境的要求. local_events = yes write_logs = ...

  8. ABP实践学习

    一.

  9. 使用javaWeb的二大(Listener、Filter)组件实现分IP统计访问次数

    分析: 统计工作需要在所有资源之前都执行,那么就可以放到Filter中. 我们这个过滤器不打算做拦截操作!因为我们只是用来做统计 用什么东西来装载统计的数据.Map<String,Integer ...

  10. Lodop打印控件 打印透明图问题

    Lodop通过增设transcolor属性实现了“先字后章”效果,这个属性可以把某种颜色转成类似透明的效果.例如:把图章的底色白色变成透明:transcolor="#FFFFFF" ...