ZOJ 4111 Square on the Plane (数值分析+分类讨论)

浙大数值分析lab2 最可怕的一道题,题目是这样的 Root of a Polynomial A polynomial of degree nnn has the common form as p(x)=cnxn+cn−1xn−1+⋯+c1x+c0p(x)=c_n x^n + c_{n-1} x^{n-1} + \cdots + c_1 x + c_0p(x)=c​n​​x​n​​+c​n−1​​x​ 阅读详情

Source The 16th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple - Problem L
Accepted
组团狙击 大 失 败,还是 Claris 比较快,
不过讲道理其他题都不是我做的,拼不过罚时也不能怪我现场没过这个没什么希望现场过的 L 题吧(正论)。

总之先画个图,
Overall
所求即为点 P P P 从 A ( a , 0 ) A(a,0) A(a,0) 出发沿着椭圆 x 2 a 2 + y 2 b 2 = 1 \frac{x^2}{a^2}+\frac{y^2}{b^2}=1 a2x2​+b2y2​=1 逆时针走 t t t 个单位长度之后,以 P P P 为中心 2 ∣ y P ∣ 2|y_P| 2∣yP​∣ 为边长的边与坐标轴平行的正方形 S S S 扫过的面积(这里无论正方形是否包含内部,结果都是一样的),

不难发现,上半平面和下半平面是完全独立的,记椭圆的周长为 c c c,那么只需要考虑 0 ≤ t ≤ c 2 0 \leq t \leq \frac{c}{2} 0≤t≤2c​ 的情况,

先考虑给定 P P P 计算 t t t 也就是从 A A A 出发沿着椭圆逆时针走到 P P P 的长度,令
{ x P = a cos ⁡ θ , y P = b sin ⁡ θ , \begin{cases} x_P=a\cos\theta,\\ y_P=b\sin\theta, \end{cases} {xP​=acosθ,yP​=bsinθ,​ 那么有
t = ∫ 0 α a 2 − ( a 2 − b 2 ) cos ⁡ 2 θ   d θ , t=\int_{0}^{\alpha}\sqrt{a^2-(a^2-b^2)\cos^2\theta}~d\theta, t=∫0α​a2−(a2−b2)cos2θ ​ dθ, 其中 α = arccos ⁡ ( x P a ) \alpha = \arccos(\frac{x_P}{a}) α=arccos(axP​​),就可以转化为第二类不完全椭圆积分,使用 std::tr1::ellint_2 函数进行计算,顺便也可以算出椭圆的周长 c c c,
现在对于给定的 α \alpha α,已经可以计算出 t ( α ) t(\alpha) t(α),且易知 t ′ ( α ) = a 2 − ( a 2 − b 2 ) cos ⁡ 2 α t'(\alpha)=\sqrt{a^2-(a^2-b^2)\cos^2\alpha} t′(α)=a2−(a2−b2)cos2α ​,就可以通过牛顿迭代在给定 t t t 时解出 α \alpha α,进而求出点 P P P 的坐标,实测取初值 π 2 \frac{\pi}{2} 2π​ 迭代 4 4 4 次精度就够了,

接下来考虑正方形 S S S 扫过的面积,分四种情况讨论,
Case1
第一种情况,椭圆在点 P P P 处的切线斜率 < − 1 < -1 <−1,即 x P > a 2 a 2 + b 2 x_P > \frac{a^2}{\sqrt{a^2+b^2}} xP​>a2+b2 ​a2​,
此时扫过的面积就是 t t t 时刻正方形的面积 4 y P 2 4y_P^2 4yP2​,

Case2
第二种情况,椭圆在点 P P P 处的切线斜率 ∈ [ − 1 , 0 ] \in [-1,0] ∈[−1,0],即 0 ≤ x P ≤ a 2 a 2 + b 2 0 \leq x_P \leq \frac{a^2}{\sqrt{a^2+b^2}} 0≤xP​≤a2+b2 ​a2​,
此时扫过的面积可以分为一个正方形的面积 4 y P 2 4y_P^2 4yP2​ 和一个曲边梯形的面积,
而曲边梯形的面积可以继续分为一个矩形的面积 2 b 2 a 2 + b 2 ⋅ ( a 2 + b 2 − ( x P + y P ) ) \frac{2b^2}{\sqrt{a^2+b^2}}\cdot(\sqrt{a^2+b^2}-(x_P+y_P)) a2+b2 ​2b2​⋅(a2+b2 ​−(xP​+yP​)) 和一个曲边三角形的面积,
不难求出正方形的右上角 Q Q Q 的轨迹方程为
( x − y / 2 ) 2 a 2 + y 2 4 b 2 = 1 , \frac{(x-y/2)^2}{a^2}+\frac{y^2}{4b^2}=1, a2(x−y/2)2​+4b2y2​=1, 那么曲边三角形的面积为
s = ∫ 2 b 2 a 2 + b 2 2 y P ( x ( y ) − ( x P + y P ) )   d y = ∫ 2 b 2 a 2 + b 2 2 y P ( a 1 − y 2 4 b 2 + y 2 − ( x P + y P ) )   d y , s=\int_{\frac{2b^2}{\sqrt{a^2+b^2}}}^{2y_P}(x(y)-(x_P+y_P))~dy=\int_{\frac{2b^2}{\sqrt{a^2+b^2}}}^{2y_P}(a\sqrt{1-\frac{y^2}{4b^2}}+\frac{y}{2}-(x_P+y_P))~dy, s=∫a2+b2 ​2b2​2yP​​(x(y)−(xP​+yP​)) dy=∫a2+b2 ​2b2​2yP​​(a1−4b2y2​ ​+2y​−(xP​+yP​)) dy, 这个积分比较基础,这里就不展开了,

Case3
第三种情况,椭圆在点 P P P 处的切线斜率 > 1 >1 >1,即 x P < − a 2 a 2 + b 2 x_P < -\frac{a^2}{\sqrt{a^2+b^2}} xP​<−a2+b2 ​a2​,
此时扫过的面积就是一整块的面积,可以转化成第二种情况代入横坐标 0 0 0 进行计算,

Case4
第四种情况,椭圆在点 P P P 处的切线斜率 ∈ ( 0 , 1 ] \in (0,1] ∈(0,1],即 − a 2 a 2 + b 2 ≤ x P < 0 -\frac{a^2}{\sqrt{a^2+b^2}} \leq x_P < 0 −a2+b2 ​a2​≤xP​<0,
此时扫过的面积是第三种情况中一整块的面积减去一个曲边梯形的面积,而曲边梯形的面积可以转化成第二种情况代入横坐标 − x P -x_P −xP​ 进行计算,

至此所有情况都讨论完了,由于数据组数较多,还需要精细地实现以避免超时。

2025.01.09更新:当年在ZOJ上的代码已经找不回来了,在QOJ重新写了一份。

数值分析考试死记硬背点总结 说明:这里只是为了考试而补充的必记知识点,系统的复习还是要看:数值分析专题目录第一部分:1、高斯公式的高斯点:2、最佳平方逼近的区间变换问题:一般地,求函数f(x)在区间[a,b]上的n次最佳平方逼近时,只要作代换将区间[a,b]变为[-1,1],就可以取Legendre正交多项式作为基函数,求出在[-1,1]上的最佳平方逼近,从而得到f(x)在[a,b]上的最佳平方逼近函数。3、Legendre... 阅读详情

相关推荐

数值分析实验报告 Lab1 误差的影响

数值分析实验报告 Lab1 误差的影响 一、问题引出 (一)问题实例: 利用 nnn 阶泰勒展开多项式 ∑i=0n(xii!)\sum\limits_{i=0}^n(\frac{x^i}{i!})i=0∑n​(i!xi​) 计算函数 f(x)=exf(x)=e^xf(x)=ex 在给定 xxx 的值。要求绝对误差在最大阶数 MAXN=20MAXN=20MAXN=20 以内达到给定精度 EPS=0....

PzLu's Blog 1883

Codefroces 725B Food on the Plane【模拟】

B. Food on the Plane time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output A new airplane SuperPuperJet has an infinite num

mengxiang000000 761

数值分析PTA第一题

请数值分析课的同学切勿直接使用代码提交,谢谢 Produce a table of the values of the series ϕ(x)=∑∞k=01k(k+x)\phi(x)=\sum_{k=0}^\infty \frac{1}{k(k+x)} for the for the 3001 values of xx, xx = 0.0, 0.1, 0.2, …, 300.00. All e

sinat_26989191的博客 4206

HDU-4111 Alice and Bob(博弈 + 记忆化搜索)

Alice and Bob are very smart guys and they like to play all kinds of games in their spare time. The most amazing thing is that they always find the best strategy, and that's why they feel bored again and again. They just invented a new game, as they usuall

yo_bc的博客 619

数值分析实习题完整版

数值分析中一些 三次样条,龙格库塔,阿当姆斯等多种算法的实现

浙江大学数值分析实验1

数值分析实验1 汉明级数求和 计算汉明级数: ϕ(x)=∑k=1∞1k(k+x),x=0.0,0.1,0.2...299.9,300.0

【BZOJ 4031】[HEOI2015]小Z的房间 基尔霍夫矩阵

裸题,就是一开始把柱子当成树的节点然后wa了 已发#include #include #include #define LL long long #define Mod 1000000000 using namespace std; int n,m,cnt,mat[85][85]; LL a[85][85],ans=1; char s[12][12]; inline int Q(int a,int

pbihao的博客 331

BCM-BCP-DRP-运维管理之故障管理——故障的分类与处理流程

ITSM Business Continuity Manage(BCM) BusinessContinuityPlan(BCP) 偏业务 DisasterRecoveryPlan(DRP) 偏IT 天塌了,考虑在天塌了的状态下做什么,怎么开展业务就是BCP; 天塌了,考虑怎么把天撑回去,就是DRP。 DRP+BCP+供应链管理+危机管理等就是BCM (业务连续性管...

mmgithub123的博客 2722

Squares

Squares原题:Description      A square is a 4-sided polygon whose sides have equal length and adjacent sides form 90-degree angles. It is also a polygon such that rotating about its centre by 90 degrees gives the same polygon. It is not the only polygon with

JJ 407

grpc安装与简单demo测试

grpc安装: 由于工作需要,最近在学google的rpc开源框架;由于本人菜鸟一枚,而且是从Windows开发转到Linux;由于之前版本控制使用的是svn,没有使用过git,所以从GitHub上下载代码是通过浏览器下载zip格式的压缩文件,折腾了好几天了,发现了各种坑,各种缺少库,各种不知道怎么把这个库给装机器上。对于一个不熟悉Linux的人来说,这个体验简直糟糕透了。没办法了又在机器上装了...

old__captain的博客 4833

多周期路径及set_multicycle_path详解

默认情况下,每条路径都被定义为单周期,即源触发器在时钟的任一边沿启动(launch)的数据都应该由目的触发器在时钟的下一上升沿捕获(capture)。 有的设计需要在数据被捕获前提供一些额外的周期,这类路径被称为多周期路径。 一、set_multicycle_path命令 命令格式如下: set_multicycle_path .........

Jackiezhang1993的博客 4万+

ZOJ3516 Tree of Three

递归遍历树,DFS /******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modified: 2012-01-16 17:58 # Filename: ZOJ35

Neo Fung的专栏 587

倍福--手动加入第三方伺服的配置

客户在没有硬件情况下,希望手动配置硬件,添加第三方驱动器,本文介绍其操作流程 目 录 软硬件版本 3 1.1. 倍福Beckhoff 3 1.1.1. 控制器硬件 3 1.1.2. 控制软件 3 操作步骤 3 2.1. 添加电机XML文件 3 2.2. 创建EtherCAT 3 2.3. 添加新建项 3 2.4. 选择型号 4 2.5. 关联NC轴 5 软硬件版本 1.1. 倍福Beckhoff 1.1.1. 控制器硬件 TwinCAT控制制器,PC或者EPC,包括: 嵌入式控制器:CX5020-

weixin_41883890的博客 5325

ZOJ - 3201 Tree of Tree

题意:给你一棵树n个点的权值,求节点个数总的为k的最大的权值 思路:不算太难的树形DP #include #include #include #include #include using namespace std; const int MAXN = 110; int dp[MAXN][MAXN]; int val[MAXN],n,k; vector arr[MAXN]; vo

那些年 1246

【HAL库】STM32CubeMX开发----STM32F407----ETH+LAN8720A+LWIP----ping通

本次实验以芯片为MCU,使用25MHz外部时钟源。以太网PHY层芯片为LAN8720A,由MCU引脚PA8提供时钟。

MQ0522的博客 4843

Qt 【window udp 高频采集丢包问题】

使用Asio + 无锁队列或者环形缓存区方案可以解决 qt udp 在window平台高速采集 (128k)丢包问题。

weixin_45397344的博客 177

HDU-4031-Attack(树状数组)

Problem Description Today is the 10th Annual of “September 11 attacks”, the Al Qaeda is about to attack American again. However, American is protected by a high wall this time, which can be t...

weixin_34090643的博客 137

RT-DETR算法优化改进:轻量级上采样CARAFE算子 | 注意力机制大作战

上采样操作CARAFE,具有感受野大、内容感知、轻量级、计算速度快等优点,引入RT-DETR二次创新;1)代替Upsample进行使用;

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1265

[NA]Lab3:免费午餐-求解周期性三对角阵方程组

任务概述数值分析课程的第三个实验,CYLL想要计算免费午餐菜单n道菜中每一道菜did_i的真实价格pip_i。每道菜的标价ci=0.5pi−1+2pi+0.5pi+1c_i=0.5p_{i-1}+2p_i+0.5p_{i+1}。其中,−1≤i≤n,p−1=pn−1,pn=p0-1\le i\le n,p_{-1}=p_{n-1},p_{n}=p_{0}.函数接口定义:void Price( int

qq_32096491的博客 2193

OpenCV简单应用:图像模糊处理

OpenCV是一个广泛使用的开源计算机视觉库,提供了丰富的图像处理和计算机视觉算法。本文将介绍如何使用OpenCV对图像进行模糊处理,并提供相应的源代码。该函数接受两个参数:第一个参数是输入图像,第二个参数是指定模糊核大小的元组。在这个例子中,我们使用了一个5x5的模糊核。您可以尝试不同大小的模糊核,以获得不同程度的模糊效果。函数和指定不同大小的模糊核,我们可以实现不同程度的模糊效果。该函数接受两个参数:第一个参数是窗口的名称,第二个参数是要显示的图像。在上面的代码中,我们首先使用。要运行上述代码,请将。

MwgmPhilosophy的博客 290

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

gym101628 problemD Don't Lose The Droid 水题 瞎写

http://codeforces.com/gym/101628/problem/D 题意: 给一个n*m的矩阵,有一个探测器在矩阵上乱跑,给出T个记录,第i个记录表示i时刻探测器位置的变化情况,问你在T时刻后,最少要探测几个方块 才能确保找到这个探测器。水题,瞎写即可。。。。。#include<iostream> #include<set> #include<queue> #include<ve

lifelike 519

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ZOJ 4031 Game on a Tree 树形DP

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5772 BaoBao is playing a game on a rooted tree with vertices and weighted edges. At the beginning of the game, a chess piece is placed on ...

lifelike 1619

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

深挖C++:类和对象(中)

(先进后出)

xys_678的博客 240

ThunderKittens 深度解析:一个不基于 MLIR 的 C++ 模板 GPU DSL

Triton 是"让更多人能写 GPU kernel",ThunderKittens 是"让会写的人写得更爽"。前者用 MLIR 换易用性,后者用 C++ 模板换可控性。它们不是替代关系,而是覆盖了 GPU 编程光谱的两端。ThunderKittens 的出现,本质上是对"GPU DSL 必须基于 MLIR"这一默认假设的挑战。编译期类型系统本身就可以是一个强大的 DSL 基础设施,不需要中间 IR,不需要黑盒 pass,也能实现 tile 级抽象和零运行时开销。

Maxwell_Newton的博客 339

C++移动构造函数详解

移动构造函数是C++11引入的一种特殊构造函数,用于从临时对象(右值)"窃取"资源来初始化新对象,而不是进行昂贵的深拷贝。char* data;public:// 移动构造函数:参数是右值引用 &&// 关键:把源对象的资源置空。

拒绝AI文,努力在AI时代写出感动人心的好文章 391

跟我学c++中级篇—类型定义的方式

本文系统阐述了编程中类型定义的重要性及c++中的实现方式。重点对比了宏定义、typedef与modern using三种机制,指出using在可读性、灵活性和模板支持上的优势,推荐优先使用。同时提醒开发者注意别名滥用、类型歧义、错误信息冗长等问题,强调统一规范与合理设计。最终结论:在现代c++开发中,应以using为主,兼顾简洁性与可维护性,避免陷入命名混乱与编译困境。

fpcc的专栏 70
上一篇: ACM ICPC 2018 Asia Region - Tehran Site Solution Sketch
quailty
博客等级 码龄12年 384粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值