zoukankan      html  css  js  c++  java
  • HDU3344(小广搜+小暴力

    Kakuro Extension Extension

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 507    Accepted Submission(s): 248


    Problem Description
    You know ,I'm a lazy guy and write problem description is a very very boring thing.So , I would not repeat the rule of Kakuro again , Please look at this.But things are different again,contray to the problem above,this time you should work out the input file according to the output file.
     

     

    Input
    The first line of the inputs is T, which stands for the number of test cases you need to solve.
    Then T case follow:
    Each test case starts with a line contains two numbers N,M (2<=N,M<=100)and then N lines follow, each line contains M columns, either ‘_’ or 1~9. You can assume that the first column of the first line is ’_’.
     

     

    Output
    Output N lines, each line contains M parts, each part contains 7 letters. The m parts are seperated by spaces.Output a blank line after each case.
     

     

    Sample Input
    2 6 6 _ _ _ _ _ _ _ _ 5 8 9 _ _ 7 6 9 8 4 _ 6 8 _ 7 6 _ 9 2 7 4 _ _ _ 7 9 _ _ 5 8 _ _ _ _ _ _ _ _ _ 1 9 9 1 1 8 6 _ _ 1 7 7 9 1 9 _ 1 3 9 9 9 3 9 _ 6 7 2 4 9 2 _
     

     

    Sample Output
    XXXXXXX XXXXXXX 028XXX 017XXX 028XXX XXXXXXX XXXXXXX 02222 ....... ....... ....... 010XXX XXX34 ....... ....... ....... ....... ....... XXX14 ....... ....... 01613 ....... ....... XXX22 ....... ....... ....... ....... XXXXXXX XXXXXXX XXX16 ....... ....... XXXXXXX XXXXXXX XXXXXXX 001XXX 020XXX 027XXX 021XXX 028XXX 014XXX 024XXX XXX35 ....... ....... ....... ....... ....... ....... ....... XXXXXXX 00734 ....... ....... ....... ....... ....... ....... XXX43 ....... ....... ....... ....... ....... ....... ....... XXX30 ....... ....... ....... ....... ....... ....... XXXXXXX
     

     

    Author
    shǎ崽
     

     

    Source
     

     

    Recommend
     
     
     
     
     

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    char a[105][105];

    void pd(int x,int y,int m,int n)
    {
        if(a[x][y]>='1'&&a[x][y]<='9')
        {
            printf(".......");
            return ;
        }
        int sum1=0,sum2=0;
        int flag1=0;
        int flag2=0;
        if(x==m)
            flag1=1;
        if(y==n)
            flag2=1;
        for(int i=x+1; i<=m; i++)
        {
            if(a[x+1][y]=='_')
                flag1=1;
            if(a[i][y]=='_')
                break;
            sum1=sum1+(a[i][y]-'0');
        }
        for(int j=y+1; j<=n; j++)
        {
            if(a[x][y+1]=='_')
                flag2=1;
            if(a[x][j]=='_')
                break;
            sum2=sum2+(a[x][j]-'0');
        }
        if(flag1==1&&flag2==1)
        {
            printf("XXXXXXX");

        }
        else if(flag1==1&&flag2==0)
        {
                printf("XXX");
                printf("\");
                printf("%03d",sum2);


        }
        else if(flag1==0&&flag2==1)
        {
                printf("%03d",sum1);
                printf("\");
                printf("XXX");
        }
        else if(flag1==0&&flag2==0)
        {
                printf("%03d\%03d",sum1,sum2);
        }

    }
    int main()
    {
        int m,n;
        int t;
        scanf("%d",&t);
        while(t--)
        {
            memset(a,0,sizeof(a));
            scanf("%d%d",&m,&n);
            getchar();
            for(int i=1; i<=m; i++)
            {
                for(int j=1; j<=n; j++)
                {
                    //scanf("%c",&a[i][j]);
                    cin >> a[i][j];
                }

            }
            char ch=' ';
            for(int i=1; i<=m; i++)
            {
                for(int j=1; j<=n; j++)
                {
                    /*if(a[1][1]!='_')
                        a[1][1]='_';*/
                    pd(i,j,m,n);
                    if(j!=n)
                        printf("%c",ch);
                }
                printf(" ");
            }
            printf(" ");
        }
        return 0;
    }

  • 相关阅读:
    lightoj 1094 Farthest Nodes in a Tree 【树的直径 裸题】
    nyoj 1185 最大最小值【线段树最大值最小值维护】
    nyoj 123 士兵杀敌(四) 树状数组【单点查询+区间修改】
    poj 3468 A Simple Problem with Integers【线段树区间修改】
    hdoj 1698 Just a Hook【线段树区间修改】
    hdoj 1556 Color the ball【线段树区间更新】
    hdoj 1286 找新朋友【欧拉函数】
    [LC] 303. Range Sum Query
    [LC] 79. Word Search
    [LC] 211. Add and Search Word
  • 原文地址:https://www.cnblogs.com/13224ACMer/p/4445093.html
Copyright © 2011-2022 走看看