• hdu--2830--任意交换列的矩阵


    这2天 做的都是有关矩阵的 =-=....

    小小矩阵 竟然有这么多 花头...

    这题 的特点是 We can swap any two columns any times 就是可以任意交换X列与Y列 任意次

    一开始 我还担心我的方法 会不会tle 看到3000ms就放心了。。。我总觉得 会有更高效的方法 可惜我还没想到

    我的思路 就是 假如当前第X行共Y列 高度分别是 3 4 5 2 3 6

    那么高度>=2的就是6-0个  这个共6列 0可以看成是(cnt[0] + cnt[1] )之和 你可以假设我们也摆放了高度为0 与 1的柱形体0个

    同理 高度>=3的就是6-1个...

    那么 我就是用这个方法进行计算的 蛮简单的 就是会有一些细节注意处理就好了  如 cnt[]数组在每一行都应该重置为0 因为每行的h[]数组都是在变化的

    --------------其实没那么多好扯的 =-=  我先把代码隐藏了 如果现在没做出来 可以做下看 ~

     1 #include <iostream>
     2 using namespace std;
     3 
     4 const int size = 1010;
     5 char str[size];
     6 int h[size];
     7 int cnt[size];
     8 
     9 int main()
    10 {
    11     cin.sync_with_stdio(false);
    12     int n , m , ans , sum , maxH , area;
    13     while( cin >> n >> m )
    14     {
    15         memset( cnt , 0 , sizeof(cnt) );
    16         memset( h , 0 , sizeof(h) );
    17         ans = 0;
    18         for( int i = 1 ; i<=n ; i++ )
    19         {
    20             maxH = sum = 0;
    21             cin >> str;
    22             for( int j = 0 ; str[j]!='' ; j++ )
    23             {
    24                 if( str[j]=='1' )
    25                     h[j+1] ++;
    26                 else
    27                     h[j+1] = 0;
    28                 cnt[ h[j+1] ] ++;
    29                 if( maxH < h[j+1] )
    30                     maxH = h[j+1];            
    31             }
    32             for( int k = 0 ; k<=maxH ; k++ )
    33             {
    34                 if( cnt[k]!=0 )
    35                 {
    36                     area = k * (m-sum);
    37                     sum += cnt[k];
    38                     if( area>ans )
    39                         ans = area;
    40                 }
    41                 cnt[k] = 0;
    42             }
    43         }
    44         cout << ans << endl;
    45     }
    46     return 0;
    47 }
    View Code
    just follow your heart
  • 相关阅读:
    Matlab矩阵操作函数的使用(reshape,imresize,remat,permute)
    归一化数据的好处
    博客园中用markdown编辑器编辑带下标的符号
    反向传播
    稀疏表示和字典学习
    先验概率和后验概率
    Local Generic Representation for Face Recognition with Single Sample per Person (ACCV, 2014)
    删除数组
    数组扩容(指定位置)+插入最后
    创建数组的几种方式,遍历+泛型合并
  • 原文地址:https://www.cnblogs.com/radical/p/3894813.html
Copyright © 2020-2023  润新知