2 条题解

  • 0
    @ 2025-10-8 16:54:57
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    int n, a[3][4];
    bool v[110];
    bool pd(int x, int y) { return (abs(x - y) <= 2) || (abs(x - y) >= n - 2); }
    bool check(int i, int j, int k, int t)
    {
        if (pd(i, a[t][1]) && pd(j, a[t][2]) && pd(k, a[t][3])) return True; else return False;
    }
    int main()
    {
        scanf("%d", &n);
        for (int i = 1; i <= 2; i++)for (int j = 1; j <= 3; j++)scanf("%d", &a[i][j]);
        int ans = 0;
        for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)for (int k = 1; k <= n; k++)if (check(i, j, k, 1) || check(i, j, k, 2))ans++;
        printf("%d\n", ans);
        return 0;
    }
    
    • 0
      @ 2025-10-8 16:54:46
      #include<bits/stdc++.h>
      using namespace std;
      typedef long long LL;
      int n,a[3][4];
      bool v[110];
      bool pd(int x,int y){ return (abs(x-y)<=2)||(abs(x-y)>=n-2); }
      bool check(int i,int j,int k,int t)
      {
      	if( pd(i,a[t][1]) && pd(j,a[t][2]) && pd(k,a[t][3]) ) return True; else return False;
      }
      int main()
      {
          scanf("%d",&n);
          for(int i=1;i<=2;i++)for(int j=1;j<=3;j++)scanf("%d",&a[i][j]);
          int ans=0;
      	for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)for(int k=1;k<=n;k++)if(check(i,j,k,1)||check(i,j,k,2))ans++;
          printf("%d\n",ans);
          return 0;
      }
      • 1

      【模拟】[USACO1.3] 号码锁 Combination Lock

      信息

      ID
      990
      时间
      1000ms
      内存
      128MiB
      难度
      5
      标签
      递交数
      181
      已通过
      65
      上传者