#17659: 還能再更快嗎


henry95057@gmail.com (林寬厚)

學校 : 元智大學
編號 : 86467
來源 : [49.216.44.97]
最後登入時間 :
2019-09-19 07:33:39
d478. 共同的數 - 簡易版 | From: [117.19.195.71] | 發表日期 : 2019-05-03 01:57

我已經嘗試過了極限的方法了 還能再快一點嗎

#include<iostream>
using namespace std;
int main() {
int n;
int s = 0;
long long u=0;
long long sum = 0;
long long m;
long long a[10000] = { 0 };
long long b[10000] = { 0 };
while (cin >> n >> m) {
for (int i = 0; i < n; i++) {

for (long long j = 0; j < m; j++) {
cin >> a[j];
}
for (long long j = 0; j < m; j++) {
cin >> b[j];
}
for (long long j = 0; j < m; j++) {
if (s == 0) {
for (long long k = 0 + u; k < m; k++) {
if (a[j] == b[k]) {
sum++;
u = k+1;
break;
}
else if (a[j] < b[k]) {

break;
}
else if (k == m - 1) {
s++;
}
}
}
else {
break;
}
}
cout << sum << endl;
sum = 0;
u = 0;
s = 0;
}
}
}

 
#17661: Re:還能再更快嗎


rollfc (胖胖貓)

學校 : 國立清華大學
編號 : 81012
來源 : [36.229.32.172]
最後登入時間 :
2024-05-01 19:33:23
d478. 共同的數 - 簡易版 | From: [140.113.208.164] | 發表日期 : 2019-05-03 16:33

原文吃掉,你要不要先理解C++加速讀取的程式碼

ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);

其次是題目“刻意”給定兩個“排序好”的數列是有意義的,想想看為何是排序好的數列?

提示:做法類似『MergeSort』合併時的過程。

 
 
#17669: Re:還能再更快嗎


jackyname1@gmail.com (☆♬○♩程式家小崴●♪✧♩)

學校 : 基隆市私立二信高級中學
編號 : 77382
來源 : [114.32.51.178]
最後登入時間 :
2022-04-12 19:45:18
d478. 共同的數 - 簡易版 | From: [118.167.24.137] | 發表日期 : 2019-05-03 23:48

 

這樣更快>_<

#include <stdio.h>

#include <iostream>

#include <deque>

 

using namespace std;

 

int main() {

    ios::sync_with_stdio(false);

    cin.tie(0);

    int n,m;

    cin>>n>>m;

    while(n--){

        deque<long long int> a,b;

        int ans=0;

        for(int i=0;i<m;i++){

            long long int temp;

            cin>>temp;

            a.push_back(temp);

        }

        for(int i=0;i<m;i++){

            long long int temp;

            cin>>temp;

            b.push_back(temp);

        }

        while(a.size()!=0 && b.size() !=0){

            if(a.front()==b.front()){

                ans++;

                a.pop_front();

                b.pop_front();

            }

            else if(a.front()<b.front())

            a.pop_front();

            else

            b.pop_front();

        }

        cout<<ans<<endl;

    }

    return 0;

}

 

 
#21855: Re:還能再更快嗎


sophie19820517@gmail.com (闕河正)

學校 : 不指定學校
編號 : 115751
來源 : [123.240.57.165]
最後登入時間 :
2024-04-29 22:18:01
d478. 共同的數 - 簡易版 | From: [123.240.14.93] | 發表日期 : 2020-07-27 11:44

其實不用等到兩筆資料都收完才比對壓,何不邊收資料邊比對呢。

 
ZeroJudge Forum