• K-special Tables


    原题见:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106940#problem/F

    题目要求:n*n的方形矩阵中,填入1~n2个数, 每行递增使得第k列的数字之和最大

                  其实算是暴力枚举吧=。=也算是构造吧=。=

    代码如下:

     1 #include <stdio.h>
     2 int main()
     3 {
     4     int n,k;
     5     int i,j,l;
     6     scanf("%d %d",&n,&k);
     7     int map[n][n]; 
     8     int num=0,sumk=0;
     9     for(i=0;i<n;++i)
    10         for(j=0;j<n&&j<k-1;++j)
    11         {
    12             map[i][j]=++num;
    13         }
    14         
    15     for(i=0;i<n;++i)
    16         for(j=k-1;j<n;++j)
    17         {
    18             if(j==k-1) sumk+=num+1;
    19             map[i][j]=++num;
    20         }
    21         
    22     printf("%d
    ",sumk);
    23     for(i=0;i<n;++i)
    24     {        
    25         for(j=0;j<n;++j)
    26         {
    27             printf("%d ",map[i][j]);       
    28         }
    29         printf("
    ");
    30     }         
    31     return 0;
    32 }

     将k列作为一个分界线,左边填数

    其实这个题不用多想,直接看样例看出规律来!
    第K列往后都是从最大n*n递减着来填入,比如说n=5时,
    那么第k列及往后是
    23 24 25
    20 21 22
    17 18 19
    14 15 16
    11 12 13
    K列往前是:
    9 10
    7 8
    5 6
    3 4
    1 2
    这样就解决了! 
  • 相关阅读:
    前端小tite(随笔)
    算法两数之和 python版
    常用标签
    pip install 遇到的问题
    不常用的模块
    约束和约束关系
    Django初识
    前端—Bootstrap
    前端—jQuery
    前端—BOM和DOM
  • 原文地址:https://www.cnblogs.com/ivangin/p/5201598.html
Copyright © 2020-2023  润新知