1. 程式人生 > >天天寫演算法之Strange fuction

天天寫演算法之Strange fuction

這個主要是藥算斜率為0的點。如下程式碼
#include <iostream>
#include <iomanip>
#include<queue>
#include<math.h>
#include<algorithm>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include<iomanip>
#include<string.h>
#include<sstream>
#include<string>
#include<queue>
#define MAX 5842
//¶¨Ò庯Êý¶Î
#define repf(i,a,b) for(int i =(a);i<(b);i++)
#define repfe(i,a,b) for(int i =(a);i<=(b);i++)
using namespace std;

double getTemp(double a,double y)
{
    return  6*pow(a,7)+8*pow(a,6)+7*pow(a,3)+5*pow(a,2)-y*a ;
}

double getTendency(double x ,double y){

return 42*pow(x,6)+48*pow(x,5)+21*pow(x,2)+10*x-y;
}
double getRes(double left ,double right  ,double y)
{
    if(getTendency(100.0,y)<0)
    {
        return getTemp(100.0,y);
    }

    double res, mid = (left+right)/2;
    if(fabs(getTendency(mid,y)-0)<1e-10)
    {

        return mid ;
    }
    else if(getTendency(mid,y)<0)
    {
       res =getRes(mid,right,y );
    }else if(getTendency(mid,y)>0)
    {
       res =getRes(left,mid,y );
    }
    return res ;
}

int main() {

    int num ;
    double y ,res;
    cin >> num ;
    while(num--){
        cin >> y ;
      res = getRes(0.0,100.0,y);
        printf("%.4lf\n",getTemp(res,y));
    }
    return 0 ;
}



相關推薦

天天演算法Strange fuction

這個主要是藥算斜率為0的點。如下程式碼#include <iostream> #include <iomanip> #include<queue> #include<math.h> #include<algorithm&g

天天演算法Common subsequence

不是很明白在自己的電腦上開1000*1000的陣列,直接就炸了,但是卻能AC。emmmm,於是改寫了遞迴,很榮幸的超時了。遞迴程式:int Lcs(string a , string b , int aindex , int bindex,int num) { int

天天演算法Code Lock

這個題目不是很好理解,就是給你n個字母組成的密碼,每個字母有26中選擇,再給出幾個區間,這個區間內的字母可以同時加1變換。也就是abc,如果ab是同一個區間,那麼就可以實現同時變換,也就是ab變成bc可以通過一次變換(幾個個區間)得到的認為是同意把鎖。問這樣的密碼一共有多少種

天天演算法離線Tarjan演算法Closest Common Ancestors

這些延伸的題目都是我在做hdu的時候由於原題比較難,所以才會找更加基礎的來做。對於ACM小白來說,基本上是每隔4道題就必然有一個新的題型。今天就是離線Tarjan演算法。emmmLCA我還沒完全寫對。我要對這個教程裡沒有闡述的東西進行一下深剖。比如       5    4

天天演算法Assignments

我正在做凸包問題,結果忽然出現了一個貪心-。-|||一開始沒都明白題目,以為會有多餘的學生,想到了揹包,emmm,後來發現0.0#include <cstring> #include <cstdio> #include <algorithm>

天天演算法(BFS)推箱子

主要是需要考慮,箱子可以到,人是不是也可以到推箱子的位置。程式碼:#include<iostream> #include<cstdio> #include<algorithm> #include<queue> #include&

天天演算法push box

這個題的痛點在於思路問題,而且如何標記已經走過的路線,這裡的標記是標記人與三個箱子之間的相對位置,並不是說,你走過了以後,就不能再走了,只要其中一個箱子的位置發生了變化,那麼就可以繼續走。程式碼是模的。也拓寬一下自己的思路。BFS用的還不是得心應手#include<io

天天演算法Toxophily

#include<cstdio> #include<cmath> #define PI acos(-1.0) double x,y,v; inline double calculate(double angle)//已知角度計算所能達到

天天演算法pie

題目太長了,意思是,有n個蛋糕,分給f個人,要求蛋糕不能拼接。因此就是分成f份,因此需要從最大的那個蛋糕走,還是二分的問題。#include <iostream> #include <iomanip> #include<queue> #in

天天演算法interview

直接上思路,問需要m個檢察官,才能剛好得m個區間的最大值,使其加和能夠大於要求的n最好的情況下,我們先求出需要max,然後用n/max,這樣就是最好的情況,其他的情況都在這個情況的基礎上進行的。在這個基礎上,每次組數+1,看啥時候能大於n,直接跳出。OK這裡知道了有一個迴圈,

天天演算法(字典樹)T9

腦殼疼,腦殼疼,哎,寫程式碼幾分鐘,debug一小時。還是要說說,指標的問題。指標的傳遞,我感覺吃了一點虧。其中最讓我不明白的地方是。如果一個結構體例內的建構函式,不能賦值給一個物件。struct temp { int p; temp() {

天天演算法Virtual Friends

這個題想法很簡單,但是我就是過不去,在map那,要是有人能幫忙找出來,感激不盡#include <iostream> #include <cstdio> #include <string> #include <cstring>

一步一步演算法 單向連結串列

                【 宣告:版權所有,歡迎轉載,請勿用於商業用途。  聯絡信箱:feixiaoxing @163.com】    有的時候,處於記憶體中的資料並不是連續的。那麼這時候,我們就需要在資料結構中新增一個屬性,這個屬性會記錄下面一個數據的地址。有了這個地址之後,所有的資料就像一條鏈子一

一步一步演算法 合併排序

                【 宣告:版權所有,歡迎轉載,請勿用於商業用途。  聯絡信箱:feixiaoxing @163.com】    前面一篇部落格提到的快速排序是排序演算法中的一種經典演算法。和快速排序一樣,合併排序是另外一種經常使用的排序演算法。那麼合併排序演算法有什麼不同呢?關鍵之處就體現在這

2899 Strange fuction【爬山演算法 || 模擬退火】

Time limit 1000 ms Memory limit 32768 kB Now, here is a fuction: $F(x) = 6 * x7+8*x6+7x3+5*x2-yx (0 <= x <=100) $ Can you fin

演算法“try-catch-finally-看程式結果”

程式碼: public calss Test{ public static void main(String[] args){ try{ test(new int[]{0,1,2,3,4,5,6}); }cat

hdu2899:Strange fuction(模擬退火演算法)

Problem Description Now, here is a fuction:   F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <

一步一步演算法選擇排序)

                【 宣告:版權所有,歡迎轉載,請勿用於商業用途。  聯絡信箱:feixiaoxing @163.com】    選擇排序是和氣泡排序差不多的一種排序。和氣泡排序交換相連資料不一樣的是,選擇排序只有在確定了最小的資料之後,才會發生交換。怎麼交換呢?我們可以以下面一組資料作為測試:

一步一步演算法記憶體)

                【 宣告:版權所有,歡迎轉載,請勿用於商業用途。  聯絡信箱:feixiaoxing @163.com】    記憶體是程式執行的基礎。所有正在執行的程式碼都儲存在記憶體裡面。記憶體需要處理各種各樣的資料,包括鍵盤的資料、滑鼠的資料、usb的資料、串列埠的資料、攝像頭的資料,那

一步一步演算法克魯斯卡爾演算法 上)

                【 宣告:版權所有,歡迎轉載,請勿用於商業用途。  聯絡信箱:feixiaoxing @163.com】    克魯斯卡爾演算法是計算最小生成樹的一種演算法。和prim演算法(上,中,下)按照節點進行查詢的方法不一樣,克魯斯卡爾演算法是按照具體的線段進行的。現在我們假設一個圖有