HDU 1256 图片8

图片8

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 4105    Accepted Submission(s): 1764

Problem Description

谁画8画的好,画的快,今后就发的快,学业发达,事业发达,祝大家发,发,发.

Input

输入的第一行为一个整数N,表示后面有N组数据.

每组数据中有一个字符和一个整数,字符表示画笔,整数(>=5)表示高度.

Output

画横线总是一个字符粗,竖线随着总高度每增长6而添加1个字符宽.当总高度从5添加到6时,其竖线宽度从1增长到2.下圈高度不小于上圈高度,但应尽量接近上圈高度,且下圈的内径呈正方形.

每画一个"8"应空一行,但最前和最后都无空行.

Sample Input

2
A 7
B 8

Sample Output

  AA
AA  AA
AA  AA
  AA
AA  AA
AA  AA
  AA

  BBB
BB   BB
BB   BB
  BBB
BB   BB
BB   BB
BB   BB
  BBB

本题是个数学题,看了好久才看懂一点点(仅仅能说我语文没学好)。

本题还要注意格式要求,第一行后面的字母没有空格

思路:求出线的宽度  p=H/6+1

再求出以下竖线的高度,(竖线的高度是本题的一个突破口,题目说下圈的内径呈正方形)。之后再用for循环输出就可以

#include<stdio.h>
int main()
{
	int n,H;
	char c;
	scanf("%d",&n);
	//getchar();
	while(n--)
	{
		getchar();
		int p,q,j,k;
		scanf("%c %d",&c,&H);
		p=H/6+1;			//线的宽度
		q=H-3-(H-3)/2;		//以下竖线的高度
		for(j=1;j<=H;j++)
		{
			if(j==1||j==H||j==(H-1-q))
			{
				for(k=1;k<=p;k++)
				printf(" ");
				for(k=1;k<=q;k++)
				printf("%c",c);
				printf("\n");
			}
			else
			{
				for(k=1;k<=p;k++)
				printf("%c",c);
				for(k=1;k<=q;k++)
				printf(" ");
				for(k=1;k<=p;k++)
				printf("%c",c);
				printf("\n");
			}
		}
		if(n>0)
		printf("\n");
	}
	return 0;
}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

时间: 2024-08-03 12:49:04

HDU 1256 图片8的相关文章

HDU 1256 画8

画8 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4105    Accepted Submission(s): 1764 Problem Description 谁画8画的好,画的快,今后就发的快,学业发达,事业发达,祝大家发,发,发. Input 输入的第一行为一个整数N,表示后面有N组数据. 每组数据中有一个字符和一个整数,字

HDOJ/HDU 1256 画8(绞下思维~水题)

Problem Description 谁画8画的好,画的快,今后就发的快,学业发达,事业发达,祝大家发,发,发. Input 输入的第一行为一个整数N,表示后面有N组数据. 每组数据中有一个字符和一个整数,字符表示画笔,整数(>=5)表示高度. Output 画横线总是一个字符粗,竖线随着总高度每增长6而增加1个字符宽.当总高度从5增加到6时,其竖线宽度从1增长到2.下圈高度不小于上圈高度,但应尽量接近上圈高度,且下圈的内径呈正方形. 每画一个"8"应空一行,但最前和最后都无空

hdu 1348 Wall(凸包模板题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1348 Wall Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3386    Accepted Submission(s): 968 Problem Description Once upon a time there was a gre

HDU 4311 Meeting point-1 &amp;&amp; HDU 4312 Meeting point-2

这俩个题  题意::给出N(<1e5)个点求找到一个点作为聚会的地方,使每个点到达这里的距离最小.4311是 曼哈顿距离 4312是 切比雪夫距离: 曼哈顿距离 :大家都知道 对于二维坐标系a(xa,yb),b(xb,yb)的曼哈顿距离是abs(xa-xb)+abs(ya-yb): 看的出来这个距离和x,y 都有关,但是X,Y并不相互影响,所以可以分开计算这样,分开计算的好处如下: 如果 只给一个维度的坐标系 ,我们是不可以再什么养的复杂度的时间内处理出来呢? 大难还是很好想的先排序一下,会发现

【并查集】hdu 1272 小希的迷宫

[并查集]hdu 1272 小希的迷宫 并查集--并查集森林无环且连通 题目大意 给你连接关系构造一个图,判断图是否无环且满足连通性. 说一下思路 ①有无环:(a,b)元素a.b根节点是否相同,相同合并边就会成环,不满足题目要求 ②连通性:记录之前出现的节点,统计最后根节点==自身的节点个数,正好是1才是一片连通森林! ★再以后并查集初始化 i < _max,这道题有等号就WA了,不知道为什么??!!! 参考代码 //#pragma comment(linker, "/STACK:1024

【multiset】hdu 5349 MZL&#39;s simple problem

[multiset]hdu 5349 MZL's simple problem 题目链接:hdu 5349 MZL's simple problem 题目大意 n次操作,插入元素.删除最小元素.查询最大元素并输出. C++STL的multiset的使用 set--多元集合(元素不可重复),multiset--可重复元素的多元集合 多元集合(MultiSets)和集合(Sets)相像,只不过支持重复对象.(具体用法请参照set容器) set和multiset内部是以平衡二叉树实现的: 从内部数据结

HDU分类

模拟题, 枚举 1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117 1119 1128 1129 1144 1148 1157 1161 1170 1172 1177 1197 1200 1201 12

【裸单源最短路:Dijkstra算法两种版本】hdu 1874 畅通工程续

Source : hdu 1874 畅通工程续 http://acm.hdu.edu.cn/showproblem.php?pid=1874 Problem Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多.这让行人很困扰. 现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离. Input 本题目包含多组数据,请处理到文件结束.

【裸MST:prim+邻接矩阵 / Kruskal+邻接表】hdu 1233 还是畅通工程

Source : hdu 1233 还是畅通工程 http://acm.hdu.edu.cn/showproblem.php?pid=1233 Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小.请计算最小的公路总长度. Input 测试输入包含若干测试用例.每个测试用例的第1行给出村庄