<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 閱讀(1985) 評論(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;
    }
      回復  更多評論
      

    主站蜘蛛池模板: 国产无限免费观看黄网站| 亚洲第一成年网站大全亚洲| 精品亚洲永久免费精品| 5555在线播放免费播放| 四虎永久免费观看| 亚洲无码一区二区三区| 免费AA片少妇人AA片直播| 亚洲国产成人久久综合一区| 黄色免费网址在线观看| 亚洲第一永久AV网站久久精品男人的天堂AV | 亚洲成a人无码亚洲成www牛牛| 91在线视频免费看| 国产精品国产亚洲区艳妇糸列短篇 | 免费一级毛片一级毛片aa| 男女啪啪免费体验区| 综合亚洲伊人午夜网| 免费av片在线观看网站| 亚洲日本在线观看网址| a级成人毛片免费视频高清| 亚洲成A∨人片在线观看不卡 | a级毛片在线免费看| 亚洲ⅴ国产v天堂a无码二区| 18禁黄网站禁片免费观看不卡| 91亚洲精品自在在线观看| 日韩视频免费一区二区三区| 亚洲国产一区国产亚洲| 国产91色综合久久免费分享| 亚洲国产精品无码中文字| **aaaaa毛片免费同男同女| 欧美亚洲国产SUV| 狠狠综合久久综合88亚洲| 真实国产乱子伦精品免费| 久久久久久久尹人综合网亚洲| 67pao强力打造国产免费| 亚洲AV成人无码久久WWW| 亚洲av永久无码精品表情包| www成人免费观看网站| 亚洲日本一区二区| 国产男女猛烈无遮挡免费视频| 亚洲人成小说网站色| 亚洲精品第一国产综合境外资源|