*【UVA - 10382】Watering Grass(贪心,区间覆盖问题,思维)

题干:

题目大意:

有一块草坪,长为l,宽为w,在它的水平中心线上有n个位置可以安装喷水装置,各个位置上的喷水装置的覆盖范围为以它们自己的半径ri为圆。求出最少需要的喷水装置个数,如果无论如何都不能覆盖,就输出-1。

解题报告:

   这题就是个区间覆盖问题的变形,,虽然给的是一个个的圆,但是我们不难发现求出与上下边的交点,这一部分区域才是我们的有效区域,然后求个区间覆盖就行了、、、nlogn的算法按说不应该TLE啊,,,但是该优化的都优化了还是TLE,看了题解发现有个剪枝,,(但是说实话这个题卡时间没必要吧、、TLE变0ms)

   emmm今天又想了一下好像不是TLE的问题,,这样会WA吧、、因为本来可能覆盖不到的地方你都变成覆盖得到了、、你求边界那里就不对、、对一个负数去开平方根???可能这样会认为是TLE吧、、

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e5 + 5;
struct Node {double st,ed;Node(){}Node(double st,double ed):st(st),ed(ed){}bool operator<(const Node & b) const{if(st != b.st) return st < b.st;return ed > b.ed;}
} node[MAX];
int tot,cnt;
int main()
{int n;double l,w,x,r;while(~scanf("%d%lf%lf",&n,&l,&w)) {tot=cnt=0;for(int i = 1; i<=n; i++) {scanf("%lf %lf",&x,&r);if(r < w/2) continue;//cin>>x>>r;//cout << x<< r << endl;node[++tot] = Node(x-sqrt(r*r-w*w/4),x+sqrt(r*r-w*w/4));//cout << x-sqrt(r*r-w*w/4) << endl;}sort(node+1,node+tot+1);//for(int i = 1; i<=tot; i++) printf("%f  %f\n",node[i].st,node[i].ed);double cure,curs;curs=cure=0;int flag = 0;for(int i = 1; i<=tot; ) {if(node[i].st > curs) {break;	}while(i<=tot && node[i].st<=curs) {if(node[i].ed > cure) {cure = node[i].ed;}i++;}cnt++;curs = cure;if(curs >= l) {flag=1;break;}}if(flag == 0) puts("-1");else printf("%d\n",cnt);}return 0 ;} 

还有一个没有排序的算法、这样写就不需要加剪枝了。,。但是不知道为什么这样可以。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle如何把字符集改回默认,更改oracle字符集

在安装oracle时&#xff0c;选了默认字符集是utf8&#xff0c;后来发现与plsql developer工具联合使用时&#xff0c;会出现各种乱码问题。再加上我的项目也是gbk的&#xff0c;因此&#xff0c;将字符集改成gbk试试。步骤如下&#xff1a;1.查看当前的字符集和语言select * fr…

【HDU - 2570】迷瘴 (贪心,水题,排序,卡精度有坑)

题干&#xff1a; 通过悬崖的yifenfei&#xff0c;又面临着幽谷的考验—— 幽谷周围瘴气弥漫&#xff0c;静的可怕&#xff0c;隐约可见地上堆满了骷髅。由于此处长年不见天日&#xff0c;导致空气中布满了毒素&#xff0c;一旦吸入体内&#xff0c;便会全身溃烂而死。 幸好…

oracle 1天后,Oracle Code One - 第1天 精彩亮点回顾

原标题&#xff1a;Oracle Code One - 第1天 精彩亮点回顾原文作者&#xff1a;Padmini Murthy 产品营销总监2018年Oracle CodOracle CodeOne大会实况 – 第1天2018年Oracle CodeOne大会开幕第一天&#xff0c;精彩纷呈&#xff0c;乐趣繁多。从Developers Exchange活动的欢畅交…

oracle 控制文件冗余,Oracle 添加冗余控制文件 for RAC On Linux

萌哒萌哒的分割线注&#xff1a;添加冗余控制文件期间需要有关库操作&#xff0c;需注意&#xff01;&#xff01;&#xff01;备份控制文件SQL> alter session set tracefile_identifier‘backupctrl‘;Session altered.SQL> alter database backup controlfile to trac…

linux socket bind 内核详解,Socket与系统调用深度分析(示例代码)

1、 什么是系统调用操作系统通过系统调用为运行于其上的进程提供服务。当用户态进程发起一个系统调用&#xff0c; CPU 将切换到 内核态 并开始执行一个 内核函数 。 内核函数负责响应应用程序的要求&#xff0c;例如操作文件、进行网络通讯或者申请内存资源等。在Linux中系统调…

【UVA - 11729】Commando War (贪心,时间调度问题)

题干&#xff1a;&#xff08;Uva不放题干了&#xff09; 题目大意&#xff1a;&#xff08;实在是自己懒得写网上找了一个&#xff09; 解题报告&#xff1a; 调度问题&#xff0c;直接贪心出完成任务需要的时间最长的那个人排序&#xff0c;就行了。 方法正确性的证明以前也…

linux系统键盘记录器,可截获到 QQ 密码 键盘记录器源码

由于 QQ 密码做了特殊的保护&#xff0c;所以通过远程注入得到密码框内容以及通过钩子来得到键盘消息均不能探测到 QQ 的密码&#xff0c;但是通过对键盘驱动的过滤却是可以记录下 QQ 密码输入期间的内容&#xff0c;附上源码。#define DBG 1#include #include #include "…

linux exchange邮件客户端,Linux中使用Hiri邮件客户端访问Exchange帐户

大家都知道 Microsoft Exchange 是企业级邮件市场占有率第一的产品&#xff0c;早已成为 Top 500 企业首选的邮件服务器和客户端标准配备。随着 Office 365 服务在全球的铺开&#xff0c;Exchange 的市场占有率更是越来越高&#xff0c;不少中小企业甚至个人用户都已经开始使用…

群辉挂载linux nfs,Debian 9 挂载访问已设置的群晖NFS共享文件目录

说明博主先后尝试了 webdav、Samba方案后&#xff0c;最后毅然决然选择NFS的方案&#xff0c;通过挂载群晖的NFS共享文件目录作为Jellyfin的媒体库&#xff0c;媒体播放通常单个文件都比较大&#xff0c;而webdav在读取过程中需要比较长的缓存时间大文件传输并不友好。之前试过…

【CodeForces - 768C】Jon Snow and his Favourite Number(思维,技巧,套路,数学异或,循环节,trick)

题干&#xff1a; Jon Snow now has to fight with White Walkers. He has n rangers, each of which has his own strength. Also Jon Snow has his favourite number x. Each ranger can fight with a white walker only if the strength of the white walker equals his st…

c 语言定义2维字符串数组赋值,二维数组赋值字符串 c 语言 二维字符串数组赋值问题...

C语言中二维字符数组应该怎样赋值&#xff1f;c语言二维数组如何定义字符串&#xff1f;&#xff1f;&#xff1f;&#xff1f;急。。。二维字符数组的定义格式为&#xff1a;char 数组名[第一维大小][第二维大小]; 例如&#xff1a;char c[3][10]; //定义了一个3行10列的二维字…

qt android wifi,QtScrcpy: Android实时投屏软件,此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限...

QtScrcpyQtScrcpy可以通过USB(或通过TCP/IP)连接Android设备&#xff0c;并进行显示和控制。不需要root权限。单个应用程序最多支持16个安卓设备同时连接。同时支持GNU/Linux&#xff0c;Windows和MacOS三大主流桌面平台它专注于:精致 (仅显示设备屏幕)性能 (30~60fps)质量 (19…

android 添加so,Android studio 中添加 .so 文件

场景&#xff1a;Android studio 编译我的项目(项目中有运用的jni)&#xff0c;编译没有报错&#xff0c;正常的安装到我的机器上&#xff0c;可是运行的时候就报错&#xff0c;没有找到*.so文件...可是明明在libs&#xff0c;目录下有加相关的文件&#xff1f;参考网上大部分的…

投票抵制华为鸿蒙系统,网友投票华为十大技术:鸿蒙OS仅排第二!

作为国内消费电子巨头&#xff0c;华为的技术实力是有目共睹的&#xff0c;在过去的一年发布的许多黑科技让人眼前一亮&#xff0c;那么今日(17日)消息&#xff0c;华为终端今天表示&#xff0c;此前向粉丝们征集票选过去这一年里大家最关注的十大功能技术。最终&#xff0c;收…

平板android怎么玩电脑游戏,Android平板模拟家用主机游戏教程_小米 平板_平板电脑新闻-中关村在线...

一、NESoid看完了上一页Windows系统模拟器介绍的网友应该能得出一个经验&#xff0c;一般模拟器的名称都和其模拟的游戏主机名称比较类似&#xff0c;所以很多模拟器都可以通过其名称判断出它到底是模拟谁的。比如这款NESoid&#xff0c;看名字就知道是模拟NES主机&#xff0c;…

华为nova 7 se鸿蒙,荣耀v40和华为Nova7Pro哪个好-参数对比-更值得入手

荣耀v40已经发布&#xff0c;今天小编给大家带来荣耀v40和华为Nova7Pro参数详细分析&#xff0c;这两款手机有什么区别&#xff0c;哪一个更加值得入手呢&#xff0c;一起来看看吧一、参数对比迷你手机网荣耀v40​华为Nova7Pro手机外形屏幕尺寸6.72英寸6.57屏幕材质OLEDOLED刷新…

【牛客 - 318M】被打脸的潇洒哥(几何问题,水题,结论,知识点)

题干&#xff1a; 平面上有n个圆&#xff0c;求使这n个圆两两相交&#xff08;即每两个圆之间恰好有两个交点&#xff09;后最多能把平面划分成多少个区域。 输入描述: 一个正整数t&#xff0c;表示有t(1≤t≤100)组数据。 接下来t行&#xff0c;每行一个整数n(0≤n≤…

html边框自动变颜色,css怎么设置边框颜色?

元素外边距内就是元素的的边框 (border)。元素的边框就是围绕元素内容和内边据的一条或多条线。每个边框有 3 个方面&#xff1a;宽度、样式&#xff0c;以及颜色。下面我们就来看一下css设置边框颜色的方法。css可以使用border-color属性来设置边框颜色。border-color 属性是一…

【牛客 - 289 I】这是一个沙雕题I (字符串问题,水题)

题干&#xff1a; 因为毒瘤出题人出的题都太难了&#xff0c;于是gugugu打算出一个签到题&#xff0c;&#xff08;就是这题啦&#xff09;&#xff0c;这题很简单&#xff0c;给定一个字符串&#xff0c;请问你重新排序后能不能组成K个相同的字符串。 输入描述: 多组数据输…

codesys 串口通讯实例_常见的PLC程序实例,车库自动门的PLC控制!

点击箭头处“工业之家”&#xff0c;选择“关注公众号”&#xff01;PLC控制车库自动门实例车库自动门控制(1)明确系统控制要求系统要求车库门在车辆进出时能自动打开关闭&#xff0c;车库门控制结构如下图所示。系统控制具体要求如下&#xff1a;在车辆入库经过入门传感器时&a…