5 条题解

  • 27
    @ 2023-8-3 13:34:33

    &地砖&

    状态转移方程:f[i]=f[i1]+2f[i2]状态转移方程:f[i]=f[i−1]+2∗f[i−2]

    参考代码
    #include<cstdio>
    #define x 12345
    using namespace std;
    int f[1005] = {0,1,3},n;
    int main()
    {
    	scanf("%d",&n);
    	for(int i = 3;i <= n;i++)
    		f[i] = (f[i-1] + f[i-2] * 2 % x) % x;
    	printf("%d",f[n]);
    	return 0;
    }
    
    思路 and 分析
    -状态定义定义 f[i]为铺i*3个数的方案数。
    -初始状态f[1]为铺1∗3个数的方案数,只能全用1∗1,所以f[1]=1。f[2]为取2∗3个数的方案数,枚举可知有4种,所以f[2]=3。

    点赞再抱走~
    hetao8554411

    20230804

    • @ 2024-3-2 11:38:54

      xd,状态转移方程最好的写法是用下标,大概是这个样子:

      fi=fi1+2×fi2f_{i}=f_{i - 1} + 2 \times f_{i - 2}

      Katex代码如下:

      f_{i}=f_{i - 1} + 2 \times f_{i - 2}
      
  • 10
    @ 2023-7-6 16:33:34
    思路 $\\$($1$)状态定义: $\\$定义$f[i]$为铺$i*3$个数的方案数。 $\\$($2$)初始状态: $\\$$f[1]$为铺$1*3$个数的方案数,只能全用$1*1$,所以$f[1]=1$。 $\\$$f[2]$为取$2*3$个数的方案数,枚举可知有$4$种,所以$f[2]=3$。 $\\$($3$)状态转移方程: $\\$对于$f[i]$而言考虑最后一行用不用$2*2$。 $\\$如果不用,全用$1*1$,前面$i-1$行的方案数为$f[i-1]$. $\\$如果用,那么会伸到$i-1$,且有$2$个位置可以选择,前面$i-1$行的方案数为$f[i-2]$. $\\$所以状态转移方程为:$f[i]=f[i-1]+2*f[i-2];$
    代码
    
    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    int f[1005],n;
    int main()
    {
    	cin>>n;
    	f[1]=1;f[2]=3;
    	for(int i=3;i<=n;i++)
    	{
    		f[i]=(f[i-1]+f[i-2]*2%12345)%12345;
    	}
    	cout<<f[n];
    	return 0;
     }
    
    
  • 6
    @ 2024-4-27 13:45:14
    #include <bits/stdc++.h>//hetao1802625
    using namespace std;
    const int MOD = 12345;
    int n,a[100001];
    int main(){
    cin >> n;
    a[1]=1;a[2]=3;
    for(int i = 3;i <= n;i++) a[i] = (a[i-1]+a[i-2]*2%MOD)%MOD;
    cout << a[n];
    return 0;
    }
    


    *和上一题思路差不多*

    点赞再抱走~

    • 2
      @ 2024-5-26 15:46:07

      致不想用草稿纸的:

      image

      image

      image

      #include <iostream>
      #include <algorithm>
      #include <cmath>
      using namespace std;
      //
      const int MOD=12345;
      const long long MAXN=24242424;
      int n;
      int f[MAXN];//fi代表铺i*3方案数
      //
      int main()
      {
          cin>>n;
          f[1]=1;
          f[2]=3;
          for (int i=3;i<=n;i++)
              f[i]=(f[i-2] * 2 % MOD + f[i-1]) % MOD;
          cout<<f[n];
          return 0;
      }
      

      咱们在取模方面也是拿捏的ss的😇😇😇

      • -1
        @ 2023-8-16 23:22:35
        感谢老师
        #include <bits/stdc++.h>//这你们懂                                                                                                                       //1
        using namespace std;                                                                                                                                                                                                            //1
        int f[1005],n;//开数组,变量                                                                                                                                                                                                                                                                            //1
        int main()                                                                                                                                                                                                                                                     //1
        {                                                                                                                                                                                                                                                                                                                                            //1
        cin>>n;                                                                                                                                                                                                                                                                                                                                                                                               //1
        f[1]=1;                                                                                                                                                                                                                                                    //1
        f[2]=3;//你们都懂                                                                                                                                                                           //1
                                                                                                                                                                                                                                                                                                                                                                                               while(1) cout<<"你居然抄题解!!!";
        for(int i=3;i<=n;i++) f[i]=(f[i-1]+f[i-2]*2%12345)%12345;//递推                                                                                                                                                                                                                                                                  //1
        cout<<f[n];//输出                                                                                                                                                                        //1
        return 0;                                                                                                                                                                                                         //1
        }                                                                                                                                                                                                                                                                                    //1
        
      • 1

      信息

      ID
      263
      时间
      1000ms
      内存
      256MiB
      难度
      4
      标签
      (无)
      递交数
      1000
      已通过
      443
      上传者