题意:

思路:

 import java.util.Scanner;

 public class Main {
public static void main(String args[]) {
Scanner la = new Scanner(System.in);
int S = la.nextInt();
while(S != 0) {
--S;
int a = la.nextInt(), b = la.nextInt(), c = la.nextInt();
int A = 2 * a + 1, B = 2 * b + 1, C = 2 * c + 1;
int x = A + B - 1;
int y = C + B - 1;
String JK[][] = new String[1000][1000]; String out = "+";
String nextout = "-";
String line = "|";
String linenext = ".";
Boolean flagout = true;
Boolean flagline = true;
for (int n = B - 1; n < y; n++) {
flagout = true;
if (flagline) {
for (int m = 0; m < A; m++) { if (flagout) {
JK[n][m] = out;
flagout = false;
} else {
flagout = true;
JK[n][m] = nextout;
}
}
flagline = false;
} else {
for (int m = 0; m < A; m++) { if (flagout) {
JK[n][m] = line;
flagout = false;
} else {
flagout = true;
JK[n][m] = linenext;
}
}
flagline = true;
}
}
// 上面
int num = B - 1;
out = "+";
nextout = "-";
line = "/";
linenext = ".";
flagout = true;
flagline = true;
for(int i=B-2;i>=0;i--) {
for(int w=B-2;w>=0;w--) {
JK[i][w]=".";
JK[y-(i+1)][x-(w+1)]=".";
}
}
for (int n = 0; n < B-1; n++) {
int i=B-1-n-1;
flagout = true;
if (flagline) {
for (int m = 0; m < A; m++) {
if (flagout) {
//System.out.println("m="+m+",i="+i);
JK[n][m+i+1] = out;
flagout = false;
} else {
flagout = true;
//System.out.println("m="+m+",i="+i);
JK[n][m+i+1] = nextout;
}
}
flagline = false;
} else {
for (int m = 0; m < A; m++) { if (flagout) {
JK[n][m+i+1] = line;
flagout = false;
} else {
flagout = true;
JK[n][m+i+1] = linenext;
}
}
flagline = true;
}
}
// 右面
num = B - 1;
out = "+";
nextout = "|";
line = "/";
linenext = ".";
flagout = true;
flagline = true; for (int n = 0; n < B-1; n++) {
//System.out.println(",n="+n);
flagout = true;
if (flagline) {
for (int m =0; m < y-B+1; m++) {
if (flagout) {
//System.out.println("m="+m+",n="+n);
JK[m+n][x-1-n] = out;
flagout = false;
} else {
flagout = true;
//System.out.println("m="+m+",n="+n);
JK[m+n][x-1-n] = nextout;
}
}
flagline = false;
} else {
for (int m = 0; m < y-B+1; m++) { if (flagout) {
//System.out.println("m="+m+",n="+n);
JK[m+n][x-1-n] = line;
flagout = false;
} else {
flagout = true;
//System.out.println("m="+m+",n="+n);
JK[m+n][x-1-n] = linenext;
}
}
flagline = true;
}
} for(int m=0;m<y;m++) {
for(int n=0;n<x;n++) {
System.out.print(JK[m][n]);
}System.out.println();
} }
}}

【HDOJ6330】Visual Cube(模拟)的更多相关文章

  1. HDU 多校对抗第三场 L Visual Cube

    Problem L. Visual Cube Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java ...

  2. Problem L. Visual Cube(杭电多校2018年第三场+模拟)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6330 题目: 题意:给你长宽高,让你画出一个正方体. 思路:模拟即可,湘潭邀请赛热身赛原题,不过比那个 ...

  3. (2018 Multi-University Training Contest 3)Problem L. Visual Cube

      //题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6330//题目大意:按照一定格式画出一个 a×b×c 的长方体.  #include <b ...

  4. HDU6330-2018ACM暑假多校联合训练Problem L. Visual Cube

    就是画个图啦 分三个平面去画orz #include <iostream> #include <cmath> #include <cstring> #include ...

  5. Hdu-5983 2016ACM/ICPC亚洲区青岛站 B.Pocket Cube 模拟

    题面 题意:给你一个2*2的魔方,给你每个面每个小块的颜色,一共24个,然后问你能否在一步之内还原. 题解:手动在纸上画,推出每种变化对应的置换,显然,一共有6种,而且可以当成3种,(具体哪3种,就是 ...

  6. HDU 6330--Visual Cube(构造,计算)

    Visual Cube 将这个立方体分块,分成上中下三个部分,利用长宽高计算行列,最后输出即可. 每个部分都分成奇偶行来输出,总共有\(2*(b+c)+1\)行,共\(2*(a+b)+1\)列.设当前 ...

  7. HDU 6330.Problem L. Visual Cube-模拟到上天-输出立方体 (2018 Multi-University Training Contest 3 1012)

    6330.Problem L. Visual Cube 这个题就是输出立方体.当时写完怎么都不过,后来输出b<c的情况,发现这里写挫了,判断失误.加了点东西就过了,mdzz... 代码: //1 ...

  8. 2018 HDU多校第三场赛后补题

    2018 HDU多校第三场赛后补题 从易到难来写吧,其中题意有些直接摘了Claris的,数据范围是就不标了. 如果需要可以去hdu题库里找.题号是6319 - 6331. L. Visual Cube ...

  9. 2018 Multi-University Training Contest 3 杭电多校第三场

    躺了几天 终于记得来填坑了 1001 Ascending Rating   (hdoj 6319) 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6319 ...

随机推荐

  1. js操作css样式、js的兼容问题

    一.js操作css样式 div . style . width="200px" 在div标签内我们添加了一个style属性,并设定width值.这种写法会给标签带来大量的style ...

  2. elasticsearch 2.4在head删除数据(使用Delete By Query插件)

    之所以说明是2.4版,是因为不同版本删除的语法不一样(例如跟5.x就不同) 首先安装Delete By Query插件,方式跟安装head插件差不多,安装命令:plugin install delet ...

  3. Android开发实现高德地图定位

    1.获取Key 参考官方文档:http://lbs.amap.com/api/android-location-sdk/guide/create-project/get-key 对于签名文件的获取建议 ...

  4. SQLite -插入查询

     SQLite -插入查询 SQLite插入语句是用来添加新行数据到数据库中的一个表. 语法: 有两种基本的插入语句的语法如下: INSERT INTO TABLE_NAME (column1, co ...

  5. 汇编4OPCODE

    opcode原理 前缀域 切换操作数大小前缀 : 066h 可以将32位的操作数切换成16位的操作数 B8 00010000 | MOV EAX,0x100     66:B8 0001 | MOV ...

  6. Python3 OpenCV3 图像处理基础

    开发环境搭建 本人使用的是Ubuntu 16.04LTS. 1.安装Python3 ## 其实 Ubuntu 16.04 系统自带了 Python 3.5.2,因此不需要再安装了?但是需要安装一些开发 ...

  7. uva12105 Bigger is Better

    更简单的做法:定义状态dp[i][j]表示在已经用了i根火柴的情况下拼出来了剩余部分(是剩余部分,不是已经拼出来了的)为j(需要%m)的最大长度,一个辅助数组p[i][j]表示状态[i][j]的最高位 ...

  8. numpy次方计算

    >>> 2**np.arange(3, 6) array([ 8, 16, 32])

  9. 微信公众号:theTree20181123

    哈哈哈哈~我开通了一个微信公众号,以后的文章会发在公众号内啦~走过路过的小伙伴们过来围观一下呀~~ 主要是分为三个模块:视觉SLAM,ACM,变美树洞 这里面写下来的文章都是我再读研阶段的所学所想当然 ...

  10. 【传智播客】Libevent学习笔记(三):事件循环

    目录 00. 目录 01. event_base_loop函数 02. event_base_dispatch函数 03. event_base_loopexit函数 04. event_base_l ...