洛谷 P1142 轰炸
洛谷 P1142 轰炸
题目描述
“我该怎么办?”飞行员klux向你求助。
事实上,klux面对的是一个很简单的问题,但是他实在太菜了。
klux要想轰炸某个区域内的一些地方,它们是位于平面上的一些点,但是(显然地)klux遇到了抵抗,所以klux只能飞一次,而且由于飞机比较破,一点起飞就只能沿直线飞行,无法转弯。现在他想一次轰炸最多的地方。
输入输出格式
输入格式:
第一行为n
输入数据由n对整数组成(1<=n<=700),每对整数表示一个点的坐标。没有一个点会出现两次。
输出格式:
一个整数,表示一条直线能覆盖的最多的点数。
输入输出样例
5 1 1 2 2 3 3 9 10 10 11
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 轰炸相关推荐
- 洛谷 - P1142 - 轰炸 - 计算几何
https://www.luogu.org/problemnew/show/P1142 枚举一个基点,枚举另一个点找出斜率,约分后存入.记得要加上那个点本身. __gcd(x,y),返回值符号与y的符 ...
- 洛谷 P1830 轰炸Ⅲ
P1830 轰炸Ⅲ 题目提供者wanglichao1121 标签模拟矩阵洛谷原创 难度普及/提高- 题目背景 一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形. 题目描述 ...
- 洛谷——P1830 轰炸III
P1830 轰炸III 题目背景 一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形. 题目描述 在轰炸后,有Y个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几 ...
- 洛谷—— P1847 轰炸II
https://www.luogu.org/problemnew/show/1847 题目背景 本题为轰炸数据加强版 题目描述 一个城市遭到了M次轰炸,每次都炸了一个每条边都与边界平行的矩形 在轰炸后 ...
- 洛谷-P1830 轰炸III
题目背景 一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形. 题目描述 在轰炸后,有Y个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几轮. ...
- 洛谷P1830 轰炸III
题目链接 题目背景 一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形. 题目描述 在轰炸后,有Y个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是 ...
- 洛谷P1847 轰炸
题目背景 本题为轰炸数据加强版 题目描述 一个城市遭到了M次轰炸,每次都炸了一个每条边都与边界平行的矩形 在轰炸后,有N个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几 ...
- 洛谷P1847 轰炸II
传送门 题目描述 一个城市遭到了 MM 次轰炸,每次都炸了一个每条边都与边界平行的矩形. 在轰炸后,有 NN 个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几轮. 输入 ...
- 洛谷P1830 轰炸
https://www.luogu.com.cn/problem/P1830 代码: #include <bits/stdc++.h> using namespace std;#defin ...
最新文章
- 包邮送书 | 中科院博士推荐的50本高质量Python、数据分析书籍
- 「图像分割模型」全景分割是什么?
- 教程:从FLASH过渡到SILVERLIGHT.(实例+源码)
- webservice用soapUI测试日期格式输入
- oracle 更新数据更新不进去_关于微软及Oracle安全更新汇总的通知
- JSP技术之JavaBean
- 业界总结 | 如何改进双塔模型,才能更好的提升你的算法效果?
- 【转】用Setup Factory 7.0制作安装程序
- 用C语言开发一个BT下载软件 (四) ------ 代码实现-1-种子文件解析模块
- c#通过126邮箱自动发送 微信端实现QQ邮箱邮件提醒
- Scrapy spiders介绍
- dns污染怎么快速清除解决
- 虚拟机安装教程(多图)
- Revit API:找到轮廓族的路径
- BLUETECH 聚蓝滤水壶的使用方法
- FlinkCEP的底层理论:NFA-b Automaton原理介绍
- HTML/CSS中的空格处理
- 太原理工大学计算机专业全国排名,2020计算机专业大学排名
- JS实战面向对象 - 贪吃蛇
- echarts阶梯式折线图放大后断开连线的问题
热门文章
- 2022-2028年中国橡胶密封制品行业市场研究及前瞻分析报告
- 想要,但很难得到就随缘
- SSM框架整合(Spring+SpringMVC+MyBatis)
- pycharm设置编写的脚本页面长行实现自动换行(windows版)
- 第十六节,使用函数封装库tf.contrib.layers
- ERROR: epmd error for host 192: badarg (unknown POSIX error)
- TensorRT 7.2.1 开发概要(下)
- 微信架构 支付架构(下)
- 大数据调度平台Airflow(八):Airflow分布式集群搭建及测试
- 2021年大数据Spark(五十):Structured Streaming 案例一实时数据ETL架构