洛谷 P1142 轰炸

题目描述

“我该怎么办?”飞行员klux向你求助。

事实上,klux面对的是一个很简单的问题,但是他实在太菜了。

klux要想轰炸某个区域内的一些地方,它们是位于平面上的一些点,但是(显然地)klux遇到了抵抗,所以klux只能飞一次,而且由于飞机比较破,一点起飞就只能沿直线飞行,无法转弯。现在他想一次轰炸最多的地方。

输入输出格式

输入格式:

第一行为n

输入数据由n对整数组成(1<=n<=700),每对整数表示一个点的坐标。没有一个点会出现两次。

输出格式:

一个整数,表示一条直线能覆盖的最多的点数。

输入输出样例

输入样例#1: 

5
1 1
2 2
3 3
9 10
10 11
输出样例#1: 

3

说明

本题翻译并改编自uva270,数据及解答由uva提供。

题解:

主要就是暴力枚举和判断两点是否在同一条直线上啊;

找到公式就好了。

(x[zzz]-x[z])*(y[zzz]-y[zz])==(y[zzz]-y[z])*(x[zzz]-x[zz])

90分,TLE了一个点。

 #include<cstdio>
int max(int x,int y)
{
return x>y?x:y;
}
int x[],y[];
bool check(int z,int zz,int zzz)
{
return (x[zzz]-x[z])*(y[zzz]-y[zz])==(y[zzz]-y[z])*(x[zzz]-x[zz])?true:false;
}
int n,ans,answer=;
int main()
{
scanf("%d",&n);
for(int i=; i<=n; i++)
scanf("%d%d",&x[i],&y[i]);
for(int i=; i<n; i++)
{
for(int j=i+; j<=n; j++)
{
ans=;
for(int k=; k<=n; k++)
{
if(k==i||k==j) continue;
if(check(i,j,k)) ans++;
}
answer=max(answer,ans);
}
}
printf("%d",answer);
return ;
}
/*
5
1 1
2 2
3 3
9 10
10 11 3
*/

过去的代码风格

 #include<cstdio>
int max(int x,int y) {
return x>y?x:y;
}
int x[],y[];
bool check(int z,int zz,int zzz) {
return (x[zzz]-x[z])*(y[zzz]-y[zz])==(y[zzz]-y[z])*(x[zzz]-x[zz])?true:false;
}
int n,ans,answer=;
int main() {
scanf("%d",&n);
for(int i=; i<=n; i++)
scanf("%d%d",&x[i],&y[i]);
for(int i=; i<n; i++) {
for(int j=i+; j<=n; j++) {
ans=;
for(int k=; k<=n; k++) {
if(k==i||k==j) continue;
if(check(i,j,k)) ans++;
}
answer=max(answer,ans);
}
}
printf("%d",answer);
return ;
}
/*
5
1 1
2 2
3 3
9 10
10 11 3
*/

现在的代码风格

然后,不用函数,并且输出改成cout,就A了,,,

学长好像讲过,cout输出数字比printf快

#include<cstdio>
#include<iostream>
int max(int x,int y) {
return x>y?x:y;
}
int x[],y[];
int n,ans,answer=;
int main() {
scanf("%d",&n);
for(int i=; i<=n; i++)
scanf("%d%d",&x[i],&y[i]);
for(int i=; i<n; i++) {
for(int j=i+; j<=n; j++) {
ans=;
for(int k=; k<=n; k++) {
if(k==i||k==j) continue;
if((x[k]-x[i])*(y[k]-y[j])==(y[k]-y[i])*(x[k]-x[j])) ans++;
}
answer=max(answer,ans);
}
}
std::cout<<answer;
return ;
}

依旧是现在的代码风格

一世安宁

洛谷 P1142 轰炸的更多相关文章

  1. 洛谷 - P1142 - 轰炸 - 计算几何

    https://www.luogu.org/problemnew/show/P1142 枚举一个基点,枚举另一个点找出斜率,约分后存入.记得要加上那个点本身. __gcd(x,y),返回值符号与y的符 ...

  2. 洛谷 P1830 轰炸Ⅲ

    P1830 轰炸Ⅲ 题目提供者wanglichao1121 标签模拟矩阵洛谷原创 难度普及/提高- 题目背景 一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形. 题目描述 ...

  3. 洛谷—— P1847 轰炸II

    https://www.luogu.org/problemnew/show/1847 题目背景 本题为轰炸数据加强版 题目描述 一个城市遭到了M次轰炸,每次都炸了一个每条边都与边界平行的矩形 在轰炸后 ...

  4. 洛谷【P1142】轰炸

    我对状态空间的理解:https://www.cnblogs.com/AKMer/p/9622590.html 题目传送门:https://www.luogu.org/problemnew/show/P ...

  5. 洛谷 P1656 炸铁路

    P1656 炸铁路 题目提供者kkksc03 标签图论搜索/枚举洛谷原创 难度普及/提高- 题目描述 因为某国被某红色政权残酷的高压暴力统治.美国派出将军uim,对该国进行战略性措施,以解救涂炭的生灵 ...

  6. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  7. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  8. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  9. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

随机推荐

  1. microsoft azure 映像发布前的检查清单

    在发布映像提交到 Azure 镜像市场之前,请确保以下检查单全部通过: 产品映像要求 产品映像必须满足如下要求: 适用于生产环境,Azure 镜像市场原则上不接受测试版本产品上架 映像为自包含映像,所 ...

  2. 关于jquery的serialize方法转换空格为+号的解决方法

    jquery的 serialize()方法,可以对表单项进行序列化,这本来是很方便的一个功能:但是实际使用中去发现了如下问题:例如:< textarea name="content&q ...

  3. LocationCoder 地图经纬度解析

    LocationCoder 地图经纬度解析 其实,在地图里面将地图解析成有意义的地址,或者把地址转换成有意义的经纬度都是很容易的事情,只是我将其封装了支持KVO,通知中心,block取结果,代理取结果 ...

  4. Python下操作sqlite3

    import sqlite3 dbpath = 'C:\\Django\\workplace\\sf\\d1.sqlite3' conn = sqlite3.connect(dbpath) cu = ...

  5. 利用Django实现RESTful API(一)

    RESTful API现在很流行,这里是它的介绍 理解RESTful架构和 RESTful API设计指南.按照Django的常规方法当然也可以实现REST,但有一种更快捷.强大的方法,那就是 Dja ...

  6. Python(二)列表的增删改查

    一,列表的增删改查 列表中增加元素: 1,从列表的末尾增加一个元素:append("") 2,从列表中插入一个元素:insert(下标位置,插入的元素) 合并列表: 1,name. ...

  7. 汽车学习---汽车知识大全【all】

    汽车驱动/发动机/大灯 侧方位停车和倒车入库技巧 手动挡车型 换档8大技巧 常见的掉头情况注意事项 最全的左转,右转,待转,掉头方法 开车技巧大汇总,尤其适合新手司机 汽车常识扫盲,不做“汽车小白”! ...

  8. jenkins 安卓打包生成二维码下载

    先来张图看看吧 构思 jenkins gradle 打包apk文件,python myqr 模块生成二维码 放入nginx 访问图片的路径,apk安装包放在 nginx 下载目录. 环境 centos ...

  9. Spring+微信小程序 卡券打通

    近期公司项目需要使用到微信卡券模块,主要做的是在小程序打通微信卡券,实现小程序领取卡券的功能效果. 简单说下涉及的东西: Springboot—使用springboot做后端接口,非常便捷 并且根本是 ...

  10. 18年10月30日 NOIP模拟赛

    T1 jkl 题解 显然每次都取a[i]的最大值/最小值,并更新a[i]即可 用数据结构维护这一操作..得分看常数 事实上用v[i]记录权值为i的个数,然后for乱搞就可以了... 其它乱搞做法能获得 ...