首页 > ACM题库 > HDU-杭电 > hdu 3737 Adaboost待解决[解题报告]C++
2015
02-22

hdu 3737 Adaboost待解决[解题报告]C++

Adaboost

问题描述 :

Choose The Soldiers

输入:

There are no more than 10 test cases
For each case, the first line contains four integers C , N , M,S ( 1<= C <= 20 ,1 ≤ N,M <= 1000, 1<= S <= 50 ,M%2==0), indicating the number of queries , the number of rectangles, the number of images, the size of image .Noting :all the images are square and the same in size .
Then there are N lines. Each line has four integers x1 y1 x2 y2 (x1 <= x2, y1 <= y2, 0 <= x1, x2, y1, y2 < S) .They are the coordinates of the left-top and the right-bottom points of the rectangle . (y is row ,x is column)
Then there are M lines. Each lines has S*S integers. All integers from 0 to 255.
The ith Image is face when i is between 1 and M/2 , notface otherwise.
Then there are C lines. Each line has M integers. The ith integer is qi indicating to weight of ith image.( 1<= qi <= 2000000 )

输出:

There are no more than 10 test cases
For each case, the first line contains four integers C , N , M,S ( 1<= C <= 20 ,1 ≤ N,M <= 1000, 1<= S <= 50 ,M%2==0), indicating the number of queries , the number of rectangles, the number of images, the size of image .Noting :all the images are square and the same in size .
Then there are N lines. Each line has four integers x1 y1 x2 y2 (x1 <= x2, y1 <= y2, 0 <= x1, x2, y1, y2 < S) .They are the coordinates of the left-top and the right-bottom points of the rectangle . (y is row ,x is column)
Then there are M lines. Each lines has S*S integers. All integers from 0 to 255.
The ith Image is face when i is between 1 and M/2 , notface otherwise.
Then there are C lines. Each line has M integers. The ith integer is qi indicating to weight of ith image.( 1<= qi <= 2000000 )

样例输入:

1 1 4 1
0 0 0 0
1 
4
2
3
1 1 1 1 

1 1 4 1
0 0 0 0
1 
2 
3 
4
1 1 1 1

样例输出:

Case #1:
1
Case #2:
0

Hint
The first sample f1 (x1) = 1, f1 (x2) = 4, f1 (x3) = 2, f1 (x4 ) = 3, so when θ ∈ (1, 2] , p = 1, or θ ∈ [3, 4), p = -1, ∈t = 1.


  1. 其实国内大部分公司对算法都不够重视。特别是中小型公司老板根本都不懂技术,也不懂什么是算法,从而也不要求程序员懂什么算法,做程序从来不考虑性能问题,只要页面能显示出来就是好程序,这是国内的现状,很无奈。

  2. 很高兴你会喜欢这个网站。目前还没有一个开发团队,网站是我一个人在维护,都是用的开源系统,也没有太多需要开发的部分,主要是内容整理。非常感谢你的关注。

  3. 在方法1里面:

    //遍历所有的边,计算入度
    for(int i=0; i<V; i++)
    {
    degree = 0;
    for (j = adj .begin(); j != adj .end(); ++j)
    {
    degree[*j]++;
    }
    }

    为什么每遍历一条链表,要首先将每个链表头的顶点的入度置为0呢?
    比如顶点5,若在顶点1、2、3、4的链表中出现过顶点5,那么要增加顶点5的入度,但是在遍历顶点5的链表时,又将顶点5的入度置为0了,那之前的从顶点1234到顶点5的边不是都没了吗?

  4. I like your publish. It is great to see you verbalize from the coronary heart and clarity on this essential subject matter can be easily noticed.