广场舞 蓝桥真题

2024-02-22 17:48
文章标签 蓝桥 真题 广场

本文主要是介绍广场舞 蓝桥真题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

https://www.dotcpp.com/oj/problem1838.html

50%数据参考博客https://blog.csdn.net/qq_39562286/article/details/80033097

很多博客的思路都是 枚举每个小正方形的右上角 然后判断其余三个角是不是在多边形内 但是当出现斜率不存在的直线时就不好使了 比如下面这个样例

6
0 0
2 0
2 3
1 3
1 1
0 3

本应输出4 按上述方法却得6 所以除非保证所有直线斜率全都存在 否则不可行

 

正解就很巧妙得避开这个问题 对每一列正方形(假设只有连续的一段)一定有两条直线封住上下底 n^2的暴力枚举即可

还有就是ceil与floor的使用 mark

 

 

#include <bits/stdc++.h>
using namespace std;
const double N=1000000000000000000.0;
const int maxn=1e3+10;struct node1
{int x,y;
};struct node2
{node1 p1,p2;
};struct node3
{double yl,yr;
};node1 point[maxn];
node2 line[maxn];
node3 pre[maxn];
int n;double gety(double x,node2 l)
{double y,x1,y1,x2,y2;x1=l.p1.x,y1=l.p1.y,x2=l.p2.x,y2=l.p2.y;y=(y2-y1)*(x-x1)/(x2-x1)+y1;return y;
}bool cmp(node3 n1,node3 n2)
{return n1.yl<n2.yl;
}int solve()
{int res,cnt,minn,maxx,l,r,i,j;minn=1000,maxx=-1000;for(i=0;i<n;i++){minn=min(minn,point[i].x),maxx=max(maxx,point[i].x);}res=0;for(i=minn+1;i<=maxx;i++){cnt=0;for(j=0;j<n;j++){l=line[j].p1.x,r=line[j].p2.x;if(l<=i-1&&i<=r){pre[cnt].yl=gety(i-1,line[j]),pre[cnt].yr=gety(i,line[j]);cnt++;}}sort(pre,pre+cnt,cmp);for(j=0;j<cnt/2;j++){l=int(ceil(max(pre[2*j].yl,pre[2*j].yr)));r=int(floor(min(pre[2*j+1].yl,pre[2*j+1].yr)));if(l<r) res+=(r-l);}}return res;
}int main()
{int i,ans;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d%d",&point[i].x,&point[i].y);}for(i=0;i<n;i++){line[i].p1=point[i],line[i].p2=point[(i+1)%n];if(line[i].p1.x>line[i].p2.x){swap(line[i].p1,line[i].p2);}}printf("%d\n",solve());return 0;
}

 

这篇关于广场舞 蓝桥真题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/736030

相关文章

华为OD机试真题-学生方阵-2024年OD统一考试(E卷)

题目描述 学校组织活动,将学生排成一个矩形方阵。 请在矩形方阵中找到最大的位置相连的男生数量。这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的。 注:学生个数不会超过10000 输入描述 输入的第一行为矩阵的行数和列数, 接下来的 n行为矩阵元素,元素间用""分隔。 输出描述 输出一个整数,表示矩阵中最长的位

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

2024年AMC10美国数学竞赛倒计时两个月:吃透1250道真题和知识点(持续)

根据通知,2024年AMC10美国数学竞赛的报名还有两周,正式比赛还有两个月就要开始了。计划参赛的孩子们要记好时间,认真备考,最后冲刺再提高成绩。 那么如何备考2024年AMC10美国数学竞赛呢?做真题,吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的补齐知识的短板。

大厂算法例题解之网易2018秋招笔试真题 (未完)

1、字符串碎片 【题目描述】一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,“aaabbaaac” 是由下面碎片组成的:‘aaa’,‘bb’,‘c’。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的 平均长度是多少。 输入描述: 输入包括一个字符串 s,字符串 s 的长度 length(1 ≤ length ≤ 50),s 只含小写字母(‘a’-‘z’) 输出描述

上海大学《2022年836+915自动控制原理真题及答案》 (完整版)

Part1:2022年上海大学真题题目 学硕836 专硕915 Part2:2022年上海大学真题答案 学硕836 专硕915

找不同-第15届蓝桥省赛Scratch初级组真题第4题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第183讲。 如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,查阅教程更方便。 第15届蓝桥杯省赛已于2024年8月24日落下帷幕,编程题一共有5题,分别如下: 猪八戒落地 游乐场 画西瓜 找不同 消

【蓝桥杯嵌入式(一)程序框架和调度器】

蓝桥杯嵌入式(一)程序框架和调度器 序、代码命名规则零、STM32和8051⼀、软件及环境安装⼆、⼯程框架搭建1.时钟配置2、SYS配置3、⼯程配置4、NVIC配置5.、Keil配置 三、系统初始化四、任务调度器 链接: 视频出处 序、代码命名规则 以下是一些常见的举例 零、STM32和8051 链接: 8位和32位单片机最本质区别 ⼀、软件及环境安装

【蓝桥杯嵌入式(二)Led、Key、Lcd】

蓝桥杯嵌入式(二)Led、Key、Lcd 五、Led模块1.原理图配置2. 知识点3.底层代码 六、Key模块1.原理图配置2.知识点3.底层代码底层代码(四⾏代码版本)底层代码(状态机版本) 七、LCD模块1.原理图配置2.知识点底层代码 五、Led模块 1.原理图配置 2. 知识点 链接: 上拉电阻的通俗解释 链接: 单⽚机怎么输出⾼电平!推挽输出和开

华为OD机试真题-猜字谜-2024年OD统一考试(E卷)

题目描述 小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如 nesw,玩家需要猜出谜底库中正确的单词。猜中的要求如下.对于某个谜面和谜底单词,满足下面任一条件都表示猜中: 1、变换顺序以后一样的,比如通过变换 w和e的顺序,“nwes”跟“news”是可以完全对应的: 2、字母去重以后是一样的,比如“woood”和“wood”是一样的,它们去重后都是“wod'请你写一个程序帮忙在

蓝桥杯:整数删除

// 蓝桥杯整数删除.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include<stdio.h>#define MAX 100void findmin(int a[],int n,int& pos){int min=a[0];pos=0;//pos=0我开始忘了,特别注意