比赛 2024暑假C班集训A 评测结果 AAAAAAAAAT
题目名称 牧场的安排 最终得分 90
用户昵称 彭欣越 运行时间 2.416 s
代码语言 C++ 内存使用 3.37 MiB
提交时间 2024-07-10 10:43:02
显示代码纯文本
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const long long mod=100000000;
  4. int n,m,mk[20][20],mk1[20][20];
  5. long long res=1;
  6. void dfs (int x,int y) {
  7. //cout << x <<' '<< y <<endl;
  8. //for (int i=1;i<=n;i++) {
  9. //for (int j=1;j<=m;j++) {
  10. //cout << mk[i][j] <<' ';
  11. //}
  12. //cout <<endl;
  13. //}
  14. for (int i=x;i<=n;i++) {
  15. for (int j=y;j<=m;j++) {
  16. if (mk[i][j]==1) {
  17. res++;
  18. res%=mod;
  19. mk[i][j]=0;
  20. if (i+1<=n) mk[i+1][j]--;
  21. if (j+1<=m) mk[i][j+1]--;
  22. if (i-1>0) mk[i-1][j]--;
  23. if (j-1>0) mk[i][j-1]--;
  24. dfs(i,j);
  25. //cout << 1 <<endl;
  26. mk[i][j]=1;
  27. if (i+1<=n) mk[i+1][j]++;
  28. if (j+1<=m) mk[i][j+1]++;
  29. if (i-1>0) mk[i-1][j]++;
  30. if (j-1>0) mk[i][j-1]++;
  31. }
  32. }
  33. y=1;
  34. }
  35. }
  36. int main () {
  37. freopen("cowfood.in","r",stdin);
  38. freopen("cowfood.out","w",stdout);
  39. ios::sync_with_stdio(0);
  40. cin.tie(0),cout.tie(0);
  41. cin >> n >> m;
  42. for (int i=1;i<=n;i++) {
  43. for (int j=1;j<=m;j++) {
  44. cin >> mk[i][j];
  45. mk1[i][j]=mk[i][j];
  46. }
  47. }
  48. for (int i=1;i<=n;i++) {
  49. for (int j=1;j<=m;j++) {
  50. if (mk[i][j]==1) {
  51. res++;
  52. res%=mod;
  53. mk[i][j]=0;
  54. if (i+1<=n) mk[i+1][j]--;
  55. if (j+1<=m) mk[i][j+1]--;
  56. if (i-1>0) mk[i-1][j]--;
  57. if (j-1>0) mk[i][j-1]--;
  58. dfs(i,j);
  59. for (int k=1;k<=n;k++) {
  60. for (int v=1;v<=m;v++) {
  61. mk[k][v]=mk1[k][v];
  62. }
  63. }
  64. }
  65. }
  66. }
  67. cout << res <<endl;
  68. return 0;
  69. }