#3826: 空間莫名ok 換成時間爆炸


bufly (菲列斯)

學校 : 不指定學校
編號 : 3633
來源 : [114.25.72.165]
最後登入時間 :
2024-05-11 11:26:01
d550. 物件排序 | From: [122.116.227.60] | 發表日期 : 2010-06-05 01:11

 空間不知為何又ok了,不過換成時間在4 7 8測資爆炸...

 程式碼如下,請問有甚麼方法可以在加快的嗎?

 感謝各位

******
#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

vector<vector<int> > vvi;

bool less2D(const vector<int>& via,const vector<int>& vib)
{
    int nLi;
    for(nLi = 0;nLi < via.size();++nLi)
    {
        if(via[nLi] < vib[nLi]){return true;}
        else if(via[nLi] > vib[nLi]){return false;}
    }
    return false;
}

int main()
{
    int nM,nN;
    int nLi,nLj,nTemp;
    vector<int> viTemp;
    while(cin>>nN)
    {
        cin>>nM;
        vvi.clear();
        for(nLi = 0;nLi < nN;++nLi)
        {
            viTemp.clear();
            for(nLj = 0;nLj < nM;++nLj)
            {
                cin>>nTemp;
                viTemp.push_back(nTemp);
            }
            vvi.push_back(viTemp);            
        }
        stable_sort(vvi.begin(),vvi.end(),less2D);
        for(nLi = 0;nLi < vvi.size();++nLi)
        {
            for(nLj = 0;nLj < nM;++nLj)
            {
                cout<<vvi[nLi][nLj]<<" ";
            }
            cout<<endl;
        }
    }    
        
    return 0;
}

 
#3827: Re:空間莫名ok 換成時間爆炸


bufly (菲列斯)

學校 : 不指定學校
編號 : 3633
來源 : [114.25.72.165]
最後登入時間 :
2024-05-11 11:26:01
d550. 物件排序 | From: [122.116.227.60] | 發表日期 : 2010-06-05 01:16

 空間不知為何又ok了,不過換成時間在4 7 8測資爆炸...

 程式碼如下,請問有甚麼方法可以在加快的嗎?

 感謝各位

******
#include
#include
#include

using namespace std;

vector > vvi;

bool less2D(const vector& via,const vector& vib)
{
    int nLi;
    for(nLi = 0;nLi < via.size();++nLi)
    {
        if(via[nLi] < vib[nLi]){return true;}
        else if(via[nLi] > vib[nLi]){return false;}
    }
    return false;
}

int main()
{
    int nM,nN;
    int nLi,nLj,nTemp;
    vector viTemp;
    while(cin>>nN)
    {
        cin>>nM;
        vvi.clear();
        for(nLi = 0;nLi < nN;++nLi)
        {
            viTemp.clear();
            for(nLj = 0;nLj < nM;++nLj)
            {
                cin>>nTemp;
                viTemp.push_back(nTemp);
            }
            vvi.push_back(viTemp);            
        }
        stable_sort(vvi.begin(),vvi.end(),less2D);
        for(nLi = 0;nLi < vvi.size();++nLi)
        {
            for(nLj = 0;nLj < nM;++nLj)
            {
                cout<<<" ";
            }
            cout<
        }
    }    
        
    return 0;
}

cin換成scanf cout換成 printf就好了...不知道能不能刪文章...

(前面傳好多次居然忘記可能是這原因orz)

 
ZeroJudge Forum