3 条题解

  • 0
    @ 2024-8-25 10:21:46

    数组方法:

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
       int  n1,n2, m;
       cin>>n1>>n2;
       cin>>m;
       vector<int> a1(n1);
       vector<int> a2(n2);
       for(int i=0;i<n1;i++) a1[i]=i+1;
       for(int i=0;i<n2;i++) a2[i]=i+1;
       for(int k= 0;k<m;k++){
       	cout<<a1[k%n1]<<" "<<a2[k%n2]<<endl;
       }
        return 0;
    }
    
    • 0
      @ 2024-8-11 8:36:32

      方法1:数学方法:

      #include <bits/stdc++.h>
      using namespace std;
      
      int main() {
          long long n, m, k;
          cin >> n >> m >> k;
          for (int i = 0; i < k; i++) {
              cout << (i % n + 1) << " " << (i % m + 1) << endl;
          }
          return 0;
      }
      
      • 0
        @ 2024-8-11 8:36:01

        //方法2:队列模拟

        #include <bits/stdc++.h>
        using namespace std;
        
        int main(){
            queue<int> q1, q2;
            int n, m, k;
            cin>>n>>m>>k;
            //入队
            for(int i=1; i<=n; i++) q1.push(i);
            for(int i=1; i<=m; i++) q2.push(i);
            
            //出队
            for(int i=1; i<=k; i++) {
                int a = q1.front(); 
                int b = q2.front();
                q1.pop();
                q2.pop();
                cout<<a<<" "<<b<<endl;
                q1.push(a); //重新加入队尾
                q2.push(b);
            }
            return 0;
        }
        
        • 1

        信息

        ID
        810
        时间
        1000ms
        内存
        256MiB
        难度
        5
        标签
        递交数
        23
        已通过
        12
        上传者