6 solutions

  • 7
    @ 2025-1-16 14:11:22

    感谢npr123f

    #include<bits/stdc++.h>
    using namespace std;
    int a, b, d, e;//已知数
    int c, f, g, h, i;//未知数
    int h1, h2, h3, w1, w2, w3;
    int sum=0;
    
    int main()
    {
    	cin>> h1 >> h2 >> h3 >> w1 >> w2 >> w3;
    	for(a = 1; a <= 28; a++)
    	{
    		for(b = 1; b <= 28; b++)
    		{
    			for(d = 1; d <= 28;d++)
    			{
    				for(e = 1; e <= 28;e++)
    				{
    					c=h1-a-b;
    					f=h2-d-e;
    					h=w2-b-e;
    					g=w1-a-d;
    					i=h3-g-h;
    					if(i+c+f==w3 && c>0 && f>0 && h>0 && g>0 && i>0)
    					{
    						sum++;
    					}
    				}
    			}
    		}
    	}
    	cout<<sum;
    	return 0;
    }
    
    
    
    
    
    • 6
      @ 2024-11-26 19:41:36

      狗市题目去死

    • 4
      @ 2025-1-17 14:01:27
      #include <bits/stdc++.h>
      using namespace std;
      int a, b, d, e, c, f, i, h, g, h1, h2, h3, w1, w2, w3, cnt;
      int main()
      {
       	cin >> h1 >> h2 >> h3 >> w1 >> w2 >> w3;
       	// 4层for循环,不会超时,但爽啊!!! 
      	for (a = 1; a < min(h1, w1); a++)
       	{
        		for (b = 1; b < min(h1, w2); b++)
        		{
         			for (d = 1; d < min(h2, w1); d++)
         			{
          			for (e = 1; e < min(h2, w2); e++)
          			{
           				// 把每种数字算出来 
      					c = h1 - a - b;
           				f = h2 - d - e;
           				h = w2 - b - e;
           				g = w1 - a - d;
           				i = h3 - g - h;
           				// 换成正数,用绝对值即可 
           				// 注意:if (!c) 等同于 if (c == 0)
           				c = abs(c);
      					if (!c) c = 1;
           				f = abs(f);
      					if (!f) f = 1;
           				h = abs(h);
      					if (!h) h = 1;
           				g = abs(g);
      					if (!g) g = 1;
           				i = abs(i);
      					if (!i) i = 1;
      					// 判断一波 (好长的代码) 
      					// 然后累加起来就是答案了 
           				if (a + b + c == h1 && d + e + f == h2 && g + h + i == h3 && a + d + g == w1 && b + e + h == w2 && c + f + i == w3) cnt++;
          			} 
         			}
        		}
       	}
       	cout << cnt << endl; // 输出答案 
       	return 0;
      }
      
      
      • -1
        @ 2023-10-29 11:10:06

        想了好久👀️ !终于做出来了!😄

        不要用暴力!!! ------ 会超时
        先看方法:
        a  b  c
        d  e  f
        g  h  i
        先把a,b,d,e算出来先(用四重for循环!算(不会超时的))(结束范围用min())
        再推断c,f,i,h,g的数字
        一定要取它的正整数(不为负数与0)
        再判断(合格就统计)
        最后输出
        

        所以代码:

        #include<bits/stdc++.h>
        using namespace std;
        int a,b,d,e,c,f,i,h,g,h1,h2,h3,w1,w2,w3,s=0;
        bool fun()//判断是否合格
        {
         //这段真长
         if(a+b+c==h1 && d+e+f==h2 && g+h+i==h3 && a+d+g==w1 && b+e+h==w2 && c+f+i==w3)
         {
          return true;
         }
         else
         {
          return false;
         }
        }
        int main()
        {
         cin>>h1>>h2>>h3>>w1>>w2>>w3;//输入
         //四重for循环,还好,不会超时
         for(a=1;a<min(h1,w1);a++)
         {
          for(b=1;b<min(h1,w2);b++)
          {
           for(d=1;d<min(h2,w1);d++)
           {
            for(e=1;e<min(h2,w2);e++)
            {
             //把每种数字算出来
             c=h1-a-b;
             f=h2-d-e;
             h=w2-b-e;
             g=w1-a-d;
             i=h3-g-h;
             //换成正整数
             c=abs(c);if(c==0)c=1;
             f=abs(f);if(f==0)f=1;
             h=abs(h);if(h==0)h=1;
             g=abs(g);if(g==0)g=1;
             i=abs(i);if(i==0)i=1;
             if(fun())//是否合格(像你期盼的AC一样)
             {
              s++;//统计
             }
            }
           }
          }
         }
         cout<<s;//输出
         return 0;//完结散花!
        }
        

        hmz的问题已修改

        • @ 2023-10-30 13:28:41

          不是abcd吧,是abde吧

          a  b  c
          d  e  f
          g  h  i
          先把a,b,d,e算出来先(用四重for循环!算(不会超时的))(结束范围用min())
          再推断c,f,i,h,g的数字
          一定要取它的正整数(不为负数与0)
          再判断(合格就统计)
          最后输出
          
      • -2
        @ 2025-1-16 14:05:32

        蘸豆爽

        /*
        		w1 w2 w3
        	h1  a  b  c
        	h2  d  e  f
        	h3  g  h  i 
        */ 
        #include<iostream>
        using namespace std;
        int a,b,c,d,e,f,g,h,i;
        int cnt;
        int h1,h2,h3,w1,w2,w3;
        int main(){
        	cin>>h1>>h2>>h3>>w1>>w2>>w3;
        	for(a=1;a<=28;a++){
        		for(c=1;c<=29-a;c++){
        			for(g=1;g<=29-a;g++){
        				for(i=1;i<=28;i++){
        					d=w1-a-g;
        					f=w3-c-i;
        					b=h1-a-c;
        					h=h3-g-i;
        					e=w2-b-h;
        					if(d<=0||f<=0||b<=0||h<=0||e<=0) continue;
        					if(d+e+f==h2) cnt++;
        				}
        			}
        		}
        	}
        	cout<<cnt;
        	return 0;
        }
        • -3
          @ 2025-1-16 13:37:25

          四层for优化

          #include<cstdio>
          int a[3][3],sum[6],cnt=0;
          int main()
          {
          	for(int i=0;i<6;++i)
          		scanf("%d",&sum[i]);
          //	for(int i=0;i<6;++i)
          //		printf("%d ",sum[i]);
          //	printf("\n");
          	for(a[0][0]=1;a[0][0]<=sum[0];++a[0][0])
          	{
          		for(a[0][1]=1;a[0][1]<=sum[0];++a[0][1])
          		{
          			for(a[1][0]=1;a[1][0]<=sum[1];++a[1][0])
          			{
          				for(a[1][1]=1;a[1][1]<=sum[1];++a[1][1])
          				{
          //					for(a[2][0]=1;a[2][0]<=27;++a[2][0])
          //					{
          //						for(a[2][1]=1;a[2][1]<=27;++a[2][1])
          //						{
          							a[0][2]=sum[0]-a[0][0]-a[0][1];
          							a[1][2]=sum[1]-a[1][0]-a[1][1];
          							a[2][0]=sum[3]-a[0][0]-a[1][0];
          							a[2][1]=sum[4]-a[0][1]-a[1][1];
          							a[2][2]=sum[5]-a[0][2]-a[1][2];
          //							for(int i=0;i<3;++i)
          //							{
          //								for(int j=0;j<3;++j)
          //									printf("%d ",a[i][j]);
          //								printf("\n");
          //							}
          //							printf("\n");
          							if(a[2][0]+a[2][1]+a[2][2]==sum[2]&&a[2][0]>0&&a[2][1]>0&&a[2][2]>0&&a[0][2]>0&&a[1][2]>0)
          							{
          //								for(int i=0;i<3;++i)
          //								{
          //									for(int j=0;i<3;++j)
          //										printf("%d ",a[i][j]);
          //									printf("\n");
          //								}
          								cnt++;
          							}
          //						}
          //					}
          				}
          			}
          		}
          	}
          	printf("%d",cnt);
          	return 0;
          }
          
          • @ 2025-1-16 13:49:52

            (缩代码!!!)

            #include<cstdio>
            int a[3][3],sum[6],cnt=0;
            int main()
            {
            	for(int i=0;i<6;++i) scanf("%d",&sum[i]);
            	for(a[0][0]=1;a[0][0]<=sum[0];++a[0][0])
            	{
            		for(a[0][1]=1;a[0][1]<=sum[0];++a[0][1])
            		{
            			for(a[1][0]=1;a[1][0]<=sum[1];++a[1][0])
            			{
            				for(a[1][1]=1;a[1][1]<=sum[1];++a[1][1])
            				{
            					a[0][2]=sum[0]-a[0][0]-a[0][1];
            					a[1][2]=sum[1]-a[1][0]-a[1][1];
            					a[2][0]=sum[3]-a[0][0]-a[1][0];
            					a[2][1]=sum[4]-a[0][1]-a[1][1];
            					a[2][2]=sum[5]-a[0][2]-a[1][2];
            					if(a[2][0]+a[2][1]+a[2][2]==sum[2]&&a[2][0]>0&&a[2][1]>0&&a[2][2]>0&&a[0][2]>0&&a[1][2]>0) cnt++;
            				}
            			}
            		}
            	}
            	printf("%d",cnt);
            	return 0;
            }
            
            
          • @ 2025-2-7 23:15:35

            @ 缩代码+有意义的数组写得多好看啊😡守护!谁在差评

        • 1

        Information

        ID
        936
        Time
        1000ms
        Memory
        512MiB
        Difficulty
        9
        Tags
        (None)
        # Submissions
        308
        Accepted
        26
        Uploaded By