uvalive6468,51cthink1419 Strange Antennas (离散化)

2023-11-01 17:59

本文主要是介绍uvalive6468,51cthink1419 Strange Antennas (离散化),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意:

在一个 n x n 的平面上,给定 m 个等腰直角三角形(各点均为整数),问该平面上被三角形覆盖奇数次的点有多少个。

思路:

由于 n 较大,不能模拟解决,故使用离散化思想。

考虑每一行有多少点被覆盖了奇数次,题目从二维转换成一维。

对于每一行,考虑每个三角形在此行覆盖的线段,记录下每条线段的左端点 l 、右端点 r 保存在同一个数组中。

排序后则容易知道第一个到第二个数、第三到第四个数...的部分是覆盖奇数次,以此累加结果。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
struct Radar
{int x, y, w, d;
} radars[105];
int dir[4][2]= {{1, -1}, {1, 1}, {-1, 1}, {-1, -1}};int main()
{int n, m, ans=0;while(cin>>n>>m){ans=0;for(int i=0; i<m; ++i){cin>>radars[i].x>>radars[i].y>>radars[i].w>>radars[i].d;/*if(radars[i].d==0) radars[i].y--;if(radars[i].d==2) radars[i].x--; //uva数据有误,此处处理错误数据if(radars[i].d==3) radars[i].x--, radars[i].y--;*/}for(int i=0; i<n; ++i){int cnt=0, v[202]= {0};for(int j=0; j<m; ++j){if(radars[j].d<=1 && radars[j].x>i) continue;if(radars[j].d>1 && radars[j].x<i) continue;if(abs(radars[j].x-i) >= radars[j].w) continue;int l=radars[j].y + dir[radars[j].d][1] * (radars[j].w - abs(radars[j].x - i) - 1);int r=radars[j].y;if(l>r) swap(l, r);l--;l=max(-1, l);r=min(r, n-1);v[cnt++]=l, v[cnt++]=r;}sort(v, v+cnt);for(int j=1; j<cnt; j+=2)ans+=v[j]-v[j-1];}cout<<ans<<endl;}return 0;
}

 

转载于:https://www.cnblogs.com/xiepingfu/p/7340197.html

这篇关于uvalive6468,51cthink1419 Strange Antennas (离散化)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

处理特征向量和离散特征

在最新的腾讯的社交广告大赛中,数据如下,如何处理这种向量的特征 比如intersets1,interests2.... LBS,950,age,4,carrier,1,consumptionAbility,2,ct,3 1,education,7,gender,2,interest1,93 70 77 86 109 47 75 69 45 8 29 49 83 6 46 36

特征离散和特征选择

连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果? Q:CTR预估,发现CTR预估一般都是用LR,而且特征都是离散的。为什么一定要用离散特征呢?这样做的好处在哪里? A: 在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点: 0、 离散特征的增加和减少都很容易,易于模型的快速迭代。(离散

【HDU】3729 I'm Telling the Truth 离散+最大流

传送门:【HDU】3729 I'm Telling the Truth 题目分析:我看这么大的数据范围,如果普通二分肯定要超时的啊。。。然后就敲了一个离散化+最大流了。。。 但是我网上看他们的题解,都是裸裸的开一个100万的数组啊!!!还比我离散的网络流还快啊啊啊!!于是我就测一次给的区间有多大(如果超出一定范围就拿一个变量除以0让报RE),第一次10000没事,然后1000。。还是没事

【HDU】5958 New Signal Decomposition【离散对数下的FFT】

题目链接:【HDU】5958 New Signal Decomposition 在此先感谢小q对我的指导,没有q老师的帮助,估计永远也做不出来了。 首先我们考虑对这个式子做离散对数。令 g g为pp的某个原根,则有: bi=∑p−1j=0aj⋅r(i,j) \quad b_i=\sum_{j=0}^{p-1}a_j\cdot r(i,j) bi=∑p−1j=0aj⋅2sin32πi⋅j

【自动驾驶】控制算法(七)离散规划轨迹的误差计算

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作,荣幸在CSDN首发🐒 若您觉得内容有价值,还请评论告知一声,以便更多人受益。 转载请注明出处,尊重原创,从我做起。 👍 点赞、评论、收藏,三连走一波,让我们一起养成好习惯😜 在这里,您将

MATLAB分析图像的离散余弦变换(DCT)

1. MATLAB的介绍以及所需函数的说明:  1.1 MATLAB  MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设

《数字信号处理》学习04-离散时间系统中的线性时不变系统

目录 一,系统及离散时间系统   二,离散时间系统中的线性时不变系统 1,线性系统  1) 可加性  2) 比例性(齐次性) 3)叠加原理(叠加性质)  2,时不变系统(移不变系统) 通过前几篇文章的学习,此时我对序列的相关概念和运算已经有所掌握,接下来我将开始学习新的概念“离散时间系统中的线性时不变系统”, 一,系统及离散时间系统  首先需要知道系统的概念,在《信

Pandas-高级处理(八):数据离散化【pandas.cut:根据指定分界点对连续数据进行分箱处理】【pandas.qcut:指定箱子的数量对连续数据进行等宽分箱处理】【get_dummies】

Python实现连续数据的离散化处理主要基于两个函数:pandas.cut和pandas.qcut,pandas.cut根据指定分界点对连续数据进行分箱处理,pandas.qcut可以指定箱子的数量对连续数据进行等宽分箱处理(注意:所谓等宽指的是每个箱子中的数据量是相同的) 应用cut、qcut实现数据的区间分组应用get_dummies实现数据的one-hot编码 数据离散化 可以用来减少

《数字信号处理》学习01-离散时间信号与序列的卷积和运算

目录 一,信号 二,序列的运算  1,卷积和  2,matlab实现  相关的电子书籍请到这篇文章所在的专栏,并通过夸克网盘链接下载。 很多简单的知识点我就不再赘述了,接下来就着重记录我学习过程中遇到的较难理解且容易忘记的知识点,如果想要再详细些的,可以在评论区留言。 这篇文章主要是用于整理我在看书过程中自己做的一些记忆方法(个人记忆方法,因人而异,仅供参考) 一,信号