#11934: cout VS printf TLE


nkavengertree (LaG)

學校 : 不指定學校
編號 : 62501
來源 : [49.216.191.28]
最後登入時間 :
2021-11-21 03:06:49
a229. 括號匹配問題 -- 名題精選百則 | From: [118.168.175.15] | 發表日期 : 2017-04-22 18:13

因為小的有點好奇為什麼用cin  cout就會逾時

於是就四處亂逛找到了一篇分析的文章

分享給各位

看完之後相信大家應該都能順利ac

網址如下:

C++的輸出入cin/cout和scanf/printf誰比較快?

http://chino.taipei/note-2016-0311C-%E7%9A%84%E8%BC%B8%E5%87%BA%E5%85%A5cin-cout%E5%92%8Cscanf-printf%E8%AA%B0%E6%AF%94%E8%BC%83%E5%BF%AB%EF%BC%9F/

 

順便分享一下程式碼:

#include <iostream>
#include <string>
#include <cstring>
#include <stdio.h>
using namespace std;

void dfs(int il, int ir, string s, int n){
    //括號順序不對
    if (il < ir){
        return;
    }

    //存在解答,跳出DFS
    if (il==ir && il==n){
        cout << s << "\n";          <=0.5s, 280KB
        //cout << s << endl;        <=逾時
        return;
    }

    //左括號先做完
    if (il < n){
        dfs(il+1 , ir , s+"(" , n);
    }
    //換右括號
    if (ir < n){
        dfs(il , ir+1 , s+")" , n);
    }
}
int main()
{
    int n;
    while(cin >> n){
    dfs(0, 0, "", n);
    }
    return 0;
}

 
ZeroJudge Forum