zoukankan      html  css  js  c++  java
  • Jpeg(模拟)

    Jpeg
    Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

    Description

    standard input/output  Announcement
     
    • Statements

      In computing, JPEG is a commonly used method of lossy compression for digital images, particularly for those images produced by digital photography . The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and image quality,and JPEG typically achieves 10:1 compression with little perceptible loss in image quality. Entropy coding is a special form of lossless data compression. It involves arranging the image components in a "zigzag" order employing run-length encoding (RLE) algorithm that groups similar frequencies together, inserting length coding zeros, and then using Huffman coding on what is left.

      Now i am so busy ,so i will give you a  square matrix that represents pixel intensities of the image.

      Your task is simple: reconstruct the image so that the value in the ith row and jth column of the resulting image is the value of the (i * N + j)thpixel visited in the zigzag sequence .

    Input

    Your program will be tested on one or more test cases. The first line of the input contains a single integer T (1  ≤ T ≤  100) the number of test cases. Followed by T test cases.

    Each test case consists of N+1 lines. The first line contains an integer N (2  ≤ N ≤  100). The next lines consists of an  squared pixel matrix.

    Output

    For each test case print the required transformed matrix.

    Sample Input

    Input
    1 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
    Output
    1 2 6 11 7  3 4 8 12 16  21 17 13 9 5  10 14 18 22 23  19 15 20 24 25 
    题解:水题,按照途中的划线访问,模拟下就好了;
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    const int MAXN = 110;
    int num[MAXN * MAXN];
    int mp[MAXN][MAXN];
    int main(){
        int T, N;
        scanf("%d", &T);
        while(T--){
            scanf("%d", &N);
            for(int i = 1; i <= N; i++){
                for(int j = 1; j <= N; j++){
                    scanf("%d", &mp[j][i]);
                }
            }
            int tp = 0;
            int x = 1, y = 1;
            num[tp++] = mp[x][y];
            while(tp < N*N){
                if(x + 1 <= N)
                    num[tp++] = mp[++x][y];
                else if(y + 1 <= N)
                    num[tp++] = mp[x][++y];
                while(x - 1 >= 1 && y + 1 <= N){
                    num[tp++] = mp[--x][++y];
                }
                if(x == 1 && y + 1 <= N)
                    num[tp++] = mp[x][++y];
                else if(y == N && x + 1 <= N)
                    num[tp++] = mp[++x][y];
                while(x + 1 <= N && y - 1 >= 1){
                    num[tp++] = mp[++x][--y];
                }
            }
            for(int i = 0; i < N; i++){
                for(int j = 0; j < N; j++){
                    mp[i][j] = num[i * N + j];
                }
            }
            for(int i = 0; i < N; i++){
                for(int j = 0; j < N; j++){
                    if(j)printf(" ");
                    printf("%d", mp[i][j]);
                }
                puts("");
            }
        }
        return 0;
    }
  • 相关阅读:
    TLPI读书笔记第15章-文件属性2
    TLPI读书笔记第15章-文件属性1
    Java异常及错误
    10055
    4月。
    JavaScript三种方法获取地址栏参数的方法
    页面预加载loading动画,再载入内容
    什么是可串行化MVCC
    简化版扫雷详细解
    论unity中UI工具与GUI函数
  • 原文地址:https://www.cnblogs.com/handsomecui/p/5528843.html
Copyright © 2011-2022 走看看