Demo

你好,再见。

//A
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <climits>
#include <cmath>
#include <ctime>
#include <cassert>
using namespace std;

int main(){
    int t;
    cin >> t;
    while (t--)
    {
        int n, x;
        cin >> n >> x;
        if(x%2){
            printf("?\n");
            continue;
        }
        else{
             int a1 = 2;
             int maxn = (n - 1) * x + 2;
             for (int i = 0; i < (maxn - 2) / 2;i++){
                 printf(" ");
             }
                 printf("**\n");
             for (int i = 2; i <= n;i++){
                    int ax = a1 + (i - 1) * x;
                    for (int j = 0; j <(maxn-ax)/2;j++){
                        printf(" ");
                    }
                    for (int j = 0; j < ax; j++)
                    {
                        printf("*");
                        }
                    printf("\n");
             }
             for (int i = n; i >=2;i--){
                    int ax = a1 + (i - 1) * x;
                    for (int j = 0; j <(maxn-ax)/2;j++){
                        printf(" ");
                    }
                    for (int j = 0; j < ax; j++)
                    {
                        printf("*");
                        }
                    printf("\n");
             }
             for (int i = 0; i < (maxn - 2) / 2;i++){
                 printf(" ");
             }
                 printf("**\n");
        }
    }
    return 0;
}

//POJ2251
#include <iostream>
#include<queue>
#include<algorithm>
#include<string.h>
#include<stdio.h>
using namespace std;
#define maxn 31
char a[maxn][maxn][maxn];//地图
int d[maxn][maxn][maxn];//距离数组
int dir[6][3]={{-1,0,0},{1,0,0},{0,1,0},{0,-1,0},{0,0,1},{0,0,-1}};//2向右3向左4向上
int sum=0;
int L,R,C;
struct node{
int x,y,z;
};
node start,ed;//起点 终点
int  bfks()
{
    queue<node> Q;
    Q.push(start);
    node cur;
     node next;
    while(Q.size())
    {
        cur=Q.front();
        Q.pop();
            for(int i=0;i<6;i++)
            {
                next.x=cur.x+dir[i][0];
                next.y=cur.y+dir[i][1];
                next.z=cur.z+dir[i][2];
                if(next.x>=0&&next.x<R&&next.y>=0&&next.y<C&&next.z>=0&&next.z<L&&a[next.z][next.x][next.y]!='#'&&d[next.z][next.x][next.y]==0)
                {
                    d[next.z][next.x][next.y]=d[cur.z][cur.x][cur.y]+1;
                     if(next.x==ed.x&&next.y==ed.y&&next.z==ed.z)//到达终点时,马上退出
                          return d[ed.z][ed.x][ed.y];
                     Q.push(next);
                }
            }
    }
      return -1;
}
int main()
{
   while(cin>>L>>R>>C&&(L+R+C)!=0)
   {
       sum=0;
       memset(d,0,sizeof(d));
      for(int i=0;i<L;i++)
          for(int j=0;j<R;j++)
            for(int k=0;k<C;k++)
          {
 
           cin>>a[i][j][k];
           if(a[i][j][k]=='S')
           {
               start.z=i;start.x=j;start.y=k;
           }
           else if(a[i][j][k]=='E')
           {
               ed.z=i;ed.x=j;ed.y=k;
           }
       }
      if( kkkkk()==-1){
       printf("Trapped!\n");
      }
      else{
        printf("Escaped in %d minute(s).\n",d[ed.z][ed.x][ed.y]);
}
      }
    return 0;
}

posted @ 2020-11-23 19:30  Lrixin  阅读(120)  评论(0)    收藏  举报
//添加代码行数