鱼C论坛

 找回密码
 立即注册
查看: 2694|回复: 31

[已解决]关于openjudge的无解题

[复制链接]
匿名鱼油
匿名鱼油  发表于 2021-7-18 10:14:54 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 匿名 于 2021-7-19 15:31 编辑
  1. #include<bits/stdc++.h>
  2. #define N 4000
  3. char a[10001][N];
  4. char* antemp;
  5. void add(char* a1,char* a2)
  6. {
  7.         int jw = 0;
  8.         for(int j = 1;j < N;a1++,a2++,j++)
  9.         {
  10.                 *a1 = *a1+ *a2 + jw;
  11.                 jw = *a1 / 10;*a1 %= 10;
  12.         }
  13. }
  14. void sub(char* a1,char* a2)
  15. {
  16.         int jw = 0;
  17.         for(int j = 1;j < N;a1++,a2++,j++)
  18.         {
  19.                 *a1 = *a1 - *a2 - jw;
  20.                 if(*a1 < 0)
  21.                 {
  22.                         *a1 += 10;jw = 1;
  23.                 }
  24.                 else
  25.                 {
  26.                         jw = 0;
  27.                 }
  28.         }
  29. }
  30. void mul(char* a1,int n)
  31. {
  32.         int jw = 0;
  33.         for(int j = 1;j < N;a1++,j++)
  34.         {
  35.                 *a1 = (*a1) * n + jw;
  36.                 jw = *a1 / 10; *a1 %= 10;
  37.         }
  38. }
  39. void pri(char* s)///OK
  40. {
  41.         char * f=s + N - 1;
  42.         for(; f > s && *f == 0;f--);
  43.         for(; f >= s;f--)
  44.         {
  45.                 putchar(*f + 48);
  46.         }
  47.         putchar('\n');
  48. }
  49. int main()
  50. {
  51.         antemp = a[0];
  52.         int n,b;
  53.         scanf("%d",&b);
  54.         memset(a,0,sizeof(a));
  55.         a[1][0] = 1;
  56.         a[2][0] = 3;
  57.         a[3][0] = 3;
  58.         a[4][0] = 8;
  59.         a[5][0] = 2;
  60.         a[6][0] = 7;
  61.         a[5][1] = 1;
  62.         a[6][1] = 2;
  63.         for(n = 7;n <= b;n++)
  64.         {
  65.                 memset(antemp,0,N);
  66.                 add(a[n],a[n-1]);
  67.                 add(antemp,a[n-2]);
  68.                 mul(antemp,3);
  69.                 add(a[n],antemp);
  70.                 sub(a[n],a[n-3]);
  71.                 memset(antemp,0,n);
  72.                 add(antemp,a[n-5]);
  73.                 mul(antemp,2);
  74.                 sub(a[n],antemp);
  75.                 memset(antemp,0,n);
  76.                 add(antemp,a[n-6]);
  77.                 mul(antemp,4);
  78.                 sub(a[n],antemp);
  79.         }
  80.         pri(a[b]);
  81.         return 0;
  82. }
复制代码

这是一个有可能过的(至少思路没问题)
https://oj.nbdp.net/status.php?problem_id=3249&jresult=4
这是另一个网站上的同一个题,但对时间比较宽松

我的思路:
如果能做一个把输入的内容提取出来到文件/网页上的话
打表就有可能了

可能吗?
最佳答案
2021-7-19 22:50:32
我也试着写了一个,同样是超时
我特别不喜欢这类题目,为了效率,要把代码写的非常没有可读性
我尝试着修改这个代码来通过测试,但是我放弃了,因为代码越改越差,我开始怀疑了,为了通过这个测试,把代码写成那样值得吗?
我放弃了写那样的代码,那样的代码看着难受



如果能做一个把输入的内容提取出来到文件/网页上的话
输入的内容?
输出的内容?
是把所有的可能输出出来?
我正是这样写代码的
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <stdbool.h>

  5. // *************************************** matrix *************************************
  6. typedef struct {
  7.     int *data;
  8.     size_t width;
  9.     size_t height;
  10. } matrix_t;

  11. matrix_t *matrix_init(size_t width, size_t height) {
  12.     matrix_t *matrix = malloc(sizeof(*matrix));
  13.     if(!matrix) return NULL;
  14.     matrix->width = width;
  15.     matrix->height = height;
  16.     matrix->data = malloc(sizeof(*matrix->data) * matrix->width * matrix->height);
  17.     if(!matrix->data) {free(matrix); return NULL;}
  18.     memset(matrix->data, 0, sizeof(*matrix->data) * matrix->width * matrix->height);
  19.     return matrix;
  20. }

  21. void matrix_deinit(matrix_t *matrix) {
  22.     if(matrix) free(matrix->data);
  23.     free(matrix);
  24. }

  25. void matrix_print(const matrix_t *matrix) {
  26.     if(!matrix) return;
  27.     for(size_t h = 0; h < matrix->height; ++h) {
  28.         for(size_t w = 0; w < matrix->width; ++w) {
  29.             printf("%d ", matrix->data[h * matrix->width + w]);
  30.         }
  31.         printf("\n");
  32.     }
  33. }

  34. void matrix_set(matrix_t *matrix, size_t x, size_t y, int value) {
  35.     if(!matrix) return;
  36.     if(x >= matrix->width) return;
  37.     if(y >= matrix->height) return;
  38.     matrix->data[y * matrix->width + x] = value;
  39. }

  40. int matrix_get(const matrix_t *matrix, size_t x, size_t y, bool *status) {
  41.     if(!matrix || x >= matrix->width || y >= matrix->height) {
  42.         if(status) *status = 0;
  43.         return -1;
  44.     }
  45.     if(status) *status = 1;
  46.     return matrix->data[y * matrix->width + x];
  47. }

  48. matrix_t *matrix_clone(const matrix_t *matrix) {
  49.     if(!matrix) return NULL;
  50.     matrix_t *dst = matrix_init(matrix->width, matrix->height);
  51.     memcpy(dst->data, matrix->data, sizeof(*matrix->data) * matrix->width * matrix->height);
  52.     return dst;
  53. }

  54. bool matrix_compare(const matrix_t *a, const matrix_t *b) {
  55.     if(a == b) return true;
  56.     if(!a || !b) return false;
  57.     if(a->width != b->width) return false;
  58.     if(a->height != b->height) return false;
  59.     if(memcmp(a->data, b->data, sizeof(*a->data) * a->width * a->height)) return false;
  60.     return true;
  61. }

  62. matrix_t *matrix_reverse(const matrix_t *matrix) {
  63.     matrix_t *r = matrix_init(matrix->width, matrix->height);
  64.     for(size_t h = 0; h < r->height; ++h) {
  65.         for(size_t w = 0; w < r->width; ++w) {
  66.             matrix_set(r, w, h, matrix_get(matrix, r->width - w - 1, h, NULL));
  67.         }
  68.     }
  69.     return r;
  70. }

  71. // **************************************** list **************************************
  72. typedef struct list_node_tag {
  73.     matrix_t *matrix;
  74.     struct list_node_tag *next;
  75. } list_node_t;

  76. typedef struct {
  77.     list_node_t *node;
  78.     size_t size;
  79. } list_t;

  80. list_t *list_init(void) {
  81.     list_t *list = malloc(sizeof(*list));
  82.     if(!list) return NULL;
  83.     list->node = NULL;
  84.     list->size = 0;
  85.     return list;
  86. }

  87. size_t list_size(const list_t *list) {
  88.     if(!list) return 0;
  89.     return list->size;
  90. }

  91. bool list_empty(const list_t *list) {
  92.     if(!list) return true;
  93.     return list_size(list) == 0;
  94. }

  95. bool list_insert(list_t *list, size_t index, const matrix_t *matrix) {
  96.     if(!list) return false;
  97.     if(index > list_size(list)) return false;
  98.     list_node_t *n = malloc(sizeof(*n));
  99.     if(!n) return false;
  100.     n->matrix = (matrix_t *)matrix;
  101.     list_node_t **p = &list->node;
  102.     while(index--) p = &(*p)->next;
  103.     n->next = *p; *p = n;
  104.     ++list->size; return true;
  105. }

  106. bool list_get(const list_t *list, size_t index, matrix_t **matrix) {
  107.     if(!list) return false;
  108.     if(index >= list_size(list)) return false;
  109.     list_node_t *p = list->node;
  110.     while(index--) p = p->next;
  111.     *matrix = p->matrix; return true;
  112. }

  113. bool list_append(list_t *list, const matrix_t *matrix) {
  114.     if(!list) return false;
  115.     return list_insert(list, list_size(list), matrix);
  116. }

  117. bool list_delete(list_t *list, size_t index) {
  118.     if(!list) return false;
  119.     if(index >= list_size(list)) return false;
  120.     list_node_t **p = &list->node;
  121.     while(index--) p = &(*p)->next;
  122.     list_node_t *temp = *p;
  123.     *p = temp->next;
  124.     matrix_deinit(temp->matrix); free(temp);
  125.     --list->size; return true;
  126. }

  127. bool list_clear(list_t *list) {
  128.     if(!list) return false;
  129.     while(!list_empty(list)) list_delete(list, 0);
  130.     return true;
  131. }

  132. void list_deinit(list_t *list) {
  133.     if(!list) return;
  134.     list_clear(list); free(list);
  135. }
  136. // ************************************************************************************

  137. void change_value(matrix_t *matrix, size_t type, size_t x, size_t y, int value) {
  138.     switch(type) {
  139.         case 0: {
  140.             matrix_set(matrix, x, y, value);
  141.             matrix_set(matrix, x + 1, y, value);
  142.         } break;
  143.         case 1: {
  144.             matrix_set(matrix, x, y, value);
  145.             matrix_set(matrix, x, y + 1, value);
  146.         } break;
  147.         case 2: {
  148.             matrix_set(matrix, x, y, value);
  149.             matrix_set(matrix, x + 1, y, value);
  150.             matrix_set(matrix, x, y + 1, value);
  151.             matrix_set(matrix, x + 1, y + 1, value);
  152.         } break;
  153.     }
  154. }

  155. bool find_space(const matrix_t *matrix, size_t type, size_t *x, size_t *y) {
  156.     switch(type) {
  157.         case 0: {
  158.             for(size_t h = 0; h < matrix->height; ++h) {
  159.                 for(size_t w = 0; w < matrix->width - 1; ++w) {
  160.                     if(matrix_get(matrix, w, h, NULL) != 0) continue;
  161.                     if(matrix_get(matrix, w + 1, h, NULL) != 0) continue;
  162.                     *x = w; *y = h; return true;
  163.                 }
  164.             }
  165.         } break;
  166.         case 1: {
  167.             for(size_t w = 0; w < matrix->width; ++w) {
  168.                 if(matrix_get(matrix, w, 0, NULL) != 0) continue;
  169.                 if(matrix_get(matrix, w, 1, NULL) != 0) continue;
  170.                 *x = w; *y = 0; return true;
  171.             }
  172.         } break;
  173.         case 2: {
  174.             for(size_t w = 0; w < matrix->width - 1; ++w) {
  175.                 if(matrix_get(matrix, w, 0, NULL) != 0) continue;
  176.                 if(matrix_get(matrix, w, 1, NULL) != 0) continue;
  177.                 if(matrix_get(matrix, w + 1, 0, NULL) != 0) continue;
  178.                 if(matrix_get(matrix, w + 1, 1, NULL) != 0) continue;
  179.                 *x = w; *y = 0; return true;
  180.             }
  181.         } break;
  182.     }
  183.     return false;
  184. }

  185. bool verify(const list_t *list, const matrix_t *matrix) {
  186.     for(size_t i = 0; i < list_size(list); ++i) {
  187.         matrix_t *m; list_get(list, i, &m);
  188.         if(matrix_compare(matrix, m)) return false;
  189.         matrix_t *r = matrix_reverse(matrix);
  190.         if(matrix_compare(r, m)) {
  191.             matrix_deinit(r); return false;
  192.         }
  193.         matrix_deinit(r);
  194.     }
  195.     return true;
  196. }

  197. void paving_bricks(matrix_t *matrix, list_t *list) {
  198.     bool found = false;
  199.     for(size_t i = 0; i < 3; ++i) {
  200.         size_t x, y;
  201.         if(find_space(matrix, i, &x, &y)) {
  202.             found = true;
  203.             change_value(matrix, i, x, y, i + 1);
  204.             paving_bricks(matrix, list);
  205.             change_value(matrix, i, x, y, 0);
  206.         }
  207.     }
  208.     if(!found && verify(list, matrix)) {
  209.         list_append(list, matrix_clone(matrix));
  210.     }
  211. }

  212. int main(void) {
  213.     size_t width;
  214.     scanf("%lu", &width);
  215.     list_t *list = list_init();
  216.     matrix_t *matrix = matrix_init(width, 2);
  217.     paving_bricks(matrix, list);
  218.     for(size_t i = 0; i < list_size(list); ++i) {
  219.         matrix_t *matrix; list_get(list, i, &matrix);
  220.         matrix_print(matrix); printf("\n");
  221.     }
  222.     printf("%lu\n", list_size(list));
  223.     matrix_deinit(matrix);
  224.     list_deinit(list);
  225.     return 0;
  226. }
复制代码
回复

使用道具 举报

发表于 2021-7-18 10:38:22 | 显示全部楼层

回帖奖励 +5 鱼币

不要发一大堆代码上来,要发请用代码格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-18 10:51:15 | 显示全部楼层

回帖奖励 +5 鱼币

学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

匿名鱼油
匿名鱼油  发表于 2021-7-18 19:37:47
jxd12345 发表于 2021-7-18 10:38
不要发一大堆代码上来,要发请用代码格式

好的
回复 支持 反对

使用道具 举报

发表于 2021-7-18 21:01:13 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-19 11:17:09 | 显示全部楼层
感谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-19 12:33:05 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

匿名鱼油
匿名鱼油  发表于 2021-7-19 14:48:49
Runtime error
应该不行
回复 支持 反对

使用道具 举报

发表于 2021-7-19 14:50:52 | 显示全部楼层
代码太乱了,加点缩进
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

匿名鱼油
匿名鱼油  发表于 2021-7-19 15:31:35

OK
回复 支持 反对

使用道具 举报

发表于 2021-7-19 17:37:12 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-19 22:05:32 | 显示全部楼层
感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-19 22:50:32 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +5 鱼币

我也试着写了一个,同样是超时
我特别不喜欢这类题目,为了效率,要把代码写的非常没有可读性
我尝试着修改这个代码来通过测试,但是我放弃了,因为代码越改越差,我开始怀疑了,为了通过这个测试,把代码写成那样值得吗?
我放弃了写那样的代码,那样的代码看着难受



如果能做一个把输入的内容提取出来到文件/网页上的话
输入的内容?
输出的内容?
是把所有的可能输出出来?
我正是这样写代码的
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <stdbool.h>

  5. // *************************************** matrix *************************************
  6. typedef struct {
  7.     int *data;
  8.     size_t width;
  9.     size_t height;
  10. } matrix_t;

  11. matrix_t *matrix_init(size_t width, size_t height) {
  12.     matrix_t *matrix = malloc(sizeof(*matrix));
  13.     if(!matrix) return NULL;
  14.     matrix->width = width;
  15.     matrix->height = height;
  16.     matrix->data = malloc(sizeof(*matrix->data) * matrix->width * matrix->height);
  17.     if(!matrix->data) {free(matrix); return NULL;}
  18.     memset(matrix->data, 0, sizeof(*matrix->data) * matrix->width * matrix->height);
  19.     return matrix;
  20. }

  21. void matrix_deinit(matrix_t *matrix) {
  22.     if(matrix) free(matrix->data);
  23.     free(matrix);
  24. }

  25. void matrix_print(const matrix_t *matrix) {
  26.     if(!matrix) return;
  27.     for(size_t h = 0; h < matrix->height; ++h) {
  28.         for(size_t w = 0; w < matrix->width; ++w) {
  29.             printf("%d ", matrix->data[h * matrix->width + w]);
  30.         }
  31.         printf("\n");
  32.     }
  33. }

  34. void matrix_set(matrix_t *matrix, size_t x, size_t y, int value) {
  35.     if(!matrix) return;
  36.     if(x >= matrix->width) return;
  37.     if(y >= matrix->height) return;
  38.     matrix->data[y * matrix->width + x] = value;
  39. }

  40. int matrix_get(const matrix_t *matrix, size_t x, size_t y, bool *status) {
  41.     if(!matrix || x >= matrix->width || y >= matrix->height) {
  42.         if(status) *status = 0;
  43.         return -1;
  44.     }
  45.     if(status) *status = 1;
  46.     return matrix->data[y * matrix->width + x];
  47. }

  48. matrix_t *matrix_clone(const matrix_t *matrix) {
  49.     if(!matrix) return NULL;
  50.     matrix_t *dst = matrix_init(matrix->width, matrix->height);
  51.     memcpy(dst->data, matrix->data, sizeof(*matrix->data) * matrix->width * matrix->height);
  52.     return dst;
  53. }

  54. bool matrix_compare(const matrix_t *a, const matrix_t *b) {
  55.     if(a == b) return true;
  56.     if(!a || !b) return false;
  57.     if(a->width != b->width) return false;
  58.     if(a->height != b->height) return false;
  59.     if(memcmp(a->data, b->data, sizeof(*a->data) * a->width * a->height)) return false;
  60.     return true;
  61. }

  62. matrix_t *matrix_reverse(const matrix_t *matrix) {
  63.     matrix_t *r = matrix_init(matrix->width, matrix->height);
  64.     for(size_t h = 0; h < r->height; ++h) {
  65.         for(size_t w = 0; w < r->width; ++w) {
  66.             matrix_set(r, w, h, matrix_get(matrix, r->width - w - 1, h, NULL));
  67.         }
  68.     }
  69.     return r;
  70. }

  71. // **************************************** list **************************************
  72. typedef struct list_node_tag {
  73.     matrix_t *matrix;
  74.     struct list_node_tag *next;
  75. } list_node_t;

  76. typedef struct {
  77.     list_node_t *node;
  78.     size_t size;
  79. } list_t;

  80. list_t *list_init(void) {
  81.     list_t *list = malloc(sizeof(*list));
  82.     if(!list) return NULL;
  83.     list->node = NULL;
  84.     list->size = 0;
  85.     return list;
  86. }

  87. size_t list_size(const list_t *list) {
  88.     if(!list) return 0;
  89.     return list->size;
  90. }

  91. bool list_empty(const list_t *list) {
  92.     if(!list) return true;
  93.     return list_size(list) == 0;
  94. }

  95. bool list_insert(list_t *list, size_t index, const matrix_t *matrix) {
  96.     if(!list) return false;
  97.     if(index > list_size(list)) return false;
  98.     list_node_t *n = malloc(sizeof(*n));
  99.     if(!n) return false;
  100.     n->matrix = (matrix_t *)matrix;
  101.     list_node_t **p = &list->node;
  102.     while(index--) p = &(*p)->next;
  103.     n->next = *p; *p = n;
  104.     ++list->size; return true;
  105. }

  106. bool list_get(const list_t *list, size_t index, matrix_t **matrix) {
  107.     if(!list) return false;
  108.     if(index >= list_size(list)) return false;
  109.     list_node_t *p = list->node;
  110.     while(index--) p = p->next;
  111.     *matrix = p->matrix; return true;
  112. }

  113. bool list_append(list_t *list, const matrix_t *matrix) {
  114.     if(!list) return false;
  115.     return list_insert(list, list_size(list), matrix);
  116. }

  117. bool list_delete(list_t *list, size_t index) {
  118.     if(!list) return false;
  119.     if(index >= list_size(list)) return false;
  120.     list_node_t **p = &list->node;
  121.     while(index--) p = &(*p)->next;
  122.     list_node_t *temp = *p;
  123.     *p = temp->next;
  124.     matrix_deinit(temp->matrix); free(temp);
  125.     --list->size; return true;
  126. }

  127. bool list_clear(list_t *list) {
  128.     if(!list) return false;
  129.     while(!list_empty(list)) list_delete(list, 0);
  130.     return true;
  131. }

  132. void list_deinit(list_t *list) {
  133.     if(!list) return;
  134.     list_clear(list); free(list);
  135. }
  136. // ************************************************************************************

  137. void change_value(matrix_t *matrix, size_t type, size_t x, size_t y, int value) {
  138.     switch(type) {
  139.         case 0: {
  140.             matrix_set(matrix, x, y, value);
  141.             matrix_set(matrix, x + 1, y, value);
  142.         } break;
  143.         case 1: {
  144.             matrix_set(matrix, x, y, value);
  145.             matrix_set(matrix, x, y + 1, value);
  146.         } break;
  147.         case 2: {
  148.             matrix_set(matrix, x, y, value);
  149.             matrix_set(matrix, x + 1, y, value);
  150.             matrix_set(matrix, x, y + 1, value);
  151.             matrix_set(matrix, x + 1, y + 1, value);
  152.         } break;
  153.     }
  154. }

  155. bool find_space(const matrix_t *matrix, size_t type, size_t *x, size_t *y) {
  156.     switch(type) {
  157.         case 0: {
  158.             for(size_t h = 0; h < matrix->height; ++h) {
  159.                 for(size_t w = 0; w < matrix->width - 1; ++w) {
  160.                     if(matrix_get(matrix, w, h, NULL) != 0) continue;
  161.                     if(matrix_get(matrix, w + 1, h, NULL) != 0) continue;
  162.                     *x = w; *y = h; return true;
  163.                 }
  164.             }
  165.         } break;
  166.         case 1: {
  167.             for(size_t w = 0; w < matrix->width; ++w) {
  168.                 if(matrix_get(matrix, w, 0, NULL) != 0) continue;
  169.                 if(matrix_get(matrix, w, 1, NULL) != 0) continue;
  170.                 *x = w; *y = 0; return true;
  171.             }
  172.         } break;
  173.         case 2: {
  174.             for(size_t w = 0; w < matrix->width - 1; ++w) {
  175.                 if(matrix_get(matrix, w, 0, NULL) != 0) continue;
  176.                 if(matrix_get(matrix, w, 1, NULL) != 0) continue;
  177.                 if(matrix_get(matrix, w + 1, 0, NULL) != 0) continue;
  178.                 if(matrix_get(matrix, w + 1, 1, NULL) != 0) continue;
  179.                 *x = w; *y = 0; return true;
  180.             }
  181.         } break;
  182.     }
  183.     return false;
  184. }

  185. bool verify(const list_t *list, const matrix_t *matrix) {
  186.     for(size_t i = 0; i < list_size(list); ++i) {
  187.         matrix_t *m; list_get(list, i, &m);
  188.         if(matrix_compare(matrix, m)) return false;
  189.         matrix_t *r = matrix_reverse(matrix);
  190.         if(matrix_compare(r, m)) {
  191.             matrix_deinit(r); return false;
  192.         }
  193.         matrix_deinit(r);
  194.     }
  195.     return true;
  196. }

  197. void paving_bricks(matrix_t *matrix, list_t *list) {
  198.     bool found = false;
  199.     for(size_t i = 0; i < 3; ++i) {
  200.         size_t x, y;
  201.         if(find_space(matrix, i, &x, &y)) {
  202.             found = true;
  203.             change_value(matrix, i, x, y, i + 1);
  204.             paving_bricks(matrix, list);
  205.             change_value(matrix, i, x, y, 0);
  206.         }
  207.     }
  208.     if(!found && verify(list, matrix)) {
  209.         list_append(list, matrix_clone(matrix));
  210.     }
  211. }

  212. int main(void) {
  213.     size_t width;
  214.     scanf("%lu", &width);
  215.     list_t *list = list_init();
  216.     matrix_t *matrix = matrix_init(width, 2);
  217.     paving_bricks(matrix, list);
  218.     for(size_t i = 0; i < list_size(list); ++i) {
  219.         matrix_t *matrix; list_get(list, i, &matrix);
  220.         matrix_print(matrix); printf("\n");
  221.     }
  222.     printf("%lu\n", list_size(list));
  223.     matrix_deinit(matrix);
  224.     list_deinit(list);
  225.     return 0;
  226. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-19 23:01:55 | 显示全部楼层
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

匿名鱼油
匿名鱼油  发表于 2021-7-20 08:27:35
人造人 发表于 2021-7-19 22:50
我也试着写了一个,同样是超时
我特别不喜欢这类题目,为了效率,要把代码写的非常没有可读性
我尝试着修 ...


感谢。
把精力耗费在这个问题上很不值得。
因为它可能是无解题。
所以我想尝试获取这个评测机的输入,然后写一些if语句,就有可能通过了。
非常感谢。
回复 支持 反对

使用道具 举报

匿名鱼油
匿名鱼油  发表于 2021-7-20 10:39:15
没法了,打表吧
回复 支持 反对

使用道具 举报

发表于 2021-7-20 10:59:19 | 显示全部楼层

回帖奖励 +5 鱼币

感谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-21 02:30:02 | 显示全部楼层
代码格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-22 13:59:30 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-24 00:55:50 | 显示全部楼层

回帖奖励 +5 鱼币

感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 23:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表