首页 > 其他分享 >蓝桥杯 枚举2 27题 直线

蓝桥杯 枚举2 27题 直线

时间:2023-01-26 20:55:52浏览次数:46  
标签:直线 cnt 27 int 蓝桥 ++ 枚举 col row

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上, 那么这些点中任意两点确定的直线是同一条。

给定平面上 2 × 3 个整点(x,y)∣0≤x<2,0≤y<3,x∈z,y∈z(x,y)∣0≤x<2,0≤y<3,x∈Z,y∈Z​,即横坐标 是 00 到 11 (包含 0 和 1) 之间的整数、纵坐标是 0 到 2 (包含 0 和 2) 之间的整数 的点。这些点一共确定了 11 条不同的直线。

给定平面上 20×2120×21 个整点 (x,y)∣0≤x<20,0≤y<21,x∈z,x∈y(x,y)∣0≤x<20,0≤y<21,x∈Z,y∈Z,即横 坐标是 0 到 19 (包含 0 和 19) 之间的整数、纵坐标是 0 到 20 (包含 0 和 20​) 之 间的整数的点。

请问这些点一共确定了多少条不同的直线。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
  •  1 #include<bits/stdc++.h>
     2 using namespace std;
     3 struct Point{
     4     double x, y;
     5 }p[25*25];//存下每一个点
     6 map<pair<double,double> ,int> line;//pair存斜率k和截距b,表示直线line
     7 int main(){
     8 int cnt = 0;
     9 int col= 20,row=21;
    10     for(int i = 0;i < row;i++){
    11         for(int j = 0;j < col;j++){
    12             p[cnt].x = i;
    13             p[cnt++].y = j;
    14         }
    15     }//21条横线和20条竖线相交的整数交点,一共有cnt个点,也就是row*col个点
    16     int linenum= row+col; //首先有row根横线和col根竖线,下面求斜线
    17     for(int i = 0;i < cnt;i++){
    18         for(int j = 0;j < cnt;j++){
    19             if(p[i].x == p[j].x || p[i].y == p[j].y) continue;
    20       //任意两点的连成的直线与坐标轴平行,或i、j共点,就无需统计,用continue跳过。
    21             //求斜率和截距(k,b)
    22             double k = (p[j].y - p[i].y) / (p[j].x - p[i].x);
    23             double b = (p[j].x * p[i].y - p[j].y * p[i].x) / (p[j].x - p[i].x);
    24             if(line[{k,b}] == 0){//如果此前未出现过此直线line(k,b)
    25                 line[{k,b}] = 1;//那么 记录此时有了此直线
    26                 linenum++; //并且统计直线数量增加1个
    27             }//否则说明此直线之前已经有了,那么就不会再次累加ans。
    28        }
    29     }
    30     cout << linenum<< endl;
    31     return 0;
    32 }

    最后答案  40527

标签:直线,cnt,27,int,蓝桥,++,枚举,col,row
From: https://www.cnblogs.com/jszs0013/p/17068195.html

相关文章

  • SQL查询语句练习题27道
    练习环境为:XP+SQL2000数据库练习使用的数据库为:学生管理数据库说明        这是我在学习数据库课时,老师给的27道SELECT语句练习题,在写这篇文章时,老师并没有给参考......
  • 详细实例说明+典型案例实现 对枚举法进行全面分析 | C++
    第五章枚举法:::hljs-center目录第五章枚举法●前言1.简要介绍2.代码及结果示例(简单理解)3.生活实例●二、枚举法的典型案例——鸡兔同笼&质数求解1.鸡......
  • POJ1002 487-3279
    描述商人们喜欢使用方便记忆的电话号码。让号码方便记忆的一种方法是让它拼成好记的单词或词组。例如,你可以叫Waterloo大学TUT-GLOP。有时候只有数字的一部分参与拼写。当......
  • Servlet27 - Listener 监听器
    Listener监听xxx对象的xxx过程ServletContextListener监听ServletContext对象的创建与销毁方法名作用contextInitialized(ServletContextEventsce......
  • Java:枚举类型
    Java:枚举类型每博一文案师父说:人活一世,每个人都有他的特别,每个人都值得被温柔相待。红尘一遭,每段经历都有它的必然,每段经历都造就了现在的你,最快乐的事情,就是做自己,最......
  • AT_abc277_e 题解
    \(\mathcalSolution\)【题意】给定无向图,当\(a_i=1\)时,该条边才能走。在给我们\(k\)个点,\(S_1,S_2,\cdots,S_k\),到了这些点可以选择是否取反\((1\to0,0\t......
  • 代码随想录 | Day 1 | LC 27 移除元素、704 二分查找
    704.二分查找题目解法1:纯遍历classSolution{publicintsearch(int[]nums,inttarget){for(inti=0;i<nums.length;i++){i......
  • 【栈】LeetCode 227. 基本计算器 II
    题目链接227.基本计算器II思路代码classSolution{//使用map维护一个运算符优先级//这里的优先级划分按照「数学」进行划分即可Map<Character,......
  • 1579_AURIX_TC275_MTU中的ECC机理以及各种寄存器实现
    全部学习汇总:​​GreyZhang/g_TC275:happyhackingforTC275!(github.com)​​这一夜的信息全是寄存器地址信息,在了解功能的时候都是非关键信息。后续的内容整理中,这部......
  • 1577_AURIX_TC275_MTU中检测控制相关寄存器
    全部学习汇总:​​GreyZhang/g_TC275:happyhackingforTC275!(github.com)​​开篇介绍的功能室之前看过很多次的一个握手的功能。快速行以及快速列模式的测试中,这个行......