<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 403, comments - 310, trackbacks - 0, articles - 7
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    URAL 1011

    Posted on 2008-04-23 22:44 ZelluX 閱讀(815) 評論(10)  編輯  收藏 所屬分類: Algorithm

    Problem

    Every bus in the Ekaterinburg city has a special man (or woman) called conductor. When you ride the bus, you have to give money to the conductor. We know that there are more then P% conductors and less then Q% conductors. Your task is to determine a minimal possible number of Ekaterinburg citizens.


    我只能說太挫了。。。精度問題搞了半天,看來浮點還是要盡量化成整型再算啊。


    還有個問題就是q*i是開區間還是閉區間,總之Wrong Answer了無數次后總算過了。。。

    評論

    # re: URAL 1011  回復  更多評論   

    2008-04-24 19:22 by luohandsome
    double也不行么

    # re: URAL 1011  回復  更多評論   

    2008-04-24 20:53 by ZelluX
    一開始用的是double,別人可以過,不過我搞不定,還是用整型了

    # re: URAL 1011[未登錄]  回復  更多評論   

    2008-05-02 20:24 by dave
    請教一下:
    既然dp, dq只有兩位小數,那么
    int p = floor(dp * 100 + 0.5);

    int p = dp * 100;
    有區別嗎?

    # re: URAL 1011  回復  更多評論   

    2008-05-03 09:03 by ZelluX
    @dave
    當然有,實際保存的時候是浮點啊,如果是dp = 49.9999999這種情況呢?

    # re: URAL 1011[未登錄]  回復  更多評論   

    2008-05-03 13:18 by dave
    謝謝。
    那為什么要四舍五入呢?即int p = floor(dp * 100 + 0.5);中的"+0.5"?

    # re: URAL 1011  回復  更多評論   

    2008-05-03 17:33 by ZelluX
    @dave
    49.99999999這種情況不四舍五入不是就錯了嗎。。。

    # re: URAL 1011[未登錄]  回復  更多評論   

    2008-05-04 10:36 by dave
    我把“Numbers are given with 2 digits precision”理解為輸入時即保證dp只有兩位小數的,因此我開始認為int p = dp * 100;就可以了(因為dp * 100是正整數)。然而,實際的情況是:輸入為double(小數點后6或7位),但程序只保存兩位,因此需要四舍五入?但舍入誤差會不會造成在某些輸入數據下求得的i不是最小的滿足條件的值(只不過原題測試數據較弱)?
    如果這次理解仍然有誤,請你稍微詳細解釋下。比如“49.99999999這種情況不四舍五入不是就錯了嗎”?

    這一題看似簡單,但的確煩人。打擾你了。謝謝。

    # re: URAL 1011  回復  更多評論   

    2008-05-04 11:44 by ZelluX
    @dave
    “只有兩位小數”只是說輸入的時候是這樣,但實際讀進來的時候是用double保存的,前者是定點,后者是浮點,轉換的時候容易出現誤差。
    比如輸入了48.00,有可能在操作過程中就變成47.9999999(關于這個問題可以看看Computer System: A Programmer's Perspective的第二張浮點部分)
    對于這種情況就需要進行四舍五入了。
    考慮到浮點誤差的問題(另外浮點計算速度也比定點慢很多),所以我建議能用定點就盡量先轉到定點。
    int p = floor(dp * 100 + 0.5) 這樣四舍五入就避免了浮點導致的誤差。
    之后再用定點(整型)計算就不會有誤差了。

    # re: URAL 1011[未登錄]  回復  更多評論   

    2008-05-04 15:05 by dave
    非常感謝你的耐心,我明白了。
    你的blog很棒,+U~

    # re: URAL 1011  回復  更多評論   

    2008-06-15 07:49 by 爍爍
    有人會PAS版的嗎?
    主站蜘蛛池模板: 亚洲乱妇老熟女爽到高潮的片| 亚洲AV永久无码区成人网站 | 日韩免费高清视频网站| 亚洲国产精品综合福利专区| 国内精品免费视频精选在线观看| 亚洲精品无码高潮喷水在线| 中文字幕一区二区三区免费视频 | 999国内精品永久免费观看| 精品亚洲成a人片在线观看少妇 | 120秒男女动态视频免费| 亚洲av日韩av综合| 暖暖在线日本免费中文| 国产成人亚洲综合在线| 免费大黄网站在线看| 国产精品免费看久久久香蕉| 亚洲国产三级在线观看| 97视频免费观看2区| 亚洲日本人成中文字幕| 日韩在线视频免费看| 一级毛片免费播放试看60分钟| 亚洲综合色成在线播放| 免费观看久久精彩视频| 亚洲免费在线视频播放| 国产大片线上免费看| 成人国产精品免费视频| 久久国产亚洲高清观看| 四虎成人免费影院网址| 大片免费观看92在线视频线视频| 亚洲一区二区三区在线观看精品中文| 人妻免费一区二区三区最新| 亚洲人成高清在线播放| 国产在线ts人妖免费视频| 最近免费中文字幕MV在线视频3| 亚洲精品日韩专区silk| 国产成人高清精品免费鸭子| 狠狠躁狠狠爱免费视频无码| 亚洲专区一路线二| 亚洲午夜无码AV毛片久久| 91频在线观看免费大全| 免费人成在线观看播放a| 亚洲视频精品在线观看|