<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    emu in blogjava

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks

    Problem Statement
    ????
    A group of vertical blocks are placed densely one after another on the ground. The blocks each have a width of 1, but their heights may vary. For example, if the heights of the vertical blocks are given as {1,5,5,1,6,1}, the configuration would look like the following picture:


        ×
     ×× ×
     ×× ×
     ×× ×
     ×× ×
    ××××××
     
    Your task is to reproduce the exact shape of this structure using some number of non-intersecting rectangles. You will be given a int[] heights representing the heights of the vertical blocks from left to right. Return the minimal number of rectangles necessary to perform this task with the given configuration of blocks.
    Definition
    ????
    Class:
    BlockStructure
    Method:
    cover
    Parameters:
    int[]
    Returns:
    int
    Method signature:
    int cover(int[] heights)
    (be sure your method is public)
    ????

    Constraints
    -
    heights will have between 1 and 50 elements, inclusive.
    -
    Each element of heights will be between 1 and 1000, inclusive.
    Examples
    0)

    ????
    {1,5,5,1,6,1}
    Returns: 3
     
    We can use rectangles with sizes 6x1, 2x4 and 1x5.

        ×
     ×× ×
     ×× ×
     ×× ×
     ×× ×
    ××××××

    1)

    ????
    {2,2,2,4,4}
    Returns: 2
     
    We can use a 3x2 rectangle and a 2x4 rectangle.


       ××
       ××
    ×××××
    ×××××


    2)

    ????
    {6,6,6,6,6,6}
    Returns: 1
    The structure is a rectangle.
    3)

    ××××××
    ××××××
    ××××××
    ××××××
    ××××××
    ××××××


    ????
    {71,44,95,16,10,80,12,17,98,61}
    Returns: 10
    It's impossible to use less than 10 rectangles.
    4)

    ????
    {100,100,97,100,100,100,97,98,99,99}
    Returns: 5

    This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2003, TopCoder, Inc. All rights reserved.

    posted on 2005-12-20 10:28 emu 閱讀(1996) 評論(3)  編輯  收藏 所屬分類: google編程大賽模擬題及入圍賽真題

    評論

    # re: google中國編程挑戰賽入圍賽真題 -- BlockStructure(500分) 2005-12-21 14:06 emu
    我覺得這組解是干擾數據:

    {2,2,2,4,4}
    Returns: 2

    We can use a 3x2 rectangle and a 2x4 rectangle.



       ××
       ××
    ×××××
    ×××××


    如果題目提供的解是這樣:



       ××
       ××
    ×××××
    ×××××


    答案就容易找的多了。  回復  更多評論
      

    # re: google中國編程挑戰賽入圍賽真題 -- BlockStructure(500分) 2006-06-28 15:43 深藍色心情
    public static int count(int[] vs){
    Arrays.sort(vs) ;
    int min = vs[0] ;

    //把最低下一行刪掉。
    List list = new LinkedList() ;
    for(int i = 0 ; i < vs.length ; i++){
    if(min != vs[i]){
    int leftValue = vs[i] - min ;
    if(leftValue > 0 ){
    list.add(new Integer(leftValue)) ;
    }
    }
    }

    int maxBox = 1 ;

    //分組
    int step = 0 ;
    int maxSize = list.size() ;
    for(int i = 0 ; i < maxSize ; i++){
    step = ((Integer)list.get(i)).intValue() ;
    do{
    if(i < maxSize){
    int nextValue = -1000 ;
    if(i + 1 < maxSize){
    nextValue = ((Integer)list.get(i + 1)).intValue() ;
    }
    if(step == nextValue){
    i++ ;
    }else{
    maxBox++ ;
    break ;
    }
    }
    }while(i < maxSize) ;
    }

    return maxBox ;
    }


    public static void main(String[] args) {

    int[] vs = {1,5,5,1,6,1} ;

    System.out.println(TestPlay.count(vs)) ;

    System.out.println(TestPlay.count(new int[]{6,6,6,6,6,6})) ;

    System.out.println(TestPlay.count(new int[]{2,2,2,4,4})) ;

    System.out.println(TestPlay.count(new int[]{71,44,95,16,10,80,12,17,98,61})) ;
    }

    花了20分鐘才寫出來.......,幸虧沒去比賽。
    不能輸入<0的數,大家看看這樣子寫是對的嗎?
      回復  更多評論
      

    # re: google中國編程挑戰賽入圍賽真題 -- BlockStructure(500分) 2008-06-20 21:31 j
    看看我的是否更簡單些:
    #include"stdio.h"
    int make(int *T,int p,int dem,int *n,int *min)
    {
    *min=10000;
    *n=0;
    for(int i=p;i<dem;i++)
    if(T[i]>0)
    {
    int s=i;
    while(T[s]>0&&s<dem)
    {
    if(T[s]<*min)
    *min=T[s];
    (*n)++;
    s++;
    }
    return i;
    }
    return dem;
    }
    void Sub(int *T,int s,int n,int min)
    {
    for(int i=0;i<n;i++)
    T[s+i]-=min;
    }
    int main(int argc, char* argv[])
    { int p=0,n,m;
    int col[5]={3,3,6,6,6};
    while(true)
    {
    p=make(col,p,5,&n,&m);
    if(p==5)
    break;
    printf("width:%d,height:%d\n",n,m);
    Sub(col,p,n,m);
    }
    return 0;
    }
      回復  更多評論
      

    主站蜘蛛池模板: 亚洲国产精品日韩专区AV| 久久精品国产亚洲αv忘忧草| 亚洲情a成黄在线观看| 久久亚洲精品成人777大小说| 亚洲国产精品综合一区在线| 国产亚洲综合视频| 无码av免费一区二区三区试看| 最近2019中文字幕免费看最新 | 亚洲码一区二区三区| 在线观看免费亚洲| 国产免费黄色大片| 亚洲日本va在线观看| 久久精品国产影库免费看| 亚洲AV成人精品日韩一区18p| 亚洲成人免费在线观看| 在线v片免费观看视频| 亚洲日本精品一区二区 | 免费无遮挡无遮羞在线看| 91成年人免费视频| 亚洲国产精品久久| 91免费国产自产地址入| 亚洲AV无码国产精品色午友在线 | 97视频免费观看2区| 国产aⅴ无码专区亚洲av麻豆 | 香蕉视频免费在线| 成年女人视频网站免费m| 人人狠狠综合久久亚洲| 成人网站免费观看| 亚洲熟妇av一区二区三区下载| 国产91免费在线观看| 色窝窝亚洲AV网在线观看| 成年私人影院免费视频网站| 亚洲欧美乱色情图片| 免费看美女被靠到爽的视频| 亚洲精品无码久久毛片波多野吉衣| 久久久久久国产a免费观看黄色大片| 久久精品九九亚洲精品| 久久99精品国产免费观看| 亚洲精品综合在线影院| 在线免费一区二区| 日韩国产欧美亚洲v片|