【HDOJ】1332 LC-Display
水题。
#include <cstdio>
#include <cstring>
#include <cstdlib> #define MAXN 11
#define LEFT 1
#define RIGHT 2
#define BOTH 3 char lcd[][MAXN][*MAXN++][MAXN++];
int rr[MAXN];
int cc[MAXN]; void addR(int x, int i, int j) {
int k; for (k=; k<cc[i]-; ++k)
lcd[x][i][j][k] = '-';
} void addC(int x, int i,int j, int v) {
if (v & LEFT)
lcd[x][i][j][] = '|';
if (v & RIGHT)
lcd[x][i][j][cc[i]-] = '|';
} void init() {
int i, j, k;
int n; for (i=; i<=; ++i) {
rr[i] = *i+;
cc[i] = i+;
} memset(lcd, ' ', sizeof(lcd)); for (k=; k<; ++k) {
for (i=; i<=; ++i) {
for (j=; j<rr[i]; ++j) {
lcd[k][i][j][cc[i]] = '\0';
}
}
} //
n = ;
for (i=; i<=; ++i) {
for (j=; j<rr[i]; ++j) {
if (j== || j==rr[i]-) {
addR(n, i, j);
} else if (j == i+) {
/*do nothing*/;
} else {
addC(n, i, j, BOTH);
}
}
} //
n = ;
for (i=; i<=; ++i) {
for (j=; j<rr[i]; ++j) {
if (j== || j==i+ || j==rr[i]-) {
/*do nothing*/;
} else {
addC(n, i, j, RIGHT);
}
}
} //
n = ;
for (i=; i<=; ++i) {
for (j=; j<rr[i]; ++j) {
if (j== || j==i+ || j==rr[i]-) {
addR(n, i, j);
} else {
if (j < i+)
addC(n, i, j, RIGHT);
else
addC(n, i, j, LEFT);
}
}
} //
n = ;
for (i=; i<=; ++i) {
for (j=; j<rr[i]; ++j) {
if (j== || j==i+ || j==rr[i]-) {
addR(n, i, j);
} else {
addC(n, i, j, RIGHT);
}
}
} //
n = ;
for (i=; i<=; ++i) {
for (j=; j<rr[i]; ++j) {
if (j== || j==rr[i]-) {
/*do nothing*/;
} else if (j == i+) {
addR(n, i, j);
} else {
if (j < i+)
addC(n, i, j, BOTH);
else
addC(n, i, j, RIGHT);
}
}
} //
n = ;
for (i=; i<=; ++i) {
for (j=; j<rr[i]; ++j) {
if (j== || j==i+ || j==rr[i]-) {
addR(n, i, j);
} else {
if (j < i+)
addC(n, i, j, LEFT);
else
addC(n, i, j, RIGHT);
}
}
} //
n = ;
for (i=; i<=; ++i) {
for (j=; j<rr[i]; ++j) {
if (j== || j==i+ || j==rr[i]-) {
addR(n, i, j);
} else {
if (j < i+)
addC(n, i, j, LEFT);
else
addC(n, i, j, BOTH);
}
}
} //
n = ;
for (i=; i<=; ++i) {
for (j=; j<rr[i]; ++j) {
if (j==) {
addR(n, i, j);
} else if (j==i+ || j==rr[i]-) {
/*do nothing*/;
} else {
addC(n, i, j, RIGHT);
}
}
} //
n = ;
for (i=; i<=; ++i) {
for (j=; j<rr[i]; ++j) {
if (j== || j==i+ || j==rr[i]-) {
addR(n, i, j);
} else {
addC(n, i, j, BOTH);
}
}
} //
n = ;
for (i=; i<=; ++i) {
for (j=; j<rr[i]; ++j) {
if (j== || j==i+ || j==rr[i]-) {
addR(n, i, j);
} else {
if (j < i+)
addC(n, i, j, BOTH);
else
addC(n, i, j, RIGHT);
}
}
}
} void output(int n) {
int i, j, k; for (i=; i<; ++i) {
for (j=; j<rr[n]; ++j) {
printf("%s\n", lcd[i][n][j]);
}
printf("\n\n");
}
printf("output finish\n");
} int main() {
int n;
int i, j, k;
char s[]; #ifndef ONLINE_JUDGE
freopen("data.in", "r", stdin);
freopen("data.out", "w", stdout);
#endif init();
//output(1); while (scanf("%d %s", &n, s) != EOF) {
if (n== && s[]=='' && s[]=='\0')
break;
for (j=; j<rr[n]; ++j) {
for (i=; s[i]; ++i) {
if (i)
printf(" %s", lcd[s[i]-''][n][j]);
else
printf("%s", lcd[s[i]-''][n][j]);
}
printf("\n");
}
printf("\n");
} return ;
}
【HDOJ】1332 LC-Display的更多相关文章
- 【HDOJ】4729 An Easy Problem for Elfness
其实是求树上的路径间的数据第K大的题目.果断主席树 + LCA.初始流量是这条路径上的最小值.若a<=b,显然直接为s->t建立pipe可以使流量最优:否则,对[0, 10**4]二分得到 ...
- 【HDOJ】4605 Magic Ball Game
思路1:树状数组+离线处理,对所有的w离散化处理,边dfs边使用树状数组更新左右w的情况.思路2:主席树,边bfs边建树.结点信息存储cnt,然后在线查询.树状数组. /* 4605 */ #incl ...
- 【HDOJ】4601 Letter Tree
挺有意思的一道题,思路肯定是将图转化为Trie树,这样可以求得字典序.然后,按照trie的层次求解.一直wa的原因在于将树转化为线性数据结构时要从原树遍历,从trie遍历就会wa.不同结点可能映射为t ...
- 【HDOJ】4426 Palindromic Substring
综合性很强的一道题目,结合manacher,后缀数组,哈希,RMQ,二分可解.基本思路是通过manacher可以找到所有可能的回文串,哈希去重,后缀数组二分找数目.最后暴力求解.需要注意kth需要为_ ...
- 【HDOJ】3948 The Number of Palindromes
后缀数组求不重复回文子串数目.注意dp数组. /* 3948 */ #include <iostream> #include <sstream> #include <st ...
- 【HDOJ】4691 Front compression
后缀数组基础题目,dc3解. /* 4691 */ #include <iostream> #include <sstream> #include <string> ...
- 【HDOJ】2459 Maximum repetition substring
后缀数组+RMQ. /* 2459 */ #include <iostream> #include <sstream> #include <string> #inc ...
- 【HDOJ】1648 Keywords
PE的注意,如果没有满足条件的不输出空格.简单模拟,暴力解. /* */ #include <iostream> #include <sstream> #include < ...
- 【HDOJ】【3506】Monkey Party
DP/四边形不等式 裸题环形石子合并…… 拆环为链即可 //HDOJ 3506 #include<cmath> #include<vector> #include<cst ...
随机推荐
- Robotium API -- click/clickLong操作
click&clickLong方法(点击/长按事件) ArrayList<android.widget.TextView> clickList(int ...
- c++ map与 qt QMap insert 区别
当插入相同key的字段时, c++ map 会保留原来的字段, QMap 则会取代原来的字段.
- LOAD DATA INFILE Syntax--官方
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name' [REPLACE | IGNORE] INTO TABLE tbl_n ...
- ionic 字体的导入方法
更换字体 这是第一个图标(蜜蜂推荐)是撸主原来的图标 这是UI给的效果图的图标,显然默认的图标不符合要求 查找图标所在的样式,在tabs.html文件中 <ion-tabs class=&quo ...
- MySQL 5.6.19编译安装
1.创建mysql安装目录.mysql用户 [root@serv19 ~]# mkdir -p /u01/mysql/data [root@serv19 ~]# groupadd mysql [roo ...
- Http 辅助类
using System; using System.Drawing; using System.IO; using System.Net; using System.Net.Cache; using ...
- css3 3D变换和动画
3D变换和动画 建立3D空间,transform-style: preserve-3d perspective: 100px; 景深 perspective-origin:center center ...
- java RSA签名
try{ //1初始化秘钥 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); key ...
- 排序算法之快速排序 JAVA快速排序算法
public static void quickSort(int[] arr, int low , int height){ int l=low, h = height; if(low < he ...
- C++关联容器<map>简单总结
C++关联容器<map>简单总结 map提供大小可变的关联容器,基于关联键值高效检索元素值.当你处理键值对的数据是,都可以考虑使用map关联容器. 特点: 大小可变的关联容器,基于关联键值 ...