POJ 1118,2606,2780,3512

    四题题意都是问一个平面上很多离散点,问一条直线最多能串起几条,作为糖葫芦控毫无压力呀喵哈哈~买一送三的题当然做了OTZ…区别貌似就是2780说明没有重点;2606坐标有负数,没重点;3512是升级版数据量大一点,input格式不一样;OTZ,用同一段代码交过了,呐~莫名其妙的心虚的感觉呀喵哈哈~

    做法也不难想到,枚举每两个点之间连线段的斜率,对斜率排序,数数对于同一个点斜率相等的线段最多的个数,就可以了。需要处理斜率垂直于x轴的直线,我还处理了重(chong,二声)点,可是貌似数据里没有重点OTZ…

    代码如下:

#include
#include
#include
#include
#define LL __int64
#define eps 1e-8
#define inf 100000000
using namespace std;

LL ans,n,tmp,mm,ch[1005],x[1005],y[1005];
double now,na[1005][1005];
int main()
{
 	
	while(EOF!=(scanf("%I64d",&n)) && n)
	{
        memset(ch,0,sizeof(ch));
		memset(na,0,sizeof(na));
		for(LL i=0;i

   

    1.学习了sscanf的用法,从字符串中读入内容,可以是数或者子串等等。

for(n=0;;n++){
  	gets(s);
  	if(s[0]=='-'&&s[1]=='-') break;
  	sscanf(s,"%d%d",&x[n],&y[n]);
}
    2.调戏浮点数的技巧,判等,同一正负0的必不可少的eps,具体精度根据题目要求调整吧~


    很久没写代码了OTZ,很多脑残的地方处理不清晰,练起来吧~


另,昨天写的太滥了XDOJ交不过OTZ,又改了一会儿上三角矩阵版本OTZ,见下一篇XDOJ1008

你可能感兴趣的:(学习笔记,计算几何)