FZU 2144 Shooting Game(球体方程和直线方程联立+贪心区间覆盖)

别再被无限debugger卡住了!Chrome DevTools实战绕过技巧(含Hook与文件替换) 本文详细介绍了如何通过Chrome DevTools绕过无限debugger封锁的实战技巧,包括Hook技术与文件替换方法。针对常见的定时器轰炸、循环陷阱和动态注入等反调试手段,提供了高效的解决方案,帮助开发者快速突破调试障碍,提升爬虫和逆向工程效率。 阅读详情

Shooting Game

Description

Fat brother and Maze are playing a kind of special (hentai) game in the playground. (Maybe it’s the OOXX game which decrypted in the last problem, who knows.) But as they don’t like using repellent while playing this kind of special (hentai) game, they really suffer a lot from the mosquito. So they decide to use antiaircraft gun to shoot the mosquito. You can assume that the playground is a kind of three-dimensional space and there are N mosquitoes in the playground. Each of them is a kind of point in the space which is doing the uniform linear motion. (匀速直线运动) Fat brother is standing at (0, 0, 0) and once he shoot, the mosquito who’s distance from Fat brother is no large than R will be shot down. You can assume that the area which Fat brother shoot is a kind of a sphere with radio R and the mosquito inside this sphere will be shot down. As Fat brother hate these mosquito very much, he wants to shoot as much mosquito as he can. But as we all know, it’s tired for a man to shoot even if he is really enjoying this. So in addition to that, Fat brother wants to shoot as less time as he can.

You can (have to) assume that Fat brother is strong enough and he don’t need to rest after shooting which means that can shoot at ANY TIME.

Input

The first line of the date is an integer T, which is the number of the text cases.

Then T cases follow, each case starts with two integers N and R which describe above.

Then N lines follow, the ith line contains six integers ax, ay, az, dx, dy, dz. It means that at time 0, the ith mosquito is at (ax, ay, az) and it’s moving direction is (dx, dy, dz) which means that after time t this mosquito will be at (ax+dx*t, ay+dy*t, ax+dz*t). You can assume that dx*dx + dy*dy+ dz*dz > 0.

1 <= T <= 50, 1 <= N <= 100000, 1 <= R <= 1000000

-1000000 <= ax, ay, az <= 1000000

-100 <= dx, dy, dz <= 100

The range of each coordinate is [-10086, 10086]

Output

For each case, output the case number first, then output two numbers A and B.

A is the number of mosquito Fat brother can shoot down.

B is the number of times Fat brother need to shoot.

Sample Input

62 12 0 0 -1 0 0-2 0 0 1 0 02 14 0 0 -1 0 0-2 0 0 1 0 02 14 0 0 -1 0 01 0 0 1 0 02 11 1 1 1 1 1-1 -1 -1 -1 -1 -11 10 0 0 1 0 03 1-1 0 0 1 0 0-2 0 0 1 0 04 0 0 -1 0 0

Sample Output

Case 1: 2 1Case 2: 2 1Case 3: 2 2Case 4: 0 0Case 5: 1 1Case 6: 3 2

解题思路:

题目大意:

在立体的空间上,有n只蚊子,给出蚊子的坐标,以及蚊子的移动方向(向量的方式给出), 然后人的攻击范围为半径为r的球体。

问说人最多可以打几只蚊子,以及需要花多少时间。

算法思想:

按照进入球形区域的时间排序,之后就是贪心区域覆盖的问题了。

AC代码:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;

typedef long long ll;
const int N = 1000005;
struct node{
    double s,t;
}no[N];

bool cmp(node a,node b){
    return a.t < b.t;
}

int main(){
   int T,icase = 1;
   scanf("%d",&T);
   while(T--){
       int n;
       ll x,y,z,dx,dy,dz,r;
       scanf("%d%I64d",&n,&r);
       int len = 0,ans = 0;
       for(int i = 0; i < n; ++i){
           scanf("%I64d%I64d%I64d%I64d%I64d%I64d",&x,&y,&z,&dx,&dy,&dz);
           ll a = dx*dx+dy*dy+dz*dz;
           ll b = 2*(dx*x+dy*y+dz*z);
           ll c = x*x+y*y+z*z-r*r;
           ll delta = b*b-4*a*c;
           if(delta >= 0){
               double s = (-b+sqrt(delta*1.0))/(2.0*a);
               double t = (-b-sqrt(delta*1.0))/(2.0*a);
               if(s > t)
                   swap(s,t);
               if(t >= 0){
                   if(s < 0)
                       s = 0;
                   no[len].s = s;
                   no[len].t = t;
                   ++len;
               }
           }
       }
       sort(no,no+len,cmp);
       double tmp = -1;
       for(int i = 0; i < len; ++i){
           if(no[i].s > tmp){
               tmp = no[i].t;
               ++ans;
           }
       }
       printf("Case %d: %d %d\n",icase++,len,ans);
   }
   return 0;
}


TMS320F28377D的sys/bios双核工程配置详解——从零搭建到RAM优化 本文详细解析了TMS320F28377D双核系统在sys/bios环境下的工程配置与RAM优化策略。从开发环境搭建、SYS/BIOS工程创建到双核CMD文件配置,提供了实战技巧和常见问题解决方案,帮助开发者高效实现电力电子控制系统中的双核协作与性能优化。 阅读详情

相关推荐

学习 Bootstrap 5 之 Tables

学习 Bootstrap 5 之 表格表格 (Tables)1. 创建表格(1). 使用原生的表格标签(2). 使用Bootstrap 5 的提供的表格标签类(3). 原生与Bootstrap创建出来的表格的对比2. 表格样式(1). 表格样式的效果(2). 表格样式的使用1). 用于 <table> 标签2). 用于 <thead> <tbody> <tfoot> 标签 表格 (Tables) 1. 创建表格 (1). 使用原生的表格标签 <tabl

qq_37354060的博客 2130

Problem 2144 Shooting Game

Problem Description Fat brother and Maze are playing a kind of special (hentai) game in the playground. (Maybe it’s the OOXX game which decrypted in the last problem, who knows.) But as they don’t

xiaofang3a的专栏 491

Delphi中使用FireDAC与uniDAC高效连接PostgreSQL的实战指南

本文为Delphi开发者提供了使用FireDAC与uniDAC组件高效连接PostgreSQL数据库的实战指南。文章详细对比了两款组件的选择策略,重点解析了驱动依赖(libpq.dll)的配置、连接参数设置、常见错误排查及性能优化技巧,旨在帮助开发者快速构建稳定可靠的数据库连接。

tomato的博客 805

fzu 2144 Shooting Game 区间覆盖贪心

题意:一个人在空间直角坐标系的原点,即是(0,0,0), 他的射程范围是以R为半径的球体,有n只蚊子,每只蚊子都会有原始坐标和三个坐标方向的速度,人要尽量把多的蚊子射下来,并且开枪次数最少。 思路:假设一只蚊子能进入这个球体,必然有一个进入时间和离开时间,我们设为t,蚊子当前坐标为x = ax + dx * t, y = ay + dy * t, z = az + dz * t, 通过两

zyh 681

特征模理论指导滤波天线设计的优势和方法

本文探讨了特征模理论在滤波天线设计中的应用优势和方法。特征模理论通过分析天线结构的本征模特性,突破了传统经验设计的局限,实现了辐射与滤波功能的一体化设计。文章重点阐述了如何利用模式显著性(MS)和模式加权系数(MWC)来指导辐射零点的产生,揭示了辐射零点形成的物理机制。通过特征模分析,设计师可以明确调控天线结构和馈电系统,优化滤波性能。这种方法为现代多频/宽带滤波天线设计提供了理论依据和实用工具,显著提升了设计效率和性能指标。

qq_64207806的博客 956

避开这些坑!DS18B20温度读取不准、时序混乱的5个常见问题与调试方法

本文深入解析DS18B20温度传感器在应用中常见的5个问题,包括温度读取不准、时序混乱等,并提供详细的调试方法。通过硬件设计优化、精准延时实现和数据解析技巧,帮助开发者有效解决温度值跳变、初始化失败等典型问题,提升OneWire协议下的温度测量精度。

weixin_29185493的博客 463

FZU 2141

题意:给出N个点M条边的图,现在要从中选出两个不相交的点集,使得以这两个点集构成的原图的子图构成一个二分图,并使得边数>=M/2。 思路:一个一个点去染色,对于当前点,判断染哪个颜色使得受益最大就染哪个颜色, 参考http://blog.youkuaiyun.com/qian99/article/details/22994069 #include #include #include #inc

Everything can be done! 324

获取抖音中x-secsdk-csrf-token的方法

获取抖音中x-secsdk-csrf-token的方法

sh_moranliunian的博客 2016

项目记录 : 射线与球的相交

射线与球的相交 从图形来说 射线与圆相交.origin 是射线的起点. dir 是射线的方向向量. P0 和 P1 是两个交点. center 是圆心, R 是半径. d 为圆心到射线的距离. 我们先以2D切面图来说明,当射线和圆相交的时候,可以看到,球心 center 到射线 ray 的距离 d &lt;= R,这个即为相交的条件。那么射线与球相切就转化为了球心到射线的距离d的判断。先求出d:...

【黑键】 1744

大数据在电力行业的应用案例解析-【电力技术】(九)大数据在电力储能运维中的深度应用(含故障预测代码)

大数据技术为电力储能运维提供了“精准化、智能化、高效化”的解决方案,破解了传统运维的核心痛点,实现了储能系统从“被动抢修”到“主动运维”的转型,为新型电力系统建设提供了重要支撑。当前,随着储能产业的快速发展,大数据与储能运维的融合将更加深入,未来将结合人工智能、物联网、区块链等技术,实现储能运维的全流程智能化——从设备故障的提前预警,到寿命的精准预测,再到运维策略的自动优化、调度协同的实时响应,进一步提升储能系统的安全性、经济性与可靠性。

getusushu的博客 86

Python爬虫:抓取餐饮平台顾客评分与评价的完整教程

本文介绍了如何使用Python爬虫技术抓取餐饮平台上的餐厅评分和评论数据。我们通过三种主要的抓取方法:静态网页抓取(requests)、动态网页抓取(Selenium)和API抓取,展示了如何抓取餐饮平台的数据。还介绍了如何使用pandas对抓取的数据进行存储、清洗、分析,并进行可视化和情感分析。通过本文的学习,您应该能够掌握如何使用Python爬虫抓取餐饮平台的评论数据,并将这些数据应用于市场分析、顾客反馈和服务优化等领域。

2201_76125261的博客 1144

FZU 2141 Sub-Bipartite Graph

Sub-Bipartite Graph Time Limit:1000MSMemory Limit:32768KB64bit IO Format:%I64d & %I64u SubmitStatusPracticeFZU 2141 Description Given a simple undirected graph G with n ...

weixin_33897722的博客 224

K230在原有LVGL控件触摸屏控制的基础上,增加USB鼠标控制!

搭配CanMV图形化编程,中小学生可快速开发“键鼠控制AI小游戏”“智能画板”等趣味项目,降低AI学习门槛;:HDMI屏幕+键鼠组合,直接在开发板上调试代码、修改ISP参数、查看AI推理日志,无需频繁连接电脑;:打造带交互的AI设备(如工业控制面板、智能显示器),鼠标操作菜单、键盘输入指令,体验媲美小型PC;:无网络场景下,通过键盘直接向AI设备录入数据、配置参数,适配野外监测、本地工控等场景。,自动识别、快速响应,完美适配交互控制、参数调试、数据输入等场景。

weixin_47446386的博客 145

fzu 2141 Sub-Bipartite Graph 贪心 二分图构建

题意:从一个无向图中构建一个二分子图,保证二分图的边至少m/2条边 思路:贪心,对与第i个点,假设前i-1个点已经成为一个二分图,就查看与i相连的点是在二分图左边多还是在二分图右边多,哪边少i点就往哪放 题目链接:http://acm.fzu.edu.cn/problem.php?pid=2141 #include #include #include #incl

zyh 940

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

FZU - 2141 Sub-Bipartite Graph (二分图+贪心)

题意:给出n个点,m条边,找出一个子二分图,让这个子二分图的变数至少为m/2,题目保证一定存在这样的子二分图。题目中给了二分图与子图的定义,二分图的定义是:如果一个图的所有顶点可以被分为U V两个集合,并且所有边的两个顶点恰好一个属于U,一个属于Y,即每个集合内的顶点没有边相连,那么此图就是二分图。二分图里并不含有奇圈。这道题贪心的来做,假设前i个点已经形成了二分图,再添加第i+1个点的时候,判断...

GYH0730的博客 304

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

hihoCoder 1227 The Cats' Feeding Spots && ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛

题目链接: http://hihocoder.com/problemset/problem/1227 解题思路: 题目大意: 平面上有m个点,要从这m个点当中找出n个点,使得包含这n个点的圆的半径(圆心为n个点当中的某一点且半径为整数)最小,同 时保证圆周上没有点。 算法思想: 唯一的坑就是当n大于m时,找不到符合题意的n个点,直接输出-1即可。。。 AC代码: #inc

piaocoder 1164

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

POJ 2932 Coneology(平面扫描)

题目链接: http://poj.org/problem?id=2932 解题思路: 题目大意: 平面上有n个两两没有公共点的圆,i号圆的圆心在(x[i],y[i]),半径为r[i]。求所有最外层的,即不包含于其他圆内部的圆。 算法思想: 因为题目内的圆不存在相交的情况, 所以直接储存每个圆的左端点和右端点的x坐标,然后从左扫到右。我们在从左向右平移与y轴 平行的直线的同时,维护

piaocoder 1002

hdu 5120 Intersection(两圆相交面积)(模板)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5120 解题思路: 在纸上画画图,不难发现,根据容斥定理:所要求的面积为两外环的交集(ans1)-外环和内环的交集(ans2*2,对称)+两内环的 交集(多减去的部分,现在补上)。 http://blog.youkuaiyun.com/piaocoder/article/details/416490

piaocoder 777

2010年山东省第一届ACM大学生程序设计竞赛——Clockwise

题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2153 Clockwise 只要理解题目意思,即可敲出正确代码。 题目大意为:给你n个点,让你求出任意一个向量,顺时针旋转180(不能到达180),如果可以达到其余n-2个点,就输出‘C’,逆时针旋转180,如果可以到达n-2个

piaocoder 768

hdu 5365 Run(几何)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5365 解题思路: 官方题解说: 地球人都知道整点是不能构成正五边形和正三边形和正六边形的,所以只需暴力枚举四个点判断是否是正四边形即可。假如你不是地球人,那么即使暴力枚举正三边形和稍微不那么暴力地找正五边形和正六边形也是可以通过的(反正找不到) 瞬间感觉智商被压制了,网上有一个证明

piaocoder 701

HDU5144 NPY and shot && BestCoder Round #22 1003

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5144 解题思路:BestCoder官方题解: 这是一个高一物理题。扔的距离与投掷角度的函数,符合单峰性质,所以三分角度就行了。 当角度为θ时,设横向速度为vx=cos(θ)*v0,纵向速度为vy=sin(θ)*v0,则扔的距离为: (vy/g+sqrt((vy*vy/(g*2)+h)*

piaocoder 665

POJ1127 Jack Straws

题目链接:http://poj.org/problem?id=1127 Jack Straws 题目大意:给你n个线段,然后再给你m组数据,每组包含a,b两个线段,问你a,b是否CONNECTED ,(如果间接相交(即1交2,2交3,1虽然没有交3,但是也算相交),也算CONNECTED )。 解题思路:将相交于同一条直线的放入同一个并查集里面,然后查找即可。 #include #i

piaocoder 631

hdu 4998 Rotate(计算几何)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4998 解题思路: 题目大意:给定n个点和n个角度,平面内任意一个点依次以这些点Point(i)为旋转中心,逆时针旋转 R(i)度,求最后相当于绕哪个点旋转多少度,求这个点的坐标以及旋转的角度。 算法思想: 一个点(x,y)绕另外一个点(x0,y0)旋转 r0 度的公式为: x1= (

piaocoder 576

POJ2398——Toy Storage

题目链接:http://poj.org/problem?id=2398 Toy Storage 题目大意:给你n个区间,再给你m个玩具的坐标,然后让你求出各区间玩具的个数,最后输出1个玩具的区间有几个,2个玩具的区间有几个,依次类推。。。(有玩具才输出) 解题思路:如果点在四边形内,点和左边界的点乘积再乘以点和右边界的点乘积为负。。。 #include #include #incl

piaocoder 564

2012年"浪潮杯"山东省第三届ACM大学生程序设计竞赛——Fruit Ninja II

题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2416 Fruit Ninja II 题目大意:给你一个椭圆,切成两半,让你求出体积大的那个体积。(纯粹高数题) 推导过程不难,给你一个别人已经推好了的过程,很简单的。。。 http://zuoye.baidu.com/que

piaocoder 557

ZOJ2107——Quoit Design&&HDU1007——Quoit Design

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2107 http://acm.hdu.edu.cn/showproblem.php?pid=1007 Quoit Design 题目大意:寻找最近点对。 直接套模板即可!!! #include #include #include #include

piaocoder 531
上一篇: 2015-2016 ACM-ICPC, NEERC, Moscow Subregional Contest(K. King's Rout)(拓扑排序)
下一篇: Linux下修改Tomcat默认端口
yphacker
博客等级 码龄12年 199粉丝 540原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值