#28920: 求大佬指點


s111010137@student.nqu.edu.tw (Khazix)

學校 : 國立金門大學
編號 : 177202
來源 : [1.172.139.67]
最後登入時間 :
2022-11-09 22:20:56
d478. 共同的數 - 簡易版 | From: [27.53.170.136] | 發表日期 : 2022-01-12 16:39

#include <iostream>

#pragma warning(disable : 4996);

using namespace std;

int main(void)

{

    std::ios::sync_with_stdio(false);

    cin.tie(0);

    int n, m;

    int temp, t;

    int num1[10001];

    int num2[10001];

    while (scanf("%d%d", &n, &m) != EOF)

    {

        for (int i = 1; i <= n; i++)

        {

            temp = 0;

            t = 0;

 

            for (int j = 0; j < m; j++)

            {

                scanf("%d", &num1[j]);

            }

 

            for (int j = 0; j < m; j++)

            {

                scanf("%d", &num2[j]);

                for (int k = t; k < m; k++)

                {

                    if (num2[j] == num1[k])

                    {

                        t = k;

                        temp++;

                        break;

                    }

                }

            }

            printf("%d\n",temp);

        }

    }

    return 0;

}

 

小弟是想說邊輸入邊找相同的值

如果找到下次就從上次相同的值開始找

但是測資2仍然TLE

想請教各位大大如何改善

感謝!

 
#28935: Re:求大佬指點


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [101.136.203.77]
最後登入時間 :
2024-04-07 15:34:14
d478. 共同的數 - 簡易版 | From: [39.10.69.93] | 發表日期 : 2022-01-13 20:53

#include

#pragma warning(disable : 4996);

using namespace std;

int main(void)

{

    std::ios::sync_with_stdio(false);

    cin.tie(0);

    int n, m;

    int temp, t;

    int num1[10001];

    int num2[10001];

    while (scanf("%d%d", &n, &m) != EOF)

    {

        for (int i = 1; i <= n; i++)

        {

            temp = 0;

            t = 0;

 

            for (int j = 0; j < m; j++)

            {

                scanf("%d", &num1[j]);

            }

 

            for (int j = 0; j < m; j++)

            {

                scanf("%d", &num2[j]);

                for (int k = t; k < m; k++)

                {

                    if (num2[j] == num1[k])

                    {

                        t = k;

                        temp++;

                        break;

                    }

                }

            }

            printf("%d\n",temp);

        }

    }

    return 0;

}

 

小弟是想說邊輸入邊找相同的值

如果找到下次就從上次相同的值開始找

但是測資2仍然TLE

想請教各位大大如何改善

感謝!


當num2[j]<num1[k]就可以找下一個值了,後面的num1越來越大一定不相同

 
#28936: Re:求大佬指點


s111010137@student.nqu.edu.tw (Khazix)

學校 : 國立金門大學
編號 : 177202
來源 : [1.172.139.67]
最後登入時間 :
2022-11-09 22:20:56
d478. 共同的數 - 簡易版 | From: [27.247.97.18] | 發表日期 : 2022-01-13 23:23

#include

#pragma warning(disable : 4996);

using namespace std;

int main(void)

{

    std::ios::sync_with_stdio(false);

    cin.tie(0);

    int n, m;

    int temp, t;

    int num1[10001];

    int num2[10001];

    while (scanf("%d%d", &n, &m) != EOF)

    {

        for (int i = 1; i <= n; i++)

        {

            temp = 0;

            t = 0;

 

            for (int j = 0; j < m; j++)

            {

                scanf("%d", &num1[j]);

            }

 

            for (int j = 0; j < m; j++)

            {

                scanf("%d", &num2[j]);

                for (int k = t; k < m; k++)

                {

                    if (num2[j] == num1[k])

                    {

                        t = k;

                        temp++;

                        break;

                    }

                }

            }

            printf("%d\n",temp);

        }

    }

    return 0;

}

 

小弟是想說邊輸入邊找相同的值

如果找到下次就從上次相同的值開始找

但是測資2仍然TLE

想請教各位大大如何改善

感謝!


當num2[j]<num1[k]就可以找下一個值了,後面的num1越來越大一定不相同

 

感謝大佬指點!


改了

但是變成CE

qq

編輯器上是沒問題的 想知道是哪邊又出了問題

感謝!

 



 
#28939: Re:求大佬指點


s111010137@student.nqu.edu.tw (Khazix)

學校 : 國立金門大學
編號 : 177202
來源 : [1.172.139.67]
最後登入時間 :
2022-11-09 22:20:56
d478. 共同的數 - 簡易版 | From: [27.247.97.18] | 發表日期 : 2022-01-14 01:08

#include

#pragma warning(disable : 4996);

using namespace std;

int main(void)

{

    std::ios::sync_with_stdio(false);

    cin.tie(0);

    int n, m;

    int temp, t;

    int num1[10001];

    int num2[10001];

    while (scanf("%d%d", &n, &m) != EOF)

    {

        for (int i = 1; i <= n; i++)

        {

            temp = 0;

            t = 0;

 

            for (int j = 0; j < m; j++)

            {

                scanf("%d", &num1[j]);

            }

 

            for (int j = 0; j < m; j++)

            {

                scanf("%d", &num2[j]);

                for (int k = t; k < m; k++)

                {

                    if (num2[j] == num1[k])

                    {

                        t = k;

                        temp++;

                        break;

                    }

                }

            }

            printf("%d\n",temp);

        }

    }

    return 0;

}

 

小弟是想說邊輸入邊找相同的值

如果找到下次就從上次相同的值開始找

但是測資2仍然TLE

想請教各位大大如何改善

感謝!


當num2[j]<num1[k]就可以找下一個值了,後面的num1越來越大一定不相同

 

感謝大佬指點!


改了

但是變成CE

qq

編輯器上是沒問題的 想知道是哪邊又出了問題

感謝!

 




沒事

終於過啦!!!


不過0.2s有點久就是了qq

感謝大佬指點!

 
ZeroJudge Forum