zoukankan      html  css  js  c++  java
  • TOJ3039: 材质贴图

    3039: 材质贴图 分享至QQ空间

    Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
    Total Submit: 46            Accepted:19

    Description

    3D游戏中的场景经常用材质贴图来表现,例如石头、水面等。
    通常,材质贴图是一张正方形的位图,上下边界的像素对应相同,左右边界的像素也对应相同。例如下图中,左边是一张材质贴图,而右边的不是(左右边界不同)。

    给定一张n×n的位图,请在这张位图中寻找一块材质贴图,使得材质贴图尺寸最大。下图中黄色区域就是最大的材质贴图,虽然黄色区域左上角2×2的位图也是材质贴图,但不是最大的。

    Input

    输入包含多组数据。
    每组数据第一行是一个整数n (1≤n≤50),表示位图的大小。
    然后n行每行n个在0到255之间的整数,描述位图的内容。
    输入数据以n=0结束,不要处理这组数据。

    Output

    对每组数据输出最大的材质贴图的边长。请注意,1×1的位图也是材质贴图。

    Sample Input
    2
    255 0
    0 127
    5
    5 251 127 11 195
    23 13 0 13 23
    211 0 13 0 67
    211 13 0 13 23
    1 251 127 11 47
    0
    Sample Output
    1
    3


    其实暴力枚举就好了,但是这个2就成了对角线,没有想到怎么把他优化掉

    #include<stdio.h>
    int n,a[51][51];
    int la()
    {
        for(int k=n; k>2; k--)
            for(int i=0; i<=n-k; i++)
                for(int j=0; j<=n-k; j++)
                {
                    int f=1;
                    for(int l=0; l<k; l++)
                        if(a[i][j+l]!=a[i+k-1][j+l]||a[i+l][j]!=a[i+l][j+k-1])
                        {
                            f=0;
                            break;
                        }
                    if(f)return k;
                }
        for(int i=0; i<=n-2; i++)
            for(int j=0; j<=n-2; j++)
            {
                if(a[i][j]==a[i+1][j+1]&&a[i+1][j]==a[i][j+1])
                    return 2;
            }
        return 1;
    }
    int main()
    {
        while(scanf("%d",&n),n)
        {
            for(int i=0; i<n; i++)
                for(int j=0; j<n; j++)
                    scanf("%d",a[i]+j);
            printf("%d
    ",la());
        }
        return 0;
    }
  • 相关阅读:
    python 装饰器
    python操作hbase
    python 数据压缩
    JsonSchema 启蒙
    python在webservice接口测试中的应用
    简单的python http接口自动化脚本
    解决python2安装MySQL-python模块报错
    实用小工具推荐(一)
    linux和mac使用virtualenv使用和安装
    少年,来点正能量吧!
  • 原文地址:https://www.cnblogs.com/BobHuang/p/7442931.html
Copyright © 2011-2022 走看看