zoj 3177 Elune's Arrow(数学题,分类讨论)

状态估计【卡尔曼滤波kalman】UKF、EKF、粒子滤波PF学习与研究(Matlab代码实现) 内容概要:本文围绕非线性状态估计中的三种经典滤波算法——无迹卡尔曼滤波(UKF)、扩展卡尔曼滤波(EKF)和粒子滤波(PF)展开系统性学习与研究,重点在于通过Matlab编程实现这些算法的核心流程,并将其应用于实际系统的状态估计问题中。文档不仅详细阐述了各算法的数学原理、适用条件与性能差异,还提供了完整的仿真代码与案例分析,帮助读者深入理解其在非线性、非高斯环境下的表现特性。同时,资源拓展至EKF与神经网络融合训练、多源数据融合等高级应用场景,展现了其在智能控制、无人机导航、电力系统状态估计、目标跟踪等领域的广泛应用价值。; 适合人群:具备一定信号处理、控制理论或状态估计基础的研究生、科研人员及工程技术人员,尤其适用于从事自动化、机器人、导航、电力电子与智能系统等相关方向的研究与开发工作者;; 使用场景及目标:① 掌握UKF、EKF与PF在非线性系统中的建模思路与Matlab实现方法,理解其优缺点与适用边界;② 提升科研仿真能力,能够独立构建状态估计模型并进行算法对比验证;③ 将所学方法应用于如电池SOC估算、无人机姿态估计、传感器融合、故障诊断等实际工程问题中;; 阅读建议:建议结合Matlab动手实践,逐行解读并调试所提供的代码,深入理解算法实现细节;同时可延伸学习文中提及的数据融合、神经网络与滤波器结合等进阶主题,以构建完整的状态估计技术知识体系。 立即下载

Priestess of the Moon (PotM) is a very interesting hero in the game Defense of the Ancients (DotA). Here is the official description of PotM:

  • "A matriarch and high priestess of Elune's blessed order, Mirana Nightshade serves as a light in darkness for the front line of the Sentinel ranks, raining arrows and falling stars alike upon the shambling undead masses of the Undead Scourge, while her very presence is said to be so holy that it melts away the fatigue of nearby allies, giving them greater haste on the battlefield. In times of need however, she can fade herself and others around her into the safety of invisibility, making her a potent supporter matched by few."

She has a very powerful skill named Elune's Arrow. When she uses this ability, she fires an arrow to a location with deadly precision, dealing large damage and stunning the first unit it strikes. A powerful skill, but hard to manage, because the enemy never stands still waiting for your arrow, and you can't change the angle after you fires the arrow. For the sake of simplicity, you can assume that the enemy's body area is a circle with radius r0, the effective range of your arrow is also a circle with radius r1, and the enemy always runs in a straight line. Now, PotM is standing at (x1, y1), while the enemy's position is (x0, y0). The enemy's speed in both x and y directions can be represent by a vector (dx, dy). So, after t minutes, the enemy's position will be (x0+dx*t, y0+dy*t). The speed of PotM's arrow is v. If the effective range of the arrow touches the enemy's body area, it will be considered a strike, just like the collision of two circles. Now PotM wants to strike the enemy as soon as possible, could you help her to determine the time which the arrow takes to strike the enemy?

Input

The first line of the input contains a single number T (T <= 100), indicating the number of cases.

Each case consists of 5 lines, and each line contains the following decimal numbers: 

  • x0, y0 (the enemy's initial position)
  • x1, y1 (PotM's initial position)
  • dx, dy (speed vector of the enemy)
  • r0, r1 (radii of the circles of the enemy's body and the effective range of the arrow)
  • v, (positive speed of the arrow)
There is a blank line between the cases.
Note : the initial distance between PotM and the enemy will be larger than  r0 + r1 .

Output

For each case, output the least time (in minutes) PotM needs to strike the enemy(accurate up to 4 decimal places). If PotM cannot strike the enemy, just output "Impossible" in one line.

Sample Input

2
0.0 0.0
4.0 0.0
1.0 0.0
1.0 1.0
2.0

0.0 0.0
300.0 400.0
-3.0 -4.0
1.0 1.0
5.0

Sample Output

0.6667
Impossible
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3218

#include<iostream>
#include<algorithm>
#include<string>
#include<map>
#include<set>
#include<cmath>
#include<string.h>
#include<stdlib.h>
#include<cstdio>
#define ll long long
using namespace std;
int main(){
	int t;
	cin>>t;
	double x0,x1,y0,y1,dx,dy,r0,r1,v;
	while(t--){
		cin>>x0>>y0>>x1>>y1>>dx>>dy>>r0>>r1>>v;
		double a=v*v-dx*dx-dy*dy;
		double b=2*(v*(r0+r1)-(x0-x1)*dx-(y0-y1)*dy);
		double c=(r0+r1)*(r0+r1)-(x0-x1)*(x0-x1)-(y0-y1)*(y0-y1); //列出二元一次方程的a,b,c
		double d=b*b-4*a*c;
		if(a==0){    //分类讨论(一元一次方程时)
			if(b==0)
				cout<<"Impossible"<<endl;
			else{
				if(-c/b>0)       <span style="font-size: 12.380952835083px; font-family: Arial, Helvetica, sans-serif;">//判断答案的正负</span>
					printf("%.4lf\n",-c/b); 
				else
					cout<<"Impossible"<<endl;
			}
		}
		else if(d<0)  //无解时
			cout<<"Impossible"<<endl; 
		else{
			double s1=(-b-sqrt(d))/(2*a),s2=(-b+sqrt(d))/(2*a);
			if(s2<s1)
				swap(s1,s2); //两个值大小排序
			if(s1>=0)            //判断正负
				printf("%.4lf\n",s1);
			else if(s2>=0)
				printf("%.4lf\n",s2);
			else
				cout<<"Impossible"<<endl;
			}
		}
	return 0;
}


晶振(晶体振荡器)测试方法详解 晶振测试方法分为无源和有源两种类型。无源晶振(两脚)需用示波器测试波形,重点关注正弦波形状、200mV-1.5Vpp幅值和频率精度;有源晶振(四脚)通电后直接输出方波。测试要点包括:示波器使用10X探头、AC耦合,带宽需5倍于晶振频率;万用表可初筛短路/开路;替换法是工程最有效方法。常见故障排查顺序:供电→复位→焊接→型号→负载电容→波形观察→更换晶振→MCU配置。负载电容需按公式计算匹配,示波器观察是核心测试手段。 阅读详情

相关推荐

yolov7模型部署流程

yolov7部署流程

算法的猫 1396

poj 3774 Elune’s Arrow 解题报告

题意:从一个点发出一支箭(一条射线)射击指定敌人,箭在碰到敌人会停止。给出方向和人所在位置,问是否能击中指定目标。 解法:纯纯的几何……判线段相交和距离就好了。如果射线和除了目标以外的点有交点并且两点之间的距离小于射线和目标的距离,也要输出MISS #include #include #include #include #include #include #include u

Tri_integral的专栏 1021

Spyglass实战指南:跨时钟域同步方案深度解析

本文深度解析了Spyglass在跨时钟域同步方案验证中的实战应用。通过真实案例阐述了亚稳态的危害,并详细介绍了从基础的两级同步器到复杂的异步FIFO与握手协议等八大同步方案,以及如何利用Spyglass进行有效配置、检查与问题排查,为提升芯片设计可靠性提供系统性的避坑指南。

weixin_29219189的博客 837

ZOJ 3177 Elune's Arrow(解析几何)

Description Priestess of the Moon (PotM) is a very interesting hero in the game Defense of the Ancients (DotA). Here is the official description of PotM: “A matriarch and high priestess of Elune’s ble...

Izayoi_w的博客 565

Seedance 2.5本地部署指南:AI生图与视频生成的完整实践

最近在AI生成内容领域,本地部署方案越来越受到开发者关注。特别是Seedance 2.5的发布,让很多原本依赖云端服务的用户开始转向本地化解决方案。本文将从实际使用角度出发,完整介绍Seedance 2.5的本地部署流程、功能特性对比以及实际应用技巧。 1. Seedance 2.5核心特性解析 1.1 什么是Seedance 2.5 Seedance 2.5是一款开源的AI生图和视频生成工具,支持在本地环境运行,无需联网即可实现高质量的图像和视频生成。相比之前的2.0版本,2.5在生成质量、运行效率和功能

weixin_42566121的博客 1673

【实战教程】OpenClaw接入MySQL数据库实战指南

本文介绍了在虚拟机Ubuntu中访问宿主机Win11中MySQL数据库的配置方法,重点包括创建远程用户、权限配置和安全设置。首先在MySQL中创建具有只读权限的用户并刷新权限,然后调整服务器设置允许远程连接。文章还提供了某金融机构财富管理系统的数据库设计方案,包含理财产品表、客户表和份额表的核心结构,其中金额字段使用DECIMAL类型确保精度,并设置唯一键约束。文末强调测试环境配置完成后应恢复安全更新模式以保障生产环境安全。

海兰 8697

月神之箭(Elune’s Arrow)

月神之箭(Elune’s Arrow) (10102510352) 问题描述     在游戏dota(TheDefense of Ancients,暴风雪集团的一款RPG游戏,深受广大青少年的喜爱,本人曾经在一段时间内十分欣赏该款游戏)中,有一个英雄叫月亮之神(以下简称POM),她的第二个招数叫“月神之箭”,这招能给敌人带来巨大的伤害。当POM的箭沿着直线飞出后,击中敌人便会消失。

FromAndroid 937

电化学-论文分享-NanoStat: An open source, fully wireless potentiostat

本文主要分享论文NanoStat: An open source, fully wireless potentiostat,并记录学习笔记。如果有条件,建议看原文最好。

分享技术笔记,希望对大家能够有一定的帮助,同时也通过归纳总结提升自己的个人能力。 2873

Cupid's Arrow

传说世上有一支丘比特的箭,凡是被这支箭射到的人,就会深深的爱上射箭的人。 世上无数人都曾经梦想得到这支箭。Lele当然也不例外。不过他想,在得到这支箭前,他总得先学会射箭。 日子一天天地过,Lele的箭术也越来越强,渐渐得,他不再满足于去射那圆形的靶子,他开始设计各种各样多边形的靶子。 不过,这样又出现了新的问题,由于长时间地练习射箭,Lele的视力已经高度近视,他现在甚至无法判断他的箭射到了靶子...

Cworld2017的博客 1059

MVDR算法: 自适应波束形成在信号处理领域中扮演着重要的角色。本文将介绍MVDR(最小方差无失真响应)算法,并提供相应的Matlab源代码实现。

MVDR算法是一种用于抑制干扰信号并增强感兴趣信号的自适应波束形成算法。它的基本思想是通过对干扰信号进行空间滤波,使其在感兴趣信号方向上的输出功率最小化。这种方法可以提高信号的质量和可辨识度,特别是在存在多个干扰源的复杂环境中。本文将介绍MVDR(最小方差无失真响应)算法,并提供相应的Matlab源代码实现。使用MVDR算法,我们可以通过对观测信号进行波束形成来抑制干扰信号并增强感兴趣信号。以上是MVDR算法的Matlab实现。的每一列代表一个阵列元素的观测信号。表示期望的波束指向,即感兴趣信号的方向。

HackWhisper的博客 1245

自然语言处理NLP星空智能对话机器人系列:Gavin大咖 Transformer 101问答集 第一问

自然语言处理NLP星空智能对话机器人系列:Transformer 101问答 [让天下没有难学的Transformer] 你问我答系列之一 Gavin大咖第一问: Transformer中的可训练Queries、Keys和Values矩阵从哪儿来? 以上是智华解答,供同学们参考。 星空智能对话机器人系列博客 NLP星空智能对话机器人系列:第二次星空智能对话机器人Zoom线上演示安排 NLP星空智能对话机器人系列:StarSpace: Embed All The Things NLP星空智能对

大模型与Agent智能体 991

a人左扶手,b人右扶手,c人双扶手,z人不用扶手,求最多几人一起观看电影。

月赛第一次做上了5题!!放上来纪念一下,一道超级细心的分类讨论题,只有你想不到的情况。。。 #include #define mod 1000000007 #define ll unsigned long long using namespace std; int main(){ int t; scanf("%d",&t); while(t--){ ll n,m,z,a,b,c;

芒果街上的小屋(此博客暂时停用) 5万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

是否可以删除一个字母之后变成回文串

题目描述 给出一个字符串,仅由小写字母组成。请找出是否仅删除其中的一个字母之后, 字符串变成回文串。 输入 输入第一行是一个整数 T,表示有 T 组数据。 每组数据占一行,每行包含一个非空字符串,字符串长度不超过 105 。   输出 对于每组测试数据,输出一行包含一个整数 K ,表示删除字符串中第 K 个字 

芒果街上的小屋(此博客暂时停用) 1786

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【codechef】交换字符串S的两个位置上的字符,求有多少对AB不相似

有一种操作,是交换字符串的两个位置上的字符(位置可以一样)。对于两个字符串A、B,如果分别对它们做这个操作后得出一样字符串C,那么称AB相似。 现在给出一个字符串S,A和B分别都是它的全排列里的一种。现在求有多少对A、B满足AB不相似。 //相似:A变化成C,B也变化成C,那么AB相似。那么不妨设B不动,A变化两次是否能到B。 //假设B是随便取的,A是顺着B取的,那么B在取每一种排列时都有

芒果街上的小屋(此博客暂时停用) 1614

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

hdu 5206:Four Inages Strategy(判断四个点能否组成正方形)

小F在祖屋中意外发现一本上古时代传承下来的秘籍,名为《四象阵法》,他按捺不住内心的激动,翻开秘籍,一字一句地读了起来,“用四块元石作为阵基摆放在空间四处位置,如果四块元石形成一个正方形,则阵法激活,有杀敌困敌之效”,小F走遍五湖四海,终于集齐了四块元石,并将四块元石放置在四个坐标点上,可是他不知道阵法是否能够成功激活,于是,由你来告诉他答案。 输入描述 第一行只有一个整数T(T≤10000

芒果街上的小屋(此博客暂时停用) 1257

POJ2411: Mondriaan's Dream(1*2铺地砖,DP)

Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his 'toilet series' (where he had to use his toilet paper to draw on, for all of h

芒果街上的小屋(此博客暂时停用) 1184

CF116D 一开始往右扫,每换下一行要换方向扫,问扫完草至少经过的步数

草是'W'。难点是很容易漏情况。 input 4 5 GWGGW GGWGG GWGGG WGGGG output 11 #include #include #include #include//int dx[4]={0,0,-1,1};int dy[4]={-1,1,0,0}; #include//int gcd(int a,int b){retu

芒果街上的小屋(此博客暂时停用) 960

【百度之星初赛】 超级赛亚ACMer(灵活题)

百小度是一个ACMer,也是一个超级赛亚人,每个ACMer都有一个战斗力,包括百小度。
所谓超级赛亚人的定义,是说如果在对抗中刚好接近极限状态,那就会激发斗志,实力提升. 具体来说,就是百小度现在要接受一些ACMer的挑战了,这些ACMer有n个人,第i个人的战斗力是a[i]。 
百小度接下来可以自主安排与这n个ACMer的PK顺序,他要想在PK赛中赢过另外一个

芒果街上的小屋(此博客暂时停用) 948

CERC2014 Can't stop playing(一维2048)

https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4943 注意点蛮多的。。。数列大小一定是先上升后下降的,也就是“^”形状。所以可以分成左右两部分s1,s2 #include #include #include #include

芒果街上的小屋(此博客暂时停用) 946

hznu 1628: 旅行家的预算(贪心,分类)

一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格Pi(i=1,2,……,N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No Solution”。 输入  

芒果街上的小屋(此博客暂时停用) 862

hdu4121 判断黑帅下一步会不会被红棋将军(分类讨论)

现在还是wa的,心好累,先放着。。。 #include #include #include #include//int dx[4]={0,0,-1,1};int dy[4]={-1,1,0,0}; #include//int gcd(int a,int b){return b?gcd(b,a%b):a;} #include #include #include #include #include

芒果街上的小屋(此博客暂时停用) 852

田忌赛马,求赢得的最大分数(分类,脑洞题)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1052 题解:http://blog.youkuaiyun.com/dgq8211/article/details/7370765 关键的话是要想到从田最慢和齐最慢的比较寻找方案。。。 #include using namespace std; int tian[1005],qi[1005]; int n; in

芒果街上的小屋(此博客暂时停用) 843

zoj 3331 Process the Tasks(双塔DP)

There are two machines A and B. There are n tasks, namely task 1, task 2, ..., task n. You must assign each task to one machine to process it. There are some facts you must know and comply with: Yo

芒果街上的小屋(此博客暂时停用) 812

【codechef】Devu and his Class(巧妙的 模拟,分类讨论)

Devu is a class teacher of a class of n students. One day, in the morning prayer of the school, all the students of his class were standing in a line. You are given information of their arrangement by

芒果街上的小屋(此博客暂时停用) 801

计算1到N中1出现的次数(分类讨论,数论)

这题很有意思。 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。 例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。 想象空间——————————————————————————————————

芒果街上的小屋(此博客暂时停用) 698
上一篇: 【codechef】Chef and A Large Permutation(技巧题)
下一篇: zoj 3331 Process the Tasks(双塔DP)
ccyy-
博客等级 码龄12年 31粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值