Kid Phantom 2024-06-08 21:39 采纳率: 30%
浏览 35

c++方格填数问题求解

兔警官朱迪和狐狸尼克喜欢玩方格填数游戏。

给定 2 个 N×M 的矩阵,初始时都是空白的。朱迪喜欢从左往右,从上往下给矩阵依次编号( 从 1 开始连续的由小到大编号,一直到 N×M ),然而尼克喜欢从上往下,从左往右给矩阵依次编号( 从 1 开始连续的由小到大编号,一直到 N×M ),最后判断朱迪和尼克的两个矩阵同一位置编号相同的个数。

输入格式:
第一行包含一个整数 T,表示数据的组数。

接下来 T 行,每行包含两个整数 N, M,分别表示矩阵的行数和列数。

输出格式:
输出共 行,每行包含一个整数,表示朱迪和尼克的两个矩阵同一位置编号相同的个数。

数据范围:
对于100%的数据:1 ≤ T ≤ 5×10^3;1 ≤ N, M ≤ 10^9
样例输入 Copy
【样例1】
1
2 3
【样例2】
2
2 3
4 4
样例输出 Copy
【样例1】
2
【样例2】
2
4

  • 写回答

2条回答 默认 最新

  • 为荣誉而拼搏少年 2024-06-08 23:02
    关注
    #include<bits/stdc++.h>
    using namespace std;
    int t,m,n;
    void q()
    {
        cin>>n>>m;
        int ans=0;
        int i1=1,i2=1,j1=1,j2=1;
        for(int k=1;k<=m*n;k++)
        {
            if(i1==i2&&j1==j2)ans++;
            i1++;
            j2++;
            if(i1>n)
            {
                i1=1;
                j1++;
            }
            if(j2>m)
            {
                j2=1;
                i2++;
            }
        }
        cout<<ans<<endl;
    }
    int main()
    {
        cin>>t;
        while(t--)q();
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 6月8日