洛谷 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了一个点。

 1 #include<cstdio>
 2 int max(int x,int y)
 3 {
 4     return x>y?x:y;
 5 }
 6 int x[1007],y[1007];
 7 bool check(int z,int zz,int zzz)
 8 {
 9     return (x[zzz]-x[z])*(y[zzz]-y[zz])==(y[zzz]-y[z])*(x[zzz]-x[zz])?true:false;
10 }
11 int n,ans,answer=0;
12 int main()
13 {
14     scanf("%d",&n);
15     for(int i=1; i<=n; i++)
16         scanf("%d%d",&x[i],&y[i]);
17     for(int i=1; i<n; i++)
18     {
19         for(int j=i+1; j<=n; j++)
20         {
21             ans=2;
22             for(int k=1; k<=n; k++)
23             {
24                 if(k==i||k==j) continue;
25                 if(check(i,j,k)) ans++;
26             }
27             answer=max(answer,ans);
28         }
29     }
30     printf("%d",answer);
31     return 0;
32 }
33 /*
34 5
35 1 1
36 2 2
37 3 3
38 9 10
39 10 11
40
41 3
42 */

过去的代码风格

 1 #include<cstdio>
 2 int max(int x,int y) {
 3     return x>y?x:y;
 4 }
 5 int x[1007],y[1007];
 6 bool check(int z,int zz,int zzz) {
 7     return (x[zzz]-x[z])*(y[zzz]-y[zz])==(y[zzz]-y[z])*(x[zzz]-x[zz])?true:false;
 8 }
 9 int n,ans,answer=0;
10 int main() {
11     scanf("%d",&n);
12     for(int i=1; i<=n; i++)
13         scanf("%d%d",&x[i],&y[i]);
14     for(int i=1; i<n; i++) {
15         for(int j=i+1; j<=n; j++) {
16             ans=2;
17             for(int k=1; k<=n; k++) {
18                 if(k==i||k==j) continue;
19                 if(check(i,j,k)) ans++;
20             }
21             answer=max(answer,ans);
22         }
23     }
24     printf("%d",answer);
25     return 0;
26 }
27 /*
28 5
29 1 1
30 2 2
31 3 3
32 9 10
33 10 11
34
35 3
36 */

现在的代码风格

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

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

#include<cstdio>
#include<iostream>
int max(int x,int y) {return x>y?x:y;
}
int x[707],y[707];
int n,ans,answer=0;
int main() {scanf("%d",&n);for(int i=1; i<=n; i++)scanf("%d%d",&x[i],&y[i]);for(int i=1; i<n; i++) {for(int j=i+1; j<=n; j++) {ans=2;for(int k=1; 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 0;
}

依旧是现在的代码风格

一世安宁

转载于:https://www.cnblogs.com/GTBA/p/9083314.html

洛谷 P1142 轰炸相关推荐

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

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

  2. 洛谷 P1830 轰炸Ⅲ

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

  3. 洛谷——P1830 轰炸III

    P1830 轰炸III 题目背景 一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形. 题目描述 在轰炸后,有Y个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几 ...

  4. 洛谷—— P1847 轰炸II

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

  5. 洛谷-P1830 轰炸III

    题目背景 一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形. 题目描述 在轰炸后,有Y个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几轮. ...

  6. 洛谷P1830 轰炸III

    题目链接 题目背景 一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形. 题目描述 在轰炸后,有Y个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是 ...

  7. 洛谷P1847 轰炸

    题目背景 本题为轰炸数据加强版 题目描述 一个城市遭到了M次轰炸,每次都炸了一个每条边都与边界平行的矩形 在轰炸后,有N个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几 ...

  8. 洛谷P1847 轰炸II

    传送门 题目描述 一个城市遭到了 MM 次轰炸,每次都炸了一个每条边都与边界平行的矩形. 在轰炸后,有 NN 个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几轮. 输入 ...

  9. 洛谷P1830 轰炸

    https://www.luogu.com.cn/problem/P1830 代码: #include <bits/stdc++.h> using namespace std;#defin ...

最新文章

  1. 包邮送书 | 中科院博士推荐的50本高质量Python、数据分析书籍
  2. 「图像分割模型」全景分割是什么?
  3. 教程:从FLASH过渡到SILVERLIGHT.(实例+源码)
  4. webservice用soapUI测试日期格式输入
  5. oracle 更新数据更新不进去_关于微软及Oracle安全更新汇总的通知
  6. JSP技术之JavaBean
  7. 业界总结 | 如何改进双塔模型,才能更好的提升你的算法效果?
  8. 【转】用Setup Factory 7.0制作安装程序
  9. 用C语言开发一个BT下载软件 (四) ------ 代码实现-1-种子文件解析模块
  10. c#通过126邮箱自动发送 微信端实现QQ邮箱邮件提醒
  11. Scrapy spiders介绍
  12. dns污染怎么快速清除解决
  13. 虚拟机安装教程(多图)
  14. Revit API:找到轮廓族的路径
  15. BLUETECH 聚蓝滤水壶的使用方法
  16. FlinkCEP的底层理论:NFA-b Automaton原理介绍
  17. HTML/CSS中的空格处理
  18. 太原理工大学计算机专业全国排名,2020计算机专业大学排名
  19. JS实战面向对象 - 贪吃蛇
  20. echarts阶梯式折线图放大后断开连线的问题

热门文章

  1. 2022-2028年中国橡胶密封制品行业市场研究及前瞻分析报告
  2. 想要,但很难得到就随缘
  3. SSM框架整合(Spring+SpringMVC+MyBatis)
  4. pycharm设置编写的脚本页面长行实现自动换行(windows版)
  5. 第十六节,使用函数封装库tf.contrib.layers
  6. ERROR: epmd error for host 192: badarg (unknown POSIX error)
  7. TensorRT 7.2.1 开发概要(下)
  8. 微信架构 支付架构(下)
  9. 大数据调度平台Airflow(八):Airflow分布式集群搭建及测试
  10. 2021年大数据Spark(五十):Structured Streaming 案例一实时数据ETL架构