当前位置: 首页 > news >正文

3.26学习总结 做题

先初始化n=1时,输出的图案。

观察可以得到,n每加1,则在原先图案的左下方和右下方重新打印一遍原先的图案,可以分为两步。

1.复制原先图案打印在其正下方和右下方,并将原先图案清空。

2.在现在图案的上方中间打印原先图案。

通过以上两步就完成了n+1时图案的复制。

需要注意对于数组要将其初始化为空,否则会报错。

#include <stdio.h>
#include<string.h>
int n,h=2,w=4;
char a[1030][2050];
int main() {
	scanf("%d", &n);
	memset(a, ' ', sizeof(a));
	a[1][1] = a[1][4] = ' ';
	a[1][2] = a[2][1] = '/';
	a[1][3] = a[2][4] = '\\';
	a[2][2] = a[2][3] = '_';
	for (int i = 1; i < n; i++) {
		for (int j = 1; j <= h; j++) {
			for (int k = 1; k <= w; k++) {
				a[j + h][k] = a[j + h][k + w] = a[j][k];
				a[j][k] = ' ';
			}
		}
		for (int j = 1; j <= h; j++) {
			for (int k = 1; k <= w; k++) {
				a[j][k+w/2] = a[j + h][k];
			}
		}
		h *= 2, w *= 2;
	}
	for (int j = 1; j <= h; j++) {
		for (int k = 1; k <= w; k++) {
			printf("%c", a[j][k]);
		}
		printf("\n");
	}
	return 0;
}

用一个数组来记录啊a,b,c位于0到20之间时,值的大小。

递归函数w每次调用,对于他每种递归的w,检测是否在数组中储存,若没有储存,则将其存入数组,从而实现记忆化搜索。

注意要开long long

#include<stdio.h>
#include<string.h>
#define LL long long
LL f[21][21][21];
LL w(LL a, LL b, LL c)
{
	if (a <= 0 || b <= 0 || c <= 0)
		return 1;
	if (a > 20 || b > 20 || c > 20)
		return w(20, 20, 20);
	if (a < b && b < c) {
		if (f[a][b - 1][c] == 0)
			f[a][b - 1][c] = w(a, b-1, c);
		if(f[a][b - 1][c-1] == 0)
			f[a][b - 1][c-1] = w(a, b-1, c-1);
		if (f[a][b][c - 1] == 0)
			f[a][b][c - 1] = w(a, b, c - 1);
		f[a][b][c] = f[a][b][c - 1] + f[a][b - 1][c - 1] - f[a][b - 1][c];
	}
	else {
		if (f[a-1][b][c] == 0)
			f[a-1][b][c] = w(a-1, b, c);
		if (f[a - 1][b-1][c] == 0)
			f[a - 1][b-1][c] = w(a - 1, b-1, c);
		if (f[a - 1][b][c-1] == 0)
			f[a - 1][b][c-1] = w(a - 1, b, c-1);
		if (f[a - 1][b-1][c-1] == 0)
			f[a - 1][b-1][c-1] = w(a - 1, b-1, c-1);
		f[a][b][c] = f[a - 1][b][c] + f[a - 1][b - 1][c] + f[a - 1][b][c - 1] - f[a - 1][b - 1][c - 1];
	}
	return f[a][b][c];
}
int main()
{
	LL a, b, c;
	while (1){
		scanf("%lld %lld %lld", &a, &b, &c);
		if (a == -1 && b == -1 && c == -1)
			return 0;
		printf("w(%lld, %lld, %lld) = %lld\n", a, b, c,w(a,b,c));
	}
}

相关文章:

  • WPS JS宏编程教程(从基础到进阶)--第二部分:WPS对象模型与核心操作
  • Tabby 一:如何在Mac配置保姆级教程(本地模型替换hugging face下载)
  • Linux: 文件系统
  • Python项目-基于Python的网络爬虫与数据可视化系统
  • 计算机 笔记
  • 蓝桥杯备考:动态规划之最长上升子序列打鼹鼠
  • 数据结构的基本概念
  • 网络运维学习笔记(DeepSeek优化版) 024 HCIP-Datacom OSPF域内路由计算
  • 响应式CMS架构优化SEO与用户体验
  • vue3 组件篇 WaterMark
  • 23种设计模式-策略(Strategy)设计模式
  • 基于SpringBoot的“健身房管理系统”的设计与实现(源码+数据库+文档+PPT)
  • react ant design树穿梭框实现搜索并展开到子节点、同级节点选择及同时选择数量限制功能
  • 蓝桥杯备考-----》前缀和+哈希表之连续自然数和
  • javafx项目结构+代码规范
  • 西域平台商品详情接口开发指南(含代码示例)
  • Css布局-常规流笔记
  • LeetCode02.07.链表相交
  • AVI格式:经典视频格式的坚守与挑战
  • 在word中使用zotero添加参考文献并附带超链接
  • 网站怎样设计网址大全/叶涛网站推广优化
  • 榆林公司网站建设/哈尔滨seo关键词优化
  • 漳州手机网站建设/网站关键词公司
  • 网站免费服务器/线上推广平台哪些好
  • VM2008 做网站/百度一下你就知道手机版
  • 米拓做网站图片在哪里删掉/百度公司简介