CC MSTONES(Milestones-概率)

Milestones

Problem code: MSTONES

All submissions for this problem are available.

Once upon a time, there was a Kingdom of Seven Roads. Besides a fancy name, it actually had exactly 7 straight roads. Its residents wanted to keep track of the distances they traveled so they placed milestones along some roads. The roads slowly deteriorated
and disappeared but some milestones remained. Archeologists documented remaining milestones and want to reconstruct the kingdom, starting with its main road. Help them by finding the maximum number of collinear milestones.

Input

The first line contains a single integer T, the number of test cases. The first line of each testcase contains the number of documented milestones N. Following lines give the coordinates (Xi, Yi) of those milestones. Coordinates of all
milestones will be different.

Output

For each test case, output the maximum number of collinear milestones.

Constraints

  • T <= 30
  • 1 <= N <= 10 000
  • -15 000 <= Xi, Yi <= 15 000

Example

Input:
2

5
0 0
1 0
2 0
1 1
3 1

2
1 1
10 10

Output:
3
2

Author: thocevar
Tester: subra
Editorial http://discuss.codechef.com/problems/MSTONES
Tags feb11hardthocevar
Date Added: 12-12-2010
Time Limit: 5 sec
Source Limit: 50000 Bytes
Languages: ADA, ASM, BASH, BF, C, C99 strict, CAML, CLOJ, CLPS, CPP 4.3.2, CPP 4.8.1, CPP11, CS2, D, ERL, FORT, FS, GO, HASK, ICK, ICON, JAR, JAVA, JS, LISP clisp, LISP sbcl, LUA, NEM, NICE, NODEJS, PAS fpc, PAS gpc, PERL, PERL6, PHP, PIKE, PRLG, PYTH, PYTH 3.1.2, RUBY,
SCALA, SCM guile, SCM qobi, ST, TCL, TEXT, WSPC


题目大意:给若干点,它们可被7条直线覆盖,求在同一直线上的点的最大个数

解法:由题意可知这条直线最少覆盖n/7个点,否则那7条直线不可能覆盖点集。

如果我们随便取2个点,它们连成1条直线,则它是答案的概率=(1/7)^2=1/49

随便取K次,都不是答案的概率=(48/49)^K K=200时,数值很小,基本可以断定。

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<functional>
#include<iostream>
#include<cmath>
#include<cctype>
#include<ctime>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define RepD(i,n) for(int i=n;i>=0;i--)
#define Forp(x) for(int p=pre[x];p;p=next[p])
#define Forpiter(x) for(int &p=iter[x];p;p=next[p])
#define Lson (x<<1)
#define Rson ((x<<1)+1)
#define MEM(a) memset(a,0,sizeof(a));
#define MEMI(a) memset(a,127,sizeof(a));
#define MEMi(a) memset(a,128,sizeof(a));
#define INF (2139062143)
#define F (100000007)
#define MAXT (30+10)
#define MAXN (10000+10)
long long mul(long long a,long long b){return (a*b)%F;}
long long add(long long a,long long b){return (a+b)%F;}
long long sub(long long a,long long b){return (a-b+(a-b)/F*F+F)%F;}
typedef long long ll;
int T,n;
int x[MAXN],y[MAXN];
bool is_out(int i,int j,int k)
{
	int X1=x[i]-x[j],Y1=y[i]-y[j];
	int X2=x[i]-x[k],Y2=y[i]-y[k];
	return X1*Y2-X2*Y1;
}
int rand(int n)
{
	return rand()%n+1;
}
int main()
{
//	freopen("MileStones.in","r",stdin);
//	freopen("MileStones.out","w",stdout);
	scanf("%d",&T);
	For(t,T)
	{
		scanf("%d",&n);
		For(i,n) scanf("%d%d",&x[i],&y[i]);
		int K=200,ans=0;
		if (n<=2) {printf("%d\n",n);continue;}

		while(K--)
		{
			int i=rand(n),j=rand(n),tot=0;
			while (i==j) i=rand(n),j=rand(n);
			For(k,n)
				if ((k^i)&&(k^j)) tot+=is_out(i,j,k);
			ans=max(ans,n-tot);

		}
		printf("%d\n",ans);

	}

	return 0;
}
时间: 2024-08-13 01:42:25

CC MSTONES(Milestones-概率)的相关文章

邓紫棋开唱惨被轰:滚出娱乐圈

http://www.cnpoc.cn/HZcommonShowFirst.asp?CID=122&CNAME=%B3%BB%D6%DD%CB%D5%CF%C9%C7%F8%D5%D2%D1%A7%C9%FA%C3%C3%C9%CF%C3%C5%B0%B4%C4%A6%B7%FE%CE%F1%A8%801858885v7572%a1%f8k5u21z http://www.cnpoc.cn/HZcommonShowFirst.asp?CID=122&CNAME=%B3%BB%D6%DD%C

览唾寐了酒rkv2v8h37gg8p6qys1d0

该人士表示,整体思路"就是一个放开一个监管,围绕市场化进行改革,同时防止国有资产流失". "国有资产流失是一顶非常可怕的帽子,很多人怕犯错误,不敢推进员工激励.混合所有制等改革." 该人士表示,整体思路"就是一个放开一个监管,围绕市场化进行改革,同时防止国有资产流失". 两年前,财政部为"什么人能够持股"一事,进行了多次讨论.财政部相关政策制定部门人士认为,目前最纠结的问题是:"哪些人可以持股?管理层.技术骨干还是全

《大唐传奇》今日“天镜”内测引爆激战狂潮

%C4%C4%C0%EF%D3%D0%C8%FD%C5%E3%D0%A1%BD%E3%B0%B4%C4%A6%B7%FE%CE%F11550%D2%BB1111%D2%BB580%A3%D6%C9%CF%C3%C5%A3%AD%C8%AB%CC%D7%A3%D6%A8%EF%A8%F5%A8%F8%A8%EF2014-11-29http://tuan.baidu.com/hot/query/45/%B5%A4%B6%AB %C4%C4%C0%EF%D3%D0%C8%FD%C5%E3%D0%A1%

商敲惺型巫sv5wbi48csmext

"十八届三中全会提出,在混合所有制企业可以搞员工持股,但这些事情比较谨慎,既有经验又有教训."该人士表示.随着国企改革的深入,2016年将有更多的国企改革亮点值得期待. 不久前,国务院国有企业改革领导小组办公室针对社会关注的热点.难点问题提出了将在2016年推进"十项改革试点".具体包括:一是落实董事会职权的试点:二是市场化选聘经营管理者的试点:三是推行职业经理人制度的试点:四是企业薪酬分配差异化改革的试点:五是国有资本投资运营公司的试点:六是中央企业兼并重组的试点

热圩死滔难wq42ceruh63ghfkk9ou

员工持股启动随着国企改革的深入,2016年将有更多的国企改革亮点值得期待. 前述国资委人士认为:"一般的企业不适合员工持股,一个万人大厂,所有员工都持股,没有意义.容易造成福利性的持股.实际上,改革30年,已经证明,全员持股不是一个好办法,要分企业.分行业,根据它的特点进行持股." 在不久前落幕的2016年全国两会上,国务院国有企业改革领导小组组长马凯对外界表示:"去年是国企改革方案制定的一年,今年是扎扎实实的落实年." <国有科技型企业股权和分红激励暂行办法

颇畚粕岩霖a8nys66u6515ut2erj

"十八届三中全会提出,在混合所有制企业可以搞员工持股,但这些事情比较谨慎,既有经验又有教训."该人士表示. 据报道,国务院国资委副秘书长彭华岗日前在深入推进国企国资改革研讨会上表示,今年将围绕重点难点问题开展"十项改革试点",通过试点取得突破.多点开花.彭华岗透露,过去一年国企改革取得重大突破和进展,17家省级国资委和40户中央企业提出方案.公司制股份制改革成效显著,全国国有企业改制面已达80%:法人治理结构不断完善,2015年中央企业建设规范董事会的企业增加11户

poj 2096 Collecting Bugs (概率dp)

题意:有s个系统,n种bug,一个程序员每天可以发现一个bug,求发现存在s个系统,n种bug的天数的期望 思路:定义dp[i][j]是已经发现i种bug,j个系统的期望 dp[i+1][j+1] 表示在一个新的系统中发现新bug 它的概率为 (n-i)/n*(s-j)/s dp[i+1][j]     表示在一个已经发现过的系统中发现了一种新的bug 概率为 (n-i)/n*j/s dp[i][j+1]     表示在一个新系统中发现一种已经发现过的bug 概率为 i/n*(s-j)/s dp

uvalive 7331 Hovering Hornet 半平面交+概率期望

题意:一个骰子在一个人正方形内,蜜蜂在任意一个位置可以出现,问看到点数的期望. 思路:半平面交+概率期望 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<cstdlib> 6 #include<string> 7 #include<cmath> 8 #include<vector&

ZOJ 3329 【概率DP】

题意: 给你三个均匀k面筛子. 分别有k1 k2 k3个面,每个面朝上的概率是相等的. 如果第一个筛子出现a第二个筛子出现b第三个筛子出现c那么置零. 否则在当前和加上三个点数之和. 求当前和大于n需要的步数的期望. 思路: 一开始状态转移搞错了,手推公式交了WA,后来想了想状态转移的过程发现每个状态都跟0状态有关系,但是dp[0]不确定,但是幸运的是这是一个线性变换,所以状态转移的时候记录一下dp[0]的系数,最后移项输出就好了. dp[i]=dp[i+x]*(k1*k2*k3);(x=i+j