NEUQ OJ 1512喫薯條

1512: 喫薯條

描述

題目描述:

薯片這次又遇到問題了==
薯片有n個薯條棒,第i個薯條棒的長度爲i,由於薯片能瞬間移動,所以薯片能在1秒內從這n個薯條棒裏面選擇一個或者多個,喫掉同樣長的一部分,
並且被喫掉部分的長度是正整數,問薯片至少多少時間能把這n個薯條棒都喫完?

輸入:

多組數據輸入,每組數據第一行輸入一個n(1<=n<=109).

輸出:

對於每組數據,輸出最短的時間.

樣例輸入
3
4
樣例輸出
2

3

這道題用到了貪心算法,之前沒有遇到過,在聽過大佬的講解的思路之後,發現沒有想象中那麼難,當時就是沒有動筆算一算好像也沒有讀明白題意,其實在發現了規律之後,發現其實很簡單,在列舉一些簡單的樣例算過之後,每次在最中間開始喫花費的時間是最少的代
碼用到了換底公式,實質就是除以二找最中間的結果就是答案
#include<stdio.h>
#include<math.h>
int main()
{
    int a,x;

    while(scanf("%d",&a)!=EOF)
    {
        x=(int)  (log(a)/log(2)+1);

        printf("%d\n",x);
    }
}
運行結果
通過率
通過的數據:
結果耗時內存
通過01916928
通過01921024
未通過的數據:

結果耗時內存
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章