查看: 873|回復: 22

[提問] c++語法and演算

[複製鏈接]
  • TA的每日心情
    開心
    2014-9-28 12:10
  • 簽到天數: 21 天

    [LV.4]偶爾看看III

    34

    主題

    181

    帖子

    776

    積分

    高級會員

    Rank: 4

    積分
    776

    程式設計達人 - 2014新手達陣

    發表於 2014-10-28 20:31:11 | 顯示全部樓層 |閱讀模式

    趕快加入我們來參與討論吧!

    您需要 登錄 才可以下載或查看,沒有帳號?加入我們

    x
    1.cin 輸入經測試發現速度遠慢於scanf 輸入什麼意思
    2.如何排序
    3.線段樹看了一些文章後還是不太懂
    4.最短路怎麼求
    林宇翔
    回復

    使用道具 檢舉

  • TA的每日心情
    開心
    2014-9-28 12:10
  • 簽到天數: 21 天

    [LV.4]偶爾看看III

    34

    主題

    181

    帖子

    776

    積分

    高級會員

    Rank: 4

    積分
    776

    程式設計達人 - 2014新手達陣

     樓主| 發表於 2014-11-9 16:58:14 | 顯示全部樓層
    請問要參加npsc要學會哪些演算法

    點評

    突然想到,去年有考GCD  發表於 2014-11-9 20:43
    好難回答的問題啊,應該什麼都能考吧?  發表於 2014-11-9 20:42
    林宇翔
    回復 支持 0 反對 1

    使用道具 檢舉

  • TA的每日心情
    慵懶
    2015-4-10 14:18
  • 簽到天數: 78 天

    [LV.6]常住居民II

    176

    主題

    612

    帖子

    3959

    積分

    管理員

    Rank: 9Rank: 9Rank: 9

    積分
    3959

    台南一中資訊社新手達陣程式設計達人 - 2014

    發表於 2014-10-28 21:53:13 | 顯示全部樓層
    你問的問題滿有深度的

    A.1
    因為C++的Cin/Cout為了能相容C的IO函數(輸入/輸出函數),會採取一個叫與"同步"的動作,這個動作會執行一個flush,而flush是非常緩慢的函數,這也導致了cin/cout的速度遠慢於scanf/printf,但是這個動作是可以取消的!


    在程式的第一行加上這一句:
    [C++] 純文本查看 復制代碼
    ios::sync_with_stdio(false);


    就可以取消了。但是取消後,就不再保證scanf/cout混用時的輸出會是正確的,所以你就不能再用scanf輸出。
    此外還有一些的地方會執行flush,如 cout<<endl; 打比賽時請不要使用,尤其在非常大的輸出量時。因此我們採用cout<<'\n';來取代。另一個是在cin<<X的時候,為了在你輸入前能把所有資料顯示,也會使用flush,這裡可以用

    cin.tie(0);
    cin.tie(nullptr); //C++11
    來關閉這一個功能,如此一來,你的cin/cout就能大幅改善其執行效率了。

    A2.
    你先看看這篇資料
    http://www.csie.ntnu.edu.tw/~u91029/SequenceManipulation.html

    A3.A4
    等你學多一點再來討論吧,這需要很多前置的概念才能解釋
    我們社課的投影片
    http://forum.tfcis.org/thread-177-1-2.html

    排序是我們高一上社課內容,圖論/線段樹是下學期/暑假的課程

    點評

    http://zh.wikipedia.org/wiki/Nullptr  發表於 2014-10-31 23:14
    nullptr是什麼?  發表於 2014-10-29 20:25
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2014-9-28 12:10
  • 簽到天數: 21 天

    [LV.4]偶爾看看III

    34

    主題

    181

    帖子

    776

    積分

    高級會員

    Rank: 4

    積分
    776

    程式設計達人 - 2014新手達陣

     樓主| 發表於 2014-10-29 17:51:46 | 顯示全部樓層
    我是有報npsc
    林宇翔
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2014-9-28 12:10
  • 簽到天數: 21 天

    [LV.4]偶爾看看III

    34

    主題

    181

    帖子

    776

    積分

    高級會員

    Rank: 4

    積分
    776

    程式設計達人 - 2014新手達陣

     樓主| 發表於 2014-10-29 18:01:01 | 顯示全部樓層
    另外這題這樣寫對嗎
    2013 npsc A 新 烤餅乾
    [C++] 純文本查看 復制代碼
    #include<iostream>
    
    using namespace std;
    int main()
    {
    	//ios::sync_with_stdio(false);
    	int t;
    	for(int e=0,n[6],m[6];e<t;e++)
    	{
    		int num=0;
    		for(int f=0;f<6;f++)
    		{
    			cin>>n[f];
    		}
    		for(int f=0;f<6;f++)
    		{
    			cin>>m[f];
    		}
    		for(int a=0,b=0;a<6;a++)
    		{
    			for(int b=0;b<6;b++)
    			{
    				if(n[a]>m[b])
    				{
    					num++;
    				}
    			}
    		}
    		cout<<num<<endl;
    	}
    	return 0;
    }
    

    點評

    從比賽網站下載的  發表於 2014-11-4 16:49
    jd3
    這原題在哪裡OwO?  發表於 2014-11-3 23:30
    林宇翔
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2014-9-28 12:10
  • 簽到天數: 21 天

    [LV.4]偶爾看看III

    34

    主題

    181

    帖子

    776

    積分

    高級會員

    Rank: 4

    積分
    776

    程式設計達人 - 2014新手達陣

     樓主| 發表於 2014-10-31 18:09:36 | 顯示全部樓層
    這兩個是什麼語法
    1. Relax(m,t){
    ......
    }
    2. std :: cin >> cases ;

    點評

    Relax那個你是在哪裡看到的?  發表於 2014-11-4 20:02
    第2個很清楚吧  發表於 2014-11-4 16:50
    jd3
    不太懂這問的是什麼  發表於 2014-11-3 23:30
    林宇翔
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2014-9-28 12:10
  • 簽到天數: 21 天

    [LV.4]偶爾看看III

    34

    主題

    181

    帖子

    776

    積分

    高級會員

    Rank: 4

    積分
    776

    程式設計達人 - 2014新手達陣

     樓主| 發表於 2014-11-4 16:56:12 | 顯示全部樓層
    第2個很清楚吧
    林宇翔
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    慵懶
    2015-4-10 14:18
  • 簽到天數: 78 天

    [LV.6]常住居民II

    176

    主題

    612

    帖子

    3959

    積分

    管理員

    Rank: 9Rank: 9Rank: 9

    積分
    3959

    台南一中資訊社新手達陣程式設計達人 - 2014

    發表於 2014-11-4 19:24:11 | 顯示全部樓層
    學弟都不回QQ

    還記得你打的
    [C++] 純文本查看 復制代碼
    using namespace std; 

    這行嗎?

    當初我們並沒有清楚解釋這一個東西。我們可以理解為:在這一行後的所使用的函數/物件都使用來自std這一個命名空間的版本。如果你沒有指明要用std的話,那你就要指明你所使用的來源,語法為

    name::Object

    也就是你問的
    [C++] 純文本查看 復制代碼
    std::cin


    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2014-9-28 12:10
  • 簽到天數: 21 天

    [LV.4]偶爾看看III

    34

    主題

    181

    帖子

    776

    積分

    高級會員

    Rank: 4

    積分
    776

    程式設計達人 - 2014新手達陣

     樓主| 發表於 2014-11-4 21:08:01 | 顯示全部樓層
    回domen111
    http://forum.tfcis.org/thread-177-1-2.html
    中的
    [C] 純文本查看 復制代碼
    定義d[x]為由原點p到x已知路徑中的最短距離
    
    Relax(m,t){
        if(d[t]>d[m]+w[m][t]){		d[t]=d[m]+w[m][t]	}
    }
    
    如果d[t]存在另一路徑,由p至m再由m至t的路,其權值更小,則選擇較小值會更好
    
    林宇翔
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2015-6-17 11:50
  • 簽到天數: 177 天

    [LV.7]常住居民III

    15

    主題

    315

    帖子

    1437

    積分

    金牌會員

    Rank: 6Rank: 6

    積分
    1437

    新手達陣台南一中資訊社

    發表於 2014-11-9 19:59:31 | 顯示全部樓層
    林宇翔 發表於 2014-11-9 16:58
    請問要參加npsc要學會哪些演算法

    LZN Tree,DMST,SBST,Heavy-Light Decompisition,BOGO sort,kD-Tree,FALSE,Brainf**k,whitespace,The second sorting,Travel_Saleman,etc...
    XD*(10^517)

    點評

    不過很多演算法都真有其事,只是國中NPSC用不到而已XD  發表於 2014-11-9 21:31
    啊!!!被發現了XD  發表於 2014-11-9 21:30
    FALSE,Brainf**k,whitespace是程式語言吧  發表於 2014-11-9 20:36
    這篇留言完全來鬧啊!  發表於 2014-11-9 20:34
    目標:Taiwan Oranges-Integraled 2016 (TOI'16)台灣積分橘子。
    回復 支持 反對

    使用道具 檢舉

    您需要登錄後才可以回帖 登入 | 加入我們

    本版積分規則

    快速回覆 返回頂部 返回列表