想来想去还是把这个题写下来了。自己在补题遇到了许多问题。

  给出n(n<=1e5)个点,求是否存在多于p(p>=20)×n/100的点在一条直线上...

  时限20s,多组数据,暴力至少n^2。考虑p>=20.所以我们可以随机点 一次随机到在存在的直线上的点的概率至少是1/5。

那么随机两个点确定一条直线,成功率为1/25,失败率为24/25;我们随机个x次 失败的概率为(24/25)^x。

x选的越大,成功可能就越高。我们随机个200次好了...其实内心觉得20次都多...

  遇到的问题:时间种子多次清空...导致随机情况相同....没理解随机的实现..

极限情况点数<=2.....很坑啊...

 #include <iostream>
#include <algorithm>
#include <stdio.h>
#include <time.h>
#include <math.h>
using namespace std;
typedef long long ll;
const int N = 1e5+;
ll x[N],y[N];
bool judge(int n,int pp)
{
int p=rand()%n;
int q=rand()%n;
if(p==q) return false;
ll px = x[p]-x[q];
ll py = y[p]-y[q];
//px/dx = py/dy;
//px*dy = py*dx
//cout<<"PQ"<<p<<q<<cnt<<endl;
//cout<<px<<" "<<py<<endl;
int ans = ;
for(int i=;i<n;i++)
{
ll dx = (x[i]-x[q]);
ll dy = (y[i]-y[q]);
//cout<<dx<<" "<<dy<<endl;
if(i==p||i==q) continue;
if(px*dy==py*dx) ans++;
}
// cout<<ans<<endl;
return ans*>=pp*n;
}
int main()
{
srand(time(NULL));
int n,p;
while(scanf("%d%d",&n,&p)!=EOF)
{ for(int i=;i<n;i++)
{
scanf("%lld%lld",x+i,y+i);
}
bool mk = false;
for(int i=;i<;i++) if(judge(n,p)) mk = true;
if(n<=) mk = true;
if(mk) puts("possible");
else puts("impossible");
}
return ;
}

神奇的随机化~

Wannafly Union Goodbye 2016-A//初识随机化~的更多相关文章

  1. Wannafly Union Goodbye 2016

    A 题意:平面上有n个点(n<=100000),给你一个p(20<=p<=100) 判断是否存在一条直线至少过[np/100](向上取整)个点,时限20s,多组数据 分析:概率算法 ...

  2. Goodbye 2016 总结与展望

    今天居然是2016年的最后一天了,写点什么回忆吧. 2016开始的时候我刚拿到普及组一等奖,还只是压线,水平很差.学校并不知道这有多差,于是狠狠宣传这所谓的"光荣事迹".那段时间我 ...

  3. 【Mutual Training for Wannafly Union #1 】

    A.Phillip and Trains CodeForces 586D 题意:过隧道,每次人可以先向前一格,然后向上或向下或不动,然后车都向左2格.问能否到达隧道终点. 题解:dp,一开始s所在列如 ...

  4. Mutual Training for Wannafly Union #1解题报告

    ---恢复内容开始--- q神等人组织的vjudge上的多校训练,题目基本上都来自于CF,#1是上周进行的,参加后感觉收获很多,因为上周准备期中比较忙,解题报告现在补上. 比赛地址(兼题目地址) A题 ...

  5. Wannafly Union#1

    题目链接:http://vjudge.net/contest/142053#overview A.题意:有一个3*n的隧道,人和车轮流走,人先向右走一步,然后选在是在原地不动还是上下移动一格,之后车开 ...

  6. Mutual Training for Wannafly Union #6 E - Summer Trip(并查集)

    题目链接:http://www.spoj.com/problems/IAPCR2F/en/ 题目大意: 给m个数字代表的大小,之后n组数据,两两关联,关联后的所有数字为一组,从小到大输出组数以及对应的 ...

  7. Mutual Training for Wannafly Union #2

    codeforces 298A. Snow Footprints 分类讨论三种情况: ①..RRRRRR…  ②..LLLLLLL… ③..RRRLLLL.. //AC by lwq: #includ ...

  8. Mutual Training for Wannafly Union #8 D - Mr.BG Hates Palindrome 取余

    Mr.BG is very busy person. So you have been given enough time (1000 milliseconds) to help him. Mr. B ...

  9. Mutual Training for Wannafly Union #9

    A(SPOJ NPC2016A) 题意:给一个正方形和内部一个点,要求从这个点向四边反射形成的路线的长度 分析:不断做对称,最后等价于求两个点之间的距离 B(CF480E) 题意:求01矩阵内由0组成 ...

随机推荐

  1. VMWare虚拟机Bridged类型网卡ping不通的原因和解决办法

    要使VM与局域网内的其他机器一个子网,VM的网卡设置使用桥接.本来一直正常好好的, 突然有一天,遇到VMWare虚拟机Bridged类型网卡ping不通,设置,重启,查看VM网络设置,重装VMWare ...

  2. hdu 3037 费马小定理+逆元除法取模+Lucas定理

    组合数学推推推最后,推得要求C(n+m,m)%p 其中n,m小于10^9,p小于1^5 用Lucas定理求(Lucas定理求nm较大时的组合数) 因为p数据较小可以直接阶乘打表求逆元 求逆元时,由费马 ...

  3. 纯CSS,多个半圆以中心点旋转

    效果图: html代码: <div style=" background:#000; position: relative; width:300px; height:300px;&qu ...

  4. hdu1698(线段树区间替换模板)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1698 题意: 第一行输入 t 表 t 组测试数据, 对于每组测试数据, 第一行输入一个 n , 表示 ...

  5. 51nod1186(Miller-Rabin)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1186 题意:中文题目诶- 思路:miller_rabin模板 ...

  6. Spring.Net框架学习错误集锦1

    最近IoC框架非常火热,所以就学习了非常流行的IOC框架之一spring.NET,遇到如下问题: Error creating context 'spring.root': Could not loa ...

  7. jmeter的Include Controller控件和Test Fragment控件和Module Controller控件

    1.Include Controller控件——给当前jmeter脚本引入外部片段的jmeter脚本(Test Fragment片段脚本) Include Controller控件——添加外部jmet ...

  8. Django-Rest-Framework的视图和路由

    Django-Rest-Framework的视图和路由  restful framework  Django-Rest-Framework的视图 APIView django中写CBV的时候继承的是V ...

  9. ICPC-无限路之城(数学+思维)

    链接:https://ac.nowcoder.com/acm/contest/321/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言2621 ...

  10. php操作redis和memcache过期时间

    php-redis 设置过期时间setTimeOut 命令行expireredis过期时间redis术语里面,把设置了expire time的key 叫做:volatile keys. 意思就是不稳定 ...