【貌似是改编题】Expanding Rods

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

这里写图片描述
这里写图片描述

对这类输出形式的题目只要满足他的精度要求就行了,精度以后不同不必考虑。
只要找准其中的几何关系对h进行二分法求值,使其无限接近满足精度要求的真实值。
找准几何关系:
1.R=h+sqrt(R*R-l/2*l/2);求出R(直接用程序语言表示了哈)
2.半圆心角θ=arcsin(l/(2*R))
3.l*=2θ·π·R/π=2θ·R
与这个题类似:
http://blog.csdn.net/better_space/article/details/52043559

#include<stdio.h>
#include<math.h>
double l,n,c;
bool judge(double R) {
    return 2*asin(l/(2*R))*R<(1.0+n*c)*l;
}
int main() {
    int T,id=0;
    scanf("%d",&T);
    while(T--) {
        scanf("%lf%lf%lf",&l,&n,&c);
        double left=0,right=l/2;
        double mid;
        while(fabs(right-left)>1e-12) {
            mid=(left+right)/2.0;
            double R=(l*l+4*mid*mid)/(8*mid);
            if(judge(R))
                left=mid;
            else
                right=mid;
        }
        printf("Case %d: %.7lf\n",++id,mid);
    }
    return 0;
}

http://acm.hust.edu.cn/vjudge/contest/123973#problem/F

MATLAB实现的两级OPF与电动车充电调度,用于配电网络.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

相关推荐

Python 寄存器位域解析与 JSON 配置工具(芯片开发+寄存器/位域+解析源码+寄存器转储分析)

根据 JSON 指定位宽和字段起止位,解析寄存器数值并显示枚举含义。包含重叠字段、重复名称、位范围和输入数值检查。 适用于嵌入式软件开发人员、驱动开发入门者及相关技术学习者。资源包含源码或模板、使用说明及验证范围说明。Python 3.10+,仅使用标准库;寄存器宽度 1 至 64 位。 功能边界见 README.md,实际验证情况见 TESTING.md。

poj1905 Expanding Rods

链接:http://poj.org/problem?id=1905

u012914220的专栏 467

【数字电源/MATLAB+PLECS】如何进行 Buck 数字电源仿真(二)PLECS 搭建开环 Buck 功率级

本文介绍了如何在PLECS中搭建开环Buck功率级模型,验证数字电源设计的基本思路。重点内容包括: 明确开发顺序:先开环验证功率级,再闭环设计控制器 搭建关键组件:输入电源、PWM模块、MOSFET开关、续流二极管、LC滤波电路及负载 设置初始参数:24V输入、12V输出、200kHz开关频率、22μH电感、100μF电容 测量关键波形:MOSFET Vds验证开关动作、电感电流纹波和输出电压稳态值 提供完整仿真模型和GitHub资源,便于读者复现验证 文章强调通过开环测试先确保功率级正确性,为后续闭环控制

weixin_43234123的博客 1153

【杭电2141】Can you find it?

我首先想到的是三重循环----超时,后来想前两个数组双重循环套第三个数组二分查找----还是超时,再后来就是现在的代码思路了300多ms。 其实和第二种想法很接近了,就是二分的对象变了,对第三个数组遍历循环,对前两个数组各项求和得到的数组求二分,因为这样就大大大大减少了循环次数,二分是省时间的嘛。 本难点算法优化。 #include<cmath> #include<algorithm> #in

better_space的博客 828

【985系列】985的0-1串难

1895: 985的0-1串难 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 270  Solved: 79 SubmitStatusWeb Board Description 985有一个长度为n的0-1串,已知他最多可以修改k次(每次修改一个字符即0->1 或者 1->0),他想知道连续的全1子串最长是多少。

better_space的博客 658

【杭电oj4907】Task schedule

由于数据太大暴力循环会超时,如果先打表预处理一下就行了。#include <iostream> #include <stdio.h> #include <string.h> using namespace std; const int maxn=1e5+5; int a[maxn*2]; int b[maxn*2]; void prepare() { int ans=maxn*2;

better_space的博客 649

【杭电1969】Pie

也是卡精度的二分目,我只是一个π的定义方式不同就给wa,记得以后π的定义用const double PI = acos(-1.0),就是cos函数下求π,括号内要用浮点数。 整体思路和我cable master那篇文章一样的。链接: http://blog.csdn.net/better_space/article/details/52039880#include<stdio.h> #

better_space的博客 573

【九度1502】最大值最小化

目1502:最大值最小化 时间限制:1 秒 内存限制:128 兆 特殊判:否 提交:566 解决:214 目描述: 在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要。 当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写m本书,编号为1,2,3...m

better_space的博客 523

【lightoj1307】Counting Triangles

J - J 圆周率用acos(-1.0) 使用longlong Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Practice LightOJ 1307 uDebug Description You are given N sticks

better_space的博客 462

【codeforces】706B—Interesting drink

B. Interesting drink time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Vasiliy likes to rest after a hard wor

better_space的博客 445

【杭电1551】Cable master

意:把4段网线分成11段每段至多多长。 现在总结一下二分的思想和步骤吧: 1.找到二分标准,就是对什么进行二分 2.找到两个临界点 3.判断mid时,是否满足条件,然后视情况更新l和r的值 4.我认为最重要的是while()括号内的条件选择,特别是对这种卡精度的。#include<stdio.h> #include<math.h> const int MAXN = 1*1e4+10;

better_space的博客 438

【codeforces237C】Primes on Interval

C. Primes on Interval  time limit per test1 second  memory limit per test256 megabytes  inputstandard input  outputstandard output  You’ve decided to carry out a survey in the theory of prime num

better_space的博客 434

【Uva10566】Crossed Ladders

列出一个包含x,y,c的关系式,设宽为w,底边垂线左边为a,根据相似三角形关系: 1.a/w=c/sqrt(y*y-w*w); 2.(w-a)/w=c/sqrt(y*y-w*w); 两式合并消去a得: c/sqrt(x*x-w*w)+c/sqrt(y*y-w*w)=1; 能推出c与w有同增同减关系,所以当带入mid小于1时,实际w大于mid;反之小于mid,以此二分,再注意精度即可(误差小

better_space的博客 405

【杭电4004】The Frog's Games

思路:本用到了二分的思想。青蛙一次跳跃的范围是0到L(给),然后判断在一次跳跃距离为mid时能否在m次跳跃内完成,如果能完成则用一个变量记录mid,遇到更小的符合条件的一次跳跃的距离后更新该变量的值。直接输出该变量。#include<stdio.h> #include<algorithm> using namespace std; const int MAXN = 5*1e5+10; int a

better_space的博客 386

【NBUTOJ】Red packet

经过前面的一番折腾,这种已经不是问。 只是考虑全面就行了。 意:发红包准备发m块钱,n个人,已经发了k个人。 求要成为运气王,至少需要在剩余的钱中得到多少钱,每人得到的钱数都大于0.#include<stdio.h> #include<math.h> #include<algorithm> using namespace std; const int MAXN = 1*1e5+10; i

better_space的博客 375

【poj3258】River Hopscotch

虽是二分的,但感觉就是别扭,很难想清楚怎么设置判断。我也是看了别人的判断过程及判断依据后才成功ac。值得收藏的二分。 判断的过程我尽量解释一下,有不清楚的地方请参阅网址: http://www.cnblogs.com/jingqi814/p/3581553.html这样讲应该能理解的: 1.首先去掉M个石头后两个石头之间会有最小的距离,本让求这个最小距离的最大值。 2.我们二分是在

better_space的博客 362

【暑期训练3】晴天系列D

Problem F: D Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 178  Solved: 38 SubmitStatusWeb Board Description 晴天想把一个包含n个整数的序列a分成连续的若干段,且和最大的一段的值最小,但他有强迫症,分的段数不能超过m段,然后他就不会分了。。。他想问你这个分出来的

better_space的博客 341

【杭电2199】Can you solve this equation?

卡精度,精确到小数点后第四位,所以while()条件用<1e-5作为限制,不能受整数二分方法的限制,重要的是二分思想,本只要让r或l直接等于mid即可,因为浮点型除以2后不存在约数是个确定的值,不符合while()条件就跳出输出mid,简洁明了。 还有其他的二分方法,不过这个理解起来最为简单,我也是借鉴别人的代码综合而来的,却是是受益匪浅。#include<stdio.h> #include

better_space的博客 341
上一篇: 【Uva10566】Crossed Ladders
下一篇: 【poj3258】River Hopscotch
better_space
博客等级 码龄10年 73粉丝 253原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值