4 条题解

  • 2
    @ 2024-9-8 19:01:02

    J4A 宾果游戏

    思路

    依次判断横排,竖排,正对角线与反对角线是否均为 11,如果是,则输出 Yes,如果都不是,则输出 No

    复杂度

    nn 为矩阵大小。

    时间复杂度:

    O(n2)O(n^2)

    空间复杂度:

    O(n2)O(n^2)

    Code

    #include <bits/stdc++.h>
    using namespace std;
    int a[10][10];
    int main()
    {
    	int n = 5;
    	for (int i = 1;i <= n;i++)
    	{
    		for (int j = 1;j <= n;j++)
    		{
    			cin >> a[i][j];
    		}
    	}
    	int f = 0;
    	for (int i = 1;i <= n;i++)
    	{
    		int s = 0;
    		for (int j = 1;j <= n;j++) s = s + a[i][j];
    		if (s == 5) f = 1;
    	}
    	for (int j = 1;j <= n;j++)
    	{
    		int s = 0;
    		for (int i = 1;i <= n;i++) s = s + a[i][j];
    		if (s == 5) f = 1;
    	}
    	int s = 0;
    	for (int i = 1;i <= n;i++)
    	{
    		s = s + a[i][i];
    	}
    	if (s == 5) f = 1;
    	s = 0;
    	for (int i = 1;i <= n;i++)
    	{
    		s = s + a[i][n + 1 - i];
    	}
    	if (s == 5) f = 1;
    	cout << (f == 1 ? "Yes" : "No");
    }
    
    • 1
      @ 2024-9-8 20:09:27

      J4A 宾果游戏 题解:

      思路:先判断每行每列是否有一行或一列是五个一的,再判断两条对角线。

      Code:

      #include<iostream>
      using namespace std;
      long long n=5,a[10][10];
      int main()
      {
      	for(int i=1;i<=n;i++)
      		for(int j=1;j<=n;j++)
      			cin>>a[i][j];
      	for(int i=1;i<=n;i++)
      	{
      		if(a[i][1]&&a[i][2]&&a[i][3]&&a[i][4]&&a[i][5])
      		{
      			cout<<"Yes";
      			return 0;
      		}
              //判断每一行
      		if(a[1][i]&&a[2][i]&&a[3][i]&&a[4][i]&&a[5][i])
      		{
      			cout<<"Yes";
      			return 0;
      		}
              //判断每一列
      	}
      	if(a[1][1]&&a[2][2]&&a[3][3]&&a[4][4]&&a[5][5])
      	{
      		cout<<"Yes";
      		return 0;
      	}
      	if(a[1][5]&&a[2][4]&&a[3][3]&&a[4][2]&&a[5][1])
      	{
      		cout<<"Yes";
      		return 0;
      	}
          //判断两条对角线
      	cout<<"No";
      	return 0;
      }
      
      • 0
        @ 2024-10-5 16:26:52

        Code

        {

        #include<bits/stdc++.h>
        using namespace std;
        #define int long long
        int a[16][16];
        signed main()
        {
        for(int i=1;i<=5;i++)
        {
        	for(int j=1;j<=5;j++)
        	{
        		cin>>a[i][j];
        	}
        }
        
        int cnt=0;
        for(int j=5;j>=1;j--)
        {
        	if(a[j][j]==1) cnt++;
        }
        if(cnt>=5)
        {
        	cout<<"Yes";
        	return 0;
        }
        
        cnt=0;
        for(int i=1,j=5;i<=5&&j>=1;i++,j--)
        {
        	if(a[i][j]==1) cnt++;
        }
        if(cnt>=5)
        {
        	cout<<"Yes";
        	return 0;
        }
        
        for(int i=1;i<=5;i++)
        {
        	int ans=0;
        	for(int j=1;j<=5;j++)
        	{
        		if(a[i][j]==1) ans++;
        	}
        	if(ans>=5)
        	{
        		cout<<"Yes";
        		return 0;
        	}
        	ans=0;
        	for(int j=1;j<=5;j++)
        	{
        		if(a[j][i]==1) ans++; 
        	}
        	if(ans>=5)
        	{
        		cout<<"Yes";
        		return 0;
        	}
        	ans=0;
        }
        cout<<"No";
        return 0;
        

        }

        }

        • 0
          @ 2024-10-4 20:18:27

          标题

          思路

          解题方法

          复杂度

          时间复杂度:

          添加时间复杂度, 示例: O(n)O(n)

          空间复杂度:

          添加空间复杂度, 示例: O(n)O(n)

          Code

          {

          #include<bits/stdc++.h>
          
           using namespace std;
          
           int a[6][6];
          
          int main()
          
          
          for(int i=1;i<=5;i++)
          {
          	for(int j=1;j<=5;j++)
          	{
          		cin>>a[i][j];
          	}
          }
          for(int i=1;i<=5;i++)
          {
          	bool flag=true;
          	for(int j=1;j<=5;j++)
          	{
          		if(a[i][j]==0) flag=false;
          	}
          	if(flag==true)
          	{
          		cout<<"Yes";
          		return 0;
          	}
          	flag=true;
          	for(int j=1;j<=5;j++)
          	{
          		if(a[j][i]==0) flag=false;
          	}
          	if(flag==true)
          	{
          		cout<<"Yes";
          		return 0;
          	}
          	else if(i==1)
          	{
          		flag=true;
          		for(int j=i;j<=5;j++)
          		{
          			if(a[j][j]==0) flag=false;
          		}
          		if(flag==true)
          	    {
          		    cout<<"Yes";
          		    return 0;
          		}
          	}
          	else if(i==5)
          	{
          		flag=true;
          		for(int j=5;j>=1;j--)
          		{
          			if(a[j][j]==0) flag=false;
          		}
          		if(flag==true)
          	    {
          		    cout<<"Yes";
          		    return 0;
          		}
          	}
          }
          cout<<"No";
          return 0;
          

          }

          • 1

          信息

          ID
          46
          时间
          1000ms
          内存
          512MiB
          难度
          1
          标签
          递交数
          370
          已通过
          221
          上传者