2 条题解

  • 3
    @ 2022-2-25 15:58:07
    
    /*
    9个操作,每个操作最多做3次
    因为超过3次之后就回到原位置了。 
    所以可以9个for循环枚举每个操作 
    设置i[10]数组,i[1]~i[9]代表1到9这个操作 
    A始终受操作1,2,4的影响
    时钟初始保存在数组mp[9]里
    那么mp[1]的变化就是mp[1]+i[1]+i[2]+i[4]在对4取余
    其余时钟变化也可以顺势表示出来
    全部加起来求和如果等于0就全部归位了
    全部等于0只能是9个0加起来没有别的情况因为不存在负数 
    */
    #include<bits/stdc++.h>
    using namespace std;
    int n,mp[10],i[10];
    int main()
    {
    	for(int i=1;i<=9;i++)
    	{
    		cin>>mp[i];
    	} 
    	for(i[1]=0;i[1]<4;i[1]++)
    	{
    		for(i[2]=0;i[2]<4;i[2]++)
    		{
    			for(i[3]=0;i[3]<4;i[3]++)
    			{
    				for(i[4]=0;i[4]<4;i[4]++)
    				{
    					for(i[5]=0;i[5]<4;i[5]++)
    					{
    						for(i[6]=0;i[6]<4;i[6]++)
    						{
    							for(i[7]=0;i[7]<4;i[7]++)
    							{
    								for(i[8]=0;i[8]<4;i[8]++)
    								{
    									for(i[9]=0;i[9]<4;i[9]++)
    									{
    										int sum=0;
                                            sum+=(mp[1]+i[1]+i[2]+i[4])%4;//时钟A受操作1和2和4的影响其余同理 
                                            sum+=(mp[2]+i[1]+i[2]+i[3]+i[5])%4;
                                            sum+=(mp[3]+i[2]+i[3]+i[6])%4;
                                            sum+=(mp[4]+i[1]+i[4]+i[5]+i[7])%4;
                                            sum+=(mp[5]+i[1]+i[3]+i[5]+i[7]+i[9])%4;
                                            sum+=(mp[6]+i[3]+i[5]+i[6]+i[9])%4;
                                            sum+=(mp[7]+i[4]+i[7]+i[8])%4;
                                            sum+=(mp[8]+i[5]+i[7]+i[8]+i[9])%4;
                                            sum+=(mp[9]+i[6]+i[8]+i[9])%4;
    										if(sum==0)
    										{
    											for(int x=1;x<=9;x++)
    											{
    												while(i[x]--) cout<<x<<" ";
    											}
    											return 0;
    										}
    									}	
    								} 
    							}
    						}
    					}
    				}
    			}
    		}
    	} 
    	return 0;
    }
    • -7
      @ 2022-4-24 16:40:39

      写题解请注意

      鼓励大家写题解,但注意题解格式。

      题解一定要有思路解析或代码注释,能否让别人理解你的思路

      也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。

      给代码两端加上这个会舒服一些

      ```cpp

      你的代码

      ```

      </span>

      这个点在键盘的左上角tab上面那个键,注意切换输入法

      #include<iostream>
      using namespace std;
      int main()
      {
          int n;
          cin>>n;//这是一个注释
          return 0;
      } 
      

      请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

      抄袭题解一经发现直接取消成绩。

      题解被删除的可能

      1. 代码不符合格式规范
      2. 没有思路讲解或者没有注释,
      3. 无意义的题解

      大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。

      • 1

      信息

      ID
      118
      时间
      1000ms
      内存
      256MiB
      难度
      2
      标签
      递交数
      61
      已通过
      40
      上传者