2 条题解

  • 1
    @ 2025-4-19 22:06:46

    #include using namespace std;

    int pile[14][5], open[13];

    inline bool ban(char c) { if(c <= '9' && c >= '0') return 0; if(c == 'A' || c == 'J' || c == 'Q' || c == 'K') { return 0; } return 1; }

    inline int get(char c) { if(c == 'A') { return 1; } if(c == 'J') { return 11; } if(c == 'Q') { return 12; } if(c == 'K') { return 13; } if(c == '0') { return 10; } return c - '0'; }

    int main() { for(int i = 1; i <= 13; i++) { for(int j = 4; j >= 1; j--) { char c = getchar(); while(ban(c)) { c = getchar(); } pile[i][j] = get(c); } } pile[13][0] = 4; while(pile[13][0]) { int k = pile[13][pile[13][0]]; pile[13][0]--; while(k != 13) { open[k]++; pile[k][0]++; k = pile[k][pile[k][0]]; } } int ans = 0; for(int i = 1; i <= 12; i++) { ans += (open[i] == 4); } printf("%d", ans); return 0; }

    
    ```
    `
    • 0
      @ 2021-8-7 18:41:45

      C++ :

      #include <cstdio>
      using namespace std;
      
      int pile[14][5], open[13];
      
      inline bool ban(char c) {
          if(c <= '9' && c >= '0') return 0;
          if(c == 'A' || c == 'J' || c == 'Q' || c == 'K') {
              return 0;
          }
          return 1;
      }
      
      inline int get(char c) {
          if(c == 'A') {
              return 1;
          }
          if(c == 'J') {
              return 11;
          }
          if(c == 'Q') {
              return 12;
          }
          if(c == 'K') {
              return 13;
          }
          if(c == '0') {
              return 10;
          }
          return c - '0';
      }
      
      int main() {
          for(int i = 1; i <= 13; i++) {
              for(int j = 4; j >= 1; j--) {
                  char c = getchar();
                  while(ban(c)) {
                      c = getchar();
                  }
                  pile[i][j] = get(c);
              }
          }
          pile[13][0] = 4;
          while(pile[13][0]) {
              int k = pile[13][pile[13][0]];
              pile[13][0]--;
              while(k != 13) {
                  open[k]++;
                  pile[k][0]++;
                  k = pile[k][pile[k][0]];
              }
          }
          int ans = 0;
          for(int i = 1; i <= 12; i++) {
              ans += (open[i] == 4);
          }
          printf("%d", ans);
          return 0;
      }
      
      
      • 1

      信息

      ID
      28
      时间
      1000ms
      内存
      128MiB
      难度
      1
      标签
      递交数
      118
      已通过
      100
      上传者