7 条题解

  • 1
    @ 2023-8-6 19:57:43

    最暴力

    #include <iostream>
    using namespace std;
    int main()
    {
        int n,m,sum1,sum2;
        cin >> n >> m;
        for(int i=0;i<=n;i++)
        {
            for(int j=0;j<=m;j++)
            {
                for(int c=1+i;c<=n;c++)
                {
                    for(int k=1+j;k<=m;k++)
                    {
                        if(c-i==k-j)
                        {
                            sum1++;
                        }
                        else
                        {
                            sum2++;
                        }
                    }
                }
            }
        }
        cout << sum1 << " " <<sum2;
    }
    
    • 1
      @ 2023-4-26 22:24:47
      • 刷信奥赛CSP-J 难度2:题目1
      • [NOIP1997 普及组] 棋盘问题
      • 典型的数字找规律好吧!
      1. 正方形:遍历 n 与 m 少的那一个,每一次都将个数加上n、m与 i 的差的乘积
      2. 长方形:遍历 n*m 次,当 j 和 i 相等时跳过本次循环,在此前提下长方形的个数每次都增加 n 与 i 的差值和 m 与 j 的差值的乘积
      3. 最后输出两个数量即可

      做题方法:使用草稿纸一个一个写出来,寻找当中规律并且得出结论,祝大家信息学奥赛考试顺利!

      #include <bits/stdc++.h>
      using namespace std;
      int n, m, square, rectangle;
      int main()
      {
          cin >> n >> m;
          for (int i = 1; i <= min(n, m); i++)
              square += (n - i + 1) * (m - i + 1);
          for (int i = 1; i <= n; i++)
          {
              for (int j = 1; j <= m; j++)
              {
                  if (j == i) continue;
                  rectangle += (n - i + 1) * (m - j + 1);
              }
          }
          printf("%d %d", square, rectangle);
          return 0; 
      }
      
      • 0
        @ 2024-5-11 20:49:37
        #include <bits/stdc++.h>
        using namespace std;
        int n,m;
        int x,y;
        int main(){
        	scanf("%d%d",&n,&m);
        	for (int i=1;i<=min(n,m);i++)x+=(n-i+1)*(m-i+1);
        	y=(n+1)*(m+1)*n*m/4-x;
        	printf("%d %d",x,y);
        	return 0;
        }
        
        • 0
          @ 2022-7-15 16:24:12

          你们喜欢的代码来楼!!!

          #include<bits/stdc++.h>
          using namespace std;
          int n,m,minn,sum1,sum2;
          int main()
          {
              cin>>n>>m;
              minn=min(n, m);
              for (int i = 1; i <= minn; i++)
              {
                  int x=(n-i+1)*(m-i+1);
                  sum1+=x;
              }
              for (int i=1;i<=n;i++)
              {
                  for (int j=1;j<=m;j++)
                  {
                      if (j==i)continue;
                      int x=(n-i+1)*(m-j+1);
                      sum2+=x;
                  }
              }
              cout<<sum1<<" "<<sum2<<endl; 
              return 0; 
          }
          
          • -3
            @ 2022-7-15 10:01:17

            #include <bits/stdc++.h> using namespace std; int n, m, minn, sum1, sum2; int main() { cin >> n >> m; minn = min(n, m); for (int i = 1; i <= minn; i++) { int x = (n - i + 1) * (m - i + 1); sum1 += x; } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (j == i) continue; int x = (n - i + 1) * (m - j + 1); sum2 += x; } } cout << sum1 << " " << sum2; return 0; }

            • -3
              @ 2022-7-14 20:00:02

              数学规律题

              • -4
                @ 2021-11-7 11:36:33

                要找我,复制这个网址:https://noip.iyopu.com/home

                • 1

                信息

                ID
                992
                时间
                1000ms
                内存
                125MiB
                难度
                1
                标签
                递交数
                114
                已通过
                76
                上传者