#38236: C++終於降低空間,高手們怎麼能把空間搞很小...(2ms, 328KB)


bobobo0413 (Andy)

學校 : 國立臺灣大學
編號 : 252359
來源 : [220.141.219.171]
最後登入時間 :
2024-11-22 19:07:15
m370. 1. 機械鼠 -- 2023年10月APCS | From: [111.71.43.246] | 發表日期 : 2023-11-05 23:15

(2ms, 328KB),試了很久,終於降低空間,變成宣告短整數有降低一些空間,不知道如何更降低空間...

#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
    short a,b,c,d=0,e=0,f=-100,g=100,i;
    cin>>a>>b;
    for(i=0;i<b;i++)
    {
        cin>>c;
        if(c>a)
        {
         d++;
            if(f<c)
                f=c;
        }
        else
        {
         e++;
            if(g>c)
                g=c;
        }
    }
    if(d>e)
    cout<<d<<" "<<f<<endl;
    else
        cout<<e<<" "<<g<<endl;
    return 0;
}

 
#38238: Re: C++終於降低空間,高手們怎麼能把空間搞很小...(2ms, 328KB)


liaoweichen1024@gmail.com (M_SQRT)

學校 : 新北市立新莊高級中學
編號 : 195452
來源 : [122.116.111.175]
最後登入時間 :
2024-11-23 00:36:14
m370. 1. 機械鼠 -- 2023年10月APCS | From: [118.166.133.210] | 發表日期 : 2023-11-06 00:00

scanf, printf

改include <cstdio>

然後using namespace std拿掉

 
#38239: Re: C++終於降低空間,高手們怎麼能把空間搞很小...(2ms, 328KB)


liaoweichen1024@gmail.com (M_SQRT)

學校 : 新北市立新莊高級中學
編號 : 195452
來源 : [122.116.111.175]
最後登入時間 :
2024-11-23 00:36:14
m370. 1. 機械鼠 -- 2023年10月APCS | From: [118.166.133.210] | 發表日期 : 2023-11-06 00:17

  變數使用short的效益不大,int 4bytes, short 2bytes, 跟整個程式的328kb 有省跟沒省一樣。除非是很大的陣列,不然用short幾乎不會有效果。而且真要這樣省,這題應該用char就好,-128~127這題夠用...

  就我寫Java的經驗,JVM最小只有4bytes的計算機,所以short需要做運算時,JVM會將其轉成整數運算,算完再轉成short,這一來一回的還不如直接用int,雖然c++的運作我不是很了解,但總之單一變數short不會省到什麼記憶體。

  通常最耗時間和空間的還是輸出入,像這種小測資題目scanf, printf 就堪用了,但如果測資很大,想要io省時,你還需要別的工具。

 
#38244: Re: C++終於降低空間,高手們怎麼能把空間搞很小...(2ms, 328KB)


bobobo0413 (Andy)

學校 : 國立臺灣大學
編號 : 252359
來源 : [220.141.219.171]
最後登入時間 :
2024-11-22 19:07:15
m370. 1. 機械鼠 -- 2023年10月APCS | From: [111.71.43.246] | 發表日期 : 2023-11-06 08:47

  變數使用short的效益不大,int 4bytes, short 2bytes, 跟整個程式的328kb 有省跟沒省一樣。除非是很大的陣列,不然用short幾乎不會有效果。而且真要這樣省,這題應該用char就好,-128~127這題夠用...

  就我寫Java的經驗,JVM最小只有4bytes的計算機,所以short需要做運算時,JVM會將其轉成整數運算,算完再轉成short,這一來一回的還不如直接用int,雖然c++的運作我不是很了解,但總之單一變數short不會省到什麼記憶體。

  通常最耗時間和空間的還是輸出入,像這種小測資題目scanf, printf 就堪用了,但如果測資很大,想要io省時,你還需要別的工具。


真的耶!!(2ms, 96KB),原是是這樣省空間的,能告訴我JAVA如何省空間嗎?

 
#38251: Re: C++終於降低空間,高手們怎麼能把空間搞很小...(2ms, 328KB)


liaoweichen1024@gmail.com (M_SQRT)

學校 : 新北市立新莊高級中學
編號 : 195452
來源 : [122.116.111.175]
最後登入時間 :
2024-11-23 00:36:14
m370. 1. 機械鼠 -- 2023年10月APCS | From: [118.166.140.13] | 發表日期 : 2023-11-07 13:02

真的耶!!(2ms, 96KB),原是是這樣省空間的,能告訴我JAVA如何省空間嗎?

 

  一樣得在輸出入做文章,不過初學還是建議使用Scanner,它幾乎涵蓋了所有解題需要的輸入函式,且通常考試不會去刁難你的io,Scanner就夠用了。當然Java還是有相對低階的輸入工具,不過寫起來比較麻煩,說初學者不建議學,是因為往往那樣的io處理起來,比解原本的題目還要久,有點抓錯練習重點。

  這個網址提供給你,有需要可以參考 https://zerojudge.tw/ShowThread?postid=37489&reply=37469#37489

  題目寫久了,你會積累出一個解題的io模板,就是每次寫題目都會複製來用的那種,到時候再來玩這種很難寫的輸入會比較適合。

 
#38270: Re: C++終於降低空間,高手們怎麼能把空間搞很小...(2ms, 328KB)


bobobo0413 (Andy)

學校 : 國立臺灣大學
編號 : 252359
來源 : [220.141.219.171]
最後登入時間 :
2024-11-22 19:07:15
m370. 1. 機械鼠 -- 2023年10月APCS | From: [42.79.117.177] | 發表日期 : 2023-11-08 15:35

真的耶!!(2ms, 96KB),原是是這樣省空間的,能告訴我JAVA如何省空間嗎?

 

  一樣得在輸出入做文章,不過初學還是建議使用Scanner,它幾乎涵蓋了所有解題需要的輸入函式,且通常考試不會去刁難你的io,Scanner就夠用了。當然Java還是有相對低階的輸入工具,不過寫起來比較麻煩,說初學者不建議學,是因為往往那樣的io處理起來,比解原本的題目還要久,有點抓錯練習重點。

  這個網址提供給你,有需要可以參考 https://zerojudge.tw/ShowThread?postid=37489&reply=37469#37489

  題目寫久了,你會積累出一個解題的io模板,就是每次寫題目都會複製來用的那種,到時候再來玩這種很難寫的輸入會比較適合。

好!謝謝你

 
ZeroJudge Forum