hdu 2074 堆放篮 好开心图纸标题

堆放篮

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

Total Submission(s): 12160    Accepted Submission(s): 3136

Problem Description

须要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时。边筐花色交错。这个工作如今要让计算机来完毕,得看你的了。

Input

输入是一个个的三元组,各自是。外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符。外筐花色字符,后二者都为ASCII可见字符;

Output

输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠。多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。

Sample Input

11 B A
5 @ W

Sample Output

 AAAAAAAAA
ABBBBBBBBBA
ABAAAAAAABA
ABABBBBBABA
ABABAAABABA
ABABABABABA
ABABAAABABA
ABABBBBBABA
ABAAAAAAABA
ABBBBBBBBBA
 AAAAAAAAA 

 @@@
@[email protected]
@[email protected]@
@[email protected]
 @@@ 
#include <iostream>
#include <map>
#include<string>
#define FOR(i,n) for(i=0;i<n;i++)
using namespace std;

int main()
{
	int n,i,j;
	char c1,c2;
	int jiaoti,zhong,flag=0;;
	while(scanf("%d %c %c",&n,&c1,&c2)!=EOF)//%s 跳过前面的空格
	{
		if(flag==1)//图与图间换行
		{
	    	puts("");
		}
		flag=1;
		if(n==1)//特殊处理, 当个的,
		{
			printf("%c\n",c1);
			continue;
		}

		if(n/2+1&1)//由于是从外面開始推的  所以(n-1)/2 的奇偶性 会决定第一行的 图形.
		{
			char t;
			t=c1;
			c1=c2;
			c2=t;
		}

		FOR(i,n)
		{
			if(i==0||i==n-1)//第一行和最后一行
			{
				printf(" ");
				FOR(j,n-2)
					printf("%c",c2);
				puts(" ");
				continue;
			}

			if(i<n/2+1)//开头和结尾 交替出现的字母有几个
				jiaoti=i;
			else
				jiaoti--;

			FOR(j,jiaoti)//输出 开头 交替出现的字母
			{
				if(j&1)
				{
					printf("%c",c1);
				}
				else
				{
					printf("%c",c2);
				}
			}

			if(i<n/2+1)//输出每行中间的字母.
				zhong=n-i*2;
			else
				zhong+=2;
			FOR(j,zhong)
			{
				if(i&1)
				{
					printf("%c",c1);
				}
				else
				{
					printf("%c",c2);
				}
			}

			FOR(j,jiaoti)//输出 结尾 交替出现的字母
			{
				if(j+i&1)
				{
					printf("%c",c2);
				}
				else
				{
					printf("%c",c1);
				}
			}
			puts("");
		} 

	}
	return 0;
}
时间: 2024-10-06 11:08:43

hdu 2074 堆放篮 好开心图纸标题的相关文章

hdu 2074 叠筐 好有意思的画图题

叠筐 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 12160    Accepted Submission(s): 3136 Problem Description 需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错.这个工作现在要让计算机来完成,得看你的了. Input 输入是一个个的三元组,分别是,外筐尺

hdu 2074

ps:WA了好多次...因为首先是n=1的情况,其次是中心花色和外花色,中心花色也有可能是最外层花色....很无语. 然后就是格式问题咯. 代码 #include "stdio.h" #include "string.h" void GG(int n,char a,char b); void pri(char a); int main(){ int i,j,n,ncase=0; char a,b; while(~scanf("%d %c %c",

叠筐 HDU - 2074

找规律的模拟题,细节较多.网上推出的有公式. 除了公式之外,还可以这样看. 这个花框是里外交替的.假设 外 1 层为A的话,接下来外2层就是B,再接下来,外3层为A.....以此类推 层数 t ∈ [ 0,(T+1)/2 ) 当 t 为奇数 时 ,最外层为 A ,当 t 为偶数时 最外层为B ,然后层层交替. 处理完之后,再挖去四个角.以空格覆盖之.完毕. 注意事项: (1)由于数据有多组,注意str字符数组的初始化........ (2)当 N==1 时单独输出. (3)函数调用里面的str[

HDU 2074 叠筐

叠筐 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 16088    Accepted Submission(s): 4201 Problem Description 需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错.这个工作现在要让计算机来完成,得看你的了. Input 输入是一个个的三元组,分别是,外筐尺

int* p[2] 与 int (*p)[2] 的不同

[译者注]在本文中,作者提出了使用k-means算法来对图像进行色彩还原,介绍算法的步骤,同时应用在图像上,通过对比还原前后的图像,来证明k-means算法的有效性.以下为译文: k-means是机器学习中最著名.最广泛使用的算法之一.在这篇文章中,将使用k-means算法来减少图像上的颜色(但不减少像素),从而也减少了图像的大小.在这个领域不需要任何基础知识,因为可执行应用程序文件(大小为150MB,这是由于长时间的Spark依赖)已经提供了友好的用户界面.所以你可以很容易地用不同的图像来做实

【Scrapy】Scrapy爬虫框架的基本用法

Scrapy爬虫框架的基本用法 Scrapy爬虫框架是一个好东西,可以十分简单快速爬取网站,特别适合那些不分离前后端的,数据直接生成在html文件内的网站.本文以爬取 杭电OJ http://acm.hdu.edu.cn 的题目ID和标题为例,做一个基本用法的记录 可参考 https://www.jianshu.com/p/7dee0837b3d2 安装Scrapy 使用pip安装 pip install scrapy 代码编写 建立项目 myspider scrapy startproject

HDU 1069 Monkey and Banana(DP 长方体堆放问题)

Monkey and Banana Problem Description A group of researchers are designing an experiment to test the IQ of a monkey. They will hang a banana at the roof of a building, and at the mean time, provide the monkey with some blocks. If the monkey is clever

hdu 1267 递推

下沙的沙子有几粒? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4326    Accepted Submission(s): 2268 Problem Description 2005年11月份,我们学校参加了ACM/ICPC 亚洲赛区成都站的比赛,在这里,我们获得了历史性的突破,尽管只是一枚铜牌,但获奖那一刻的激动,也许将永远铭刻

HDU 6205 2017沈阳网络赛 思维题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6205 题意:给你n堆牌,原本每一堆的所有牌(a[i]张)默认向下,每次从第一堆开始,将固定个数的牌(b[i]张)翻上,然后下一堆继续,直到没有足够的牌翻上,然后你可以获得当前已经操作过的堆的所有牌.最初你可以调整堆的顺序,把第一堆放到最后一堆(逆时针旋转),你可以重复这个操作,问你要重复多少次这个操作,才能获得最多的牌. 解法:先把这个序列复制一遍放在原来的序列后面.当i=n的时候结束就可以了,每次