• L2-4 吉利矩阵


    L2-4 吉利矩阵

    分数 25

    全屏浏览

    切换布局

    作者 陈越

    单位 浙江大学

    所有元素为非负整数,且各行各列的元素和都等于 7 的 3×3 方阵称为“吉利矩阵”,因为这样的矩阵一共有 666 种。
    本题就请你统计一下,把 7 换成任何一个 [2,9] 区间内的正整数 L,把矩阵阶数换成任何一个 [2,4] 区间内的正整数 N,满足条件“所有元素为非负整数,且各行各列的元素和都等于 L”的 N×N 方阵一共有多少种?

    输入格式:

    输入在一行中给出 2 个正整数 L 和 N,意义如题面所述。数字间以空格分隔。

    输出格式:

    在一行中输出满足题目要求条件的方阵的个数。

    输入样例:

    7 3
    

    输出样例:

    666
    

    代码长度限制

    16 KB

    时间限制

    1000 ms

    内存限制

    64 MB

    栈限制

    8192 KB

    超时。。然后打表。。

    1. #include<iostream>
    2. using namespace std;
    3. const int N=10;
    4. int l,n;
    5. int res;
    6. int g[N][N];
    7. void dfs(int x,int y){
    8. if(x==n){
    9. bool hefa=true;
    10. for(int i=0;i<n&&hefa;i++){
    11. int sum=0;
    12. for(int j=0;j<n&&hefa;j++){
    13. sum+=g[i][j];
    14. }
    15. if(sum!=l)return;
    16. }
    17. for(int i=0;i<n&&hefa;i++){
    18. int sum=0;
    19. for(int j=0;j<n&&hefa;j++){
    20. sum+=g[j][i];
    21. }
    22. if(sum!=l)return;
    23. }
    24. // printf("x=%d y=%d res=%d\n",x,y,res);
    25. res++;
    26. // for(int i=0;i<n&&hefa;i++){
    27. //
    28. // for(int j=0;j<n&&hefa;j++){
    29. // cout<<g[i][j]<<" ";
    30. // }
    31. // cout<<"\n";
    32. // }
    33. return;
    34. }
    35. if(x==n&&y==0)return;
    36. int y1=y+1;
    37. int x1=x;
    38. if(y1==n)y1=0,x1=x1+1;
    39. for(int i=0;i<=l;i++){
    40. g[x][y]=i;
    41. // printf("x1=%d y1=%d\n",x1,y1);
    42. dfs(x1,y1);
    43. }
    44. }
    45. int main(){
    46. cin>>l>>n;
    47. dfs(0,0);
    48. cout<<res;
    49. }

    打表代码(需剪枝不然4阶矩阵直接搜麻)(上面代码还需优化)

    1. #include<iostream>
    2. using namespace std;
    3. const int N=10;
    4. int l,n;
    5. ll res;
    6. int g[N][N];
    7. void dfs(int x,int y){
    8. if(x==n){
    9. bool hefa=true;
    10. for(int i=0;i<n&&hefa;i++){
    11. int sum=0;
    12. for(int j=0;j<n&&hefa;j++){
    13. sum+=g[i][j];
    14. }
    15. if(sum!=l)return;
    16. }
    17. for(int i=0;i<n&&hefa;i++){
    18. int sum=0;
    19. for(int j=0;j<n&&hefa;j++){
    20. sum+=g[j][i];
    21. }
    22. if(sum!=l)return;
    23. }
    24. // printf("x=%d y=%d res=%d\n",x,y,res);
    25. res++;
    26. // for(int i=0;i<n&&hefa;i++){
    27. //
    28. // for(int j=0;j<n&&hefa;j++){
    29. // cout<<g[i][j]<<" ";
    30. // }
    31. // cout<<"\n";
    32. // }
    33. return;
    34. }
    35. if(x>=n)return;
    36. if(x>0&&x<n){//1
    37. int sum=0;
    38. for(int j=0;j<n;j++){
    39. sum+=g[x-1][j];
    40. }
    41. if(sum!=l)return;
    42. }
    43. if(x<n){//2
    44. int sum=0;
    45. for(int j=0;j<y;j++){
    46. sum+=g[x][j];
    47. }
    48. if(sum>l)return;
    49. }
    50. if(x>0&&x<n){//3
    51. int sum=0;
    52. for(int i=0;i<y;i++){
    53. int sum=0;
    54. for(int j=0;j<x;j++){
    55. sum+=g[j][y];
    56. }
    57. if(sum>l)return;
    58. }
    59. }
    60. int y1=y+1;
    61. int x1=x;
    62. if(y1==n)y1=0,x1=x1+1;
    63. for(int i=0;i<=l;i++){
    64. g[x][y]=i;
    65. // printf("x1=%d y1=%d\n",x1,y1);
    66. dfs(x1,y1);
    67. }
    68. }
    69. int main(){
    70. for(l=2;l<10;l++){
    71. for(n=2;n<5;n++){
    72. res=0;
    73. dfs(0,0);
    74. printf("a[%d][%d]=%d;\n",l,n,res);
    75. }
    76. }
    77. }

    最终代码

    1. #include<iostream>
    2. using namespace std;
    3. const int N=20;
    4. int a[N][N];
    5. int main(){
    6. int l,n;cin>>l>>n;
    7. a[2][2]=3;
    8. a[2][3]=21;
    9. a[2][4]=282;
    10. a[3][2]=4;
    11. a[3][3]=55;
    12. a[3][4]=2008;
    13. a[4][2]=5;
    14. a[4][3]=120;
    15. a[4][4]=10147;
    16. a[5][2]=6;
    17. a[5][3]=231;
    18. a[5][4]=40176;
    19. a[6][2]=7;
    20. a[6][3]=406;
    21. a[6][4]=132724;
    22. a[7][2]=8;
    23. a[7][3]=666;
    24. a[7][4]=381424;
    25. a[8][2]=9;
    26. a[8][3]=1035;
    27. a[8][4]=981541;
    28. a[9][2]=10;
    29. a[9][3]=1540;
    30. a[9][4]=2309384;
    31. cout<<a[l][n];
    32. }

  • 相关阅读:
    经典模型——NiN&GoogLeNet
    【解决问题】跨域 图片跨域问题 has been blocked by CORS policy No-Access-Control-Allow-Origin
    《面试八股文》之Zookeeper12卷
    里P7告诉你,接口测试真的很简单,有手就行
    【学位论文】GB/T 7714-2015引用的快捷操作方法
    RabbitMQ快速入门笔记(详细)
    【鸿蒙HarmonyOS开发笔记】如何自定义弹窗
    雷达散射截面(RCS)相关概念
    阿里云2核2G服务器e系列租用优惠价格182元性能测评
    宏观角度认识递归之 Pow(x,n) 问题
  • 原文地址:https://blog.csdn.net/qq_39456436/article/details/138160263