1. 程式人生 > >poj3737(三分搜尋)

poj3737(三分搜尋)

題意:給出一個圓錐的表面積(側面積+底面積),求圓錐的最大體積。

解法:三分半徑。左邊界隨便取個極小的數,右邊界可以假定這個圓錐是平的,高是0.這是底面積的二倍是表面積。

程式碼:

/******************************************************
* author:xiefubao
*******************************************************/
#pragma comment(linker, "/STACK:102400000,102400000")
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <queue>
#include <vector>
#include <algorithm>
#include <cmath>
#include <map>
#include <set>
#include <stack>
#include <string.h>
//freopen ("in.txt" , "r" , stdin);
using namespace std;

#define eps 1e-8
const double pi=acos(-1.0);
typedef long long LL;
const int Max=10100;
const int INF=1000000007;

double v;
double vol(double r)
{
    double tool=v-pi*r*r;
    double len=tool/pi/r;
    double high=sqrt(len*len-r*r);
    return pi*r*r*high/3.0;
}

double gethigh(double r)
{
    double tool=v-pi*r*r;
      double len=tool/pi/r;
    return sqrt(len*len-r*r);
}
int main()
{
    while(scanf("%lf",&v)==1)
    {
        double left=0.1,right=sqrt(v/2.0/pi);
        while(right-left>eps)
        {
            double middle=(left+right)/2;
            double middleright=(middle+right)/2;
            if(vol(middle)>vol(middleright))
                right=middleright;
            else
                left=middle;
        }
        double high=gethigh(left);
        printf("%.2f\n",left*left*pi*high/3.0);
        printf("%.2f\n",high);
        printf("%.2f\n",left);

    }
    return 0;
}

相關推薦

poj3737搜尋

題意:給出一個圓錐的表面積(側面積+底面積),求圓錐的最大體積。 解法:三分半徑。左邊界隨便取個極小的數,右邊界可以假定這個圓錐是平的,高是0.這是底面積的二倍是表面積。 程式碼: /*******************************************

bzoj5164: 餐廳計劃問題+貪心

費用流 body play gpo return == while get tchar   網絡流經典題裏餐巾計劃的加強版...天數變成了$10^5$,那就不能用費用流做了...   考慮費用流的時候,單位費用隨流量的增加而減少,也就是說費用其實是個單峰(下凸)函數。

HDU-2438-Turn the corner+思維

Problem DescriptionMr. West bought a new car! So he is travelling around the city. One day he comes to a vertical corner. The street he is currently in ha

BZOJ4868 Shoi2017期末考試+貪心

  容易想到列舉最晚釋出成績的課哪天釋出,這樣與ti和C有關的貢獻固定。每門課要麼貢獻一些調節次數,要麼需要一些調節次數,剩下的算貢獻也非常顯然。這樣就能做到平方級別了。   然後大膽猜想這是一個凸函式三分就能A掉了。具體的,延遲最晚時間一方面會增加學生的不愉快度,這顯然是時間越晚不愉快度增加量越大的,導數

HihoCoder 1142-求極值模板

描述 這一次我們就簡單一點了,題目在此: 在直角座標系中有一條拋物線y=ax^2+bx+c和一個點P(x,y),求點P到拋物線的最短距離d。 輸入 第1行:5個整數a,b,c,x,y。前三個數構成拋物線的引數,後兩個數x,y表示P點座標。-200≤a,b,c,x,y≤200 輸出 第1行:1個

Codeforces 939E Maximize! 查詢

Output Output the answer for each query of the second type in the order these queries are given in input. Each number should be printed in separate line

bnu 51638 Air Hockey+二分北師16校賽

無聊的過河船同學和無聊的脹魚同學非常喜歡打桌上冰球(其實只是喜歡聽球碰撞時的聲音)。在無聊的一天,無聊的過河船同學想到了一個無聊的玩法:兩人同時將兩個球放桌面上,同時擊出,然後聽兩顆球撞在一起時的聲音。然而他們都對擊球的精確度把握得不是很好,所以這兩顆球並不一定能相撞。 現在假設桌面無限大,並且絕對光滑,給

ElasticSearch最佳入門實踐十五搜尋以及deep paging效能問題深度揭祕

1、如何使用es進行分頁搜尋的語法 size,from GET /_search?size=10 GET /_search?size=10&from=0 GET /_search?size=10&from=20 假設將這6條資料分成3頁,每一頁是2

洛谷3382 【模板】

printf log 含義 三分 tps ans 區間 bits int 如題,給出一個N次函數,保證在範圍[l,r]內存在一點x,使得[l,x]上單調增,[x,r]上單調減。試求出x的值。 輸入格式: 第一行一次包含一個正整數N和兩個實數l、r,含義如題目描述所示。

HDU 3400 Line belt

while freopen ios logs 三分 分享 -1 txt pri http://acm.split.hdu.edu.cn/showproblem.php?pid=3400 題意: 有兩條帶子ab和cd,在ab上的速度為p,在cd上的速度為q,在其它地方的速

POJ3977:Subset——題解+折半搜索

枚舉 cstring 不為 tdi bsp inline poj 折半 %d http://poj.org/problem?id=3977 題目大意:有一堆數,取出一些數,記他們和的絕對值為w,取的個數為n,求在w最小的情況下,n最小,並輸出w,n。 —&m

uva 1463 - Largest Empty Circle on a Segment二分++幾何

class tint str else if index.php typedef itemid abs topo 題目鏈接:uva 1463 - Largest Empty Circle on a Segment 二分半

企業布式微服務雲SpringCloud SpringBoot mybatis 十二spring boot做調度任務

tro 一次 tis com href 什麽 init boot 2.6 構建工程 創建一個Springboot工程,在它的程序入口加上@EnableScheduling,開啟調度任務。 @SpringBootApplication @EnableScheduling p

#10013 曲線 法模板題

ase ext namespace lin str scrip sel nts otto 【題目描述】     明明做作業的時候遇到了 n 個二次函數 S?i??(x)=ax?2??+bx+c,他突發奇想設計了一個新的函數 F(x)=max{Si(x)},i=1…n。 明

BZOJ3203 SDOI2013保護出題人

for 保護 維護 pan stdout line main sdoi2013 style   給a做一個前綴和,那麽現在每次所查詢的就是(sn-sk)/(bn+nd-(k+1)d)的最大值。這個式子可以看成是(bn+nd,sn)和((k+1)d,sk)所成直線的斜率。  

codeforces D. Nature Reserve(搜尋+公式最小圓覆蓋問題

轉載自https://blog.csdn.net/qq_38891827/article/details/82965187 題意 給你一些二維平面上的點,找一個與x軸相切的半徑最小的圓包含所有點。 做法 首先如果兩邊都有點的情況一定是找不到這樣的圓的,否則一定可以找到這樣的圓首先如果

ElasticSearch最佳入門實踐十八精確匹配與全文搜尋的對比分析

1、ES中的兩種搜尋模式 1、exact value 2、full text 2、exact value 2017-01-01,exact value,搜尋的時候,必須輸入2017-01-01,才能搜尋出來。如果你輸入一個01,是搜尋不

ElasticSearch最佳入門實踐十四multi-index & multi-type 搜尋模式解析以及搜尋原理解析

1、multi-index 和 multi-type 搜尋模式 告訴你如何一次性搜尋多個 index 和多個 type 下的資料 /_search:所有索引,所有type下的所有資料都搜尋出來 /index1/_search:指定一個ind

ACM_求第k大數

求第k大 Time Limit: 6000/3000ms (Java/Others) Problem Description: 給定兩個陣列A和B,大小為N,M,每次從兩個陣列各取一個數相乘放入陣列C,最終得到一個N*M的陣列C。求C中第K大的數。 Input: 輸入包含

TOJ3777 Function Problem

//三分 #include<iostream> #include<cstdio> #include<algorithm> #include<cmath&