#include <iostream>
#include <cstdio>
using namespace std;
#define MAXSIZE 21
int n; //第一行符号个数
int signTriangle[MAXSIZE][MAXSIZE]; //符号三角形矩阵,矩阵最左侧一列不用
int count; //满足条件的符号三角形个数
int half; //符号总数的一半
int amount; //符号总数
int Count(int k, int count)
{
//printf("sign[%d] %d ", k, signTriangle[0][k]);
int i, j;
for (i = 0, j = k; i < k; i++, j--)
{
count += signTriangle[i][j];
if (signTriangle[i][j-1] == signTriangle[i][j])
{
signTriangle[i+1][j-1] = 1;
}
else
{
signTriangle[i+1][j-1] = 0;
}
}
//printf("number of plus signs: %d\n", count);
return count;
}
void Backtrack(int k, int plusSigns)
{
if (k > n)
{
count++;
//printf("%d %d\n", plusSigns, count);
}
else
{
int i;
for (i = 0; i < 2; i++) //i为0代表减号,为1代表加号
{
signTriangle[0][k] = i;
//统计新增最右侧一条边后,加号的数量
int temp = Count(k, plusSigns);
//加号和减号的数量均不能超过总符号数的一半
if (temp <= half && (k*(k+1))/2 - temp <= half)
{
Backtrack(k+1, temp);
}
}
}
}
int main(void)
{
while (scanf("%d", &n) != EOF)
{
count = 0;
amount = n*(n+1) / 2;
//printf("amount: %d\n", amount);
if (amount % 2 == 0)
{
half = amount / 2;
Backtrack(1, 0);
}
printf("%d\n", count);
}
return 0;
}相关推荐
符号三角形问题(回溯)
算法设计例题:符号三角形问题(回溯) memory limit: 5000KB time limit: 20000MS accept: 5 submit: 8 Description 符号三角形问题要求对于给定的n,计算有多少个不同的符号三角形,使其所含的“+”和“-”的个数相同。 在一般情况下,符号三角形的第一行有n个符号。如图所示是由14个“+”号和1
符号三角形问题
文章引用:题目描述。
符号三角形问题.txt
输入:n (1<n<=27). 输出不同方案的个数. 注意:纯打表必和谐掉,不信就试试;有限打表,你懂的。 测试输入关于“测试输入”的帮助 期待的输出关于“期待的输出”的帮助 时间限制关于“时间限制”的帮助 内存限制关于“内存限制”的帮助 额外进程关于“{$a} 个额外进程”的帮助 测试用例 1 以文本方式显示 2↵ 3↵ 以文本方式显示 0↵ 4↵ 1秒 64M 0
回溯法之符号三角形问题
问题描述 题目分析 对于符号三角形问题,用n元组x[1:n]表示符号三角形第一行的n个符号,由于我们只有两种符号——"+“或”-",所以取值是一个二值问题,如果取"+“我们就假设x[i]=1,如果取”-“我们就设x[i]=0。所以这显然是一个解空间为子集树的问题。我们不需要每次都遍历到树的叶节点,可以通过剪枝来节约时间。 明确了解空间以后,我们要确定的就是约束函数。由于”+“和”-“数目相同,且...
回溯算法解决+ -符号三角问题的实验研究
用回溯法解决以下问题,下图是由14个“+”和14个“-”组成的符号三角形。2个同号下面都是“+”,2个异号下面都是“-”。
从零到一:龙芯杯参赛全攻略(含北理工学长经验PDF、B站培训视频与开源代码合集)
本文详细介绍了龙芯杯全国大学生计算机系统能力大赛的参赛全攻略,包括资源整合、技能树构建、团队协作和避坑指南。提供北理工学长经验PDF、B站培训视频与开源代码合集,帮助参赛者从零基础到站上领奖台。重点解析如何高效获取优质资源、避开新手常见陷阱及构建可落地的学习路径,助力普通学生系统学习CPU设计。
回溯算法之符号三角形问题(思考分析、解决、算法模板)
一、问题描述 在一般情况下,符号三角形第一行有N个符号,该问题要求对于给定n计算有多少种不同的符号三角形。使其所含的+ — 个数相同。 要求:n个符号 有多少个符号三角形(+- 个数相同、符合规则) 二、问题分析 (1)问题关键分析:对于一个符号三角形而言,只要是第一行元素确定了,那么接下来整个符号三角形就确定了。因此,关键在于第一行的元素是怎么排列的?他能决定接下来的+-个数总和。 ...
Contest 226 - C - Martial artist
from atcoder Problem Statement Time Limit: 2 sec / Memory Limit: 1024 MB Score :300300points Takahashi is a martial artist. There areNNmoves that a martial artist can learn, called Move11,22,\ldots…,NN. For each1 \leq i \leq N1≤i≤N, it takes...
【算法导论11】回溯法-符号三角形问题
【11回溯法-符号三角形问题】 问题描述: 给定一个数字n,求出符合符号三角形的三角形个数,符号三角形的定义为: 由+ - 符号构成的倒三角形,同号下方为+,异号下方为-,且+号数量=-号数量的三角形。 问题分析: 1 该三角形每行个数依次递减,所以总数是等差数列,S = (1+n)*n/2。 2 三角形的总数S一定为偶数。 3 正负符号的个数一定为S/2。(可行解) 4 每个部分符号三角形一定满足:正或负符号个数<S/2。(剪枝函数) 算法分析 1 首先,分析如果单纯构成全为+的符号三角形如何用递归
机械拆装-基于Unity-总体设计
建立一个机械装配的场景
深入解析Panfrost驱动:Mali-GPU开源驱动的架构与实现
本文深入解析了Panfrost驱动作为Mali-GPU开源驱动的架构与实现。从诞生背景到硬件架构演进,详细介绍了Panfrost如何突破ARM闭源策略,实现全栈支持。文章还探讨了驱动设计中的关键技术挑战与性能优化策略,为开发者提供了实用的编译部署指南和性能调优方法。
回溯法--符号三角形(杂记)
回溯法说来简单,写起来难,真的是要愁死。书本例题--符号三角形--回溯法
滑模控制算法——基本原理(附MATLAB程序)
选择一个滑模面和是设计参数。是滑模面函数,通常我们希望系统状态在的面上滑动。我们以一个简单的二阶系统作为示例,其状态空间方程为:是系统矩阵是输入矩阵是输出矩阵假设我们的系统如下:滑模控制算法的核心在于设计合适的滑模面和控制律,并分析系统在滑模面上的稳定性。通过上述公式和步骤,可以有效地设计滑模控制器,以处理具有非线性和不确定性的动态系统。总的来说,滑模控制算法因其鲁棒性和灵活性在处理复杂控制问题中表现出色,但在实际应用中需要精心设计以克服抖振现象和其他潜在问题。BuxuABDC。
打印符号三角形问题java_回溯法之符号三角形问题
问题描述:由14个“+”号和14个“-”号组成的符号三角形。2个同号下面是“+”号,2个异号下面是“-”号。如图:+ + _ + _ + ++ _ _ _ _ +_ + + + __ + + __ + __ _+在一般情况下,符号三角形第一行有N个符号,该问题要求对于给定n计算有多少种不同的符号三角形。使其所含的+ — 个数相...
告别定位不准!Inner-IoU助力YOLOv11边界框回归精度飙升
Inner-IoU 凭借辅助边框的创新设计,成功解决了传统 IoU 损失在小目标、遮挡场景下的收敛难题,为 YOLOv11 注入了更强的定位能力。从原理剖析到代码集成,本教程已为你铺就了一条“精度提升”的实战路径。现在,不妨亲自上手尝试,让你的目标检测模型在各类数据集上都能交出一份“精度优异”的答卷——相信我,当你看到检测框精准贴合目标的那一刻,你会明白这份尝试的价值。
YOLOv13改进:注意力机制 | 动态稀疏注意力的双层路由方法BiLevelRoutingAttention | CVPR2023
BiLevelRoutingAttention方法对小目标检测效果比较好。可能是因为BRA模块是基于稀疏采样而不是下采样,一来可以保留细粒度的细节信息,二来同样可以达到节省计算量的目的。
回溯法解符号三角形问题
/*回溯法解符号三角形问题问题描述:如下图是由14个“+”和14个“-”组成的符号三角形, 2个同号下面都是“+”,2个异号下面都是“-”。- + + - + + + - + - - + + - - + - + + - - - - + + - + -在一般情况下,符号三角形的第一行有n个符号, 符号三
STM32cubeMX配置FreeRTOS软件定时器
文章目录前言1.软件定时器概述一.软件定时器特性二、使用cubeMX生成软件定时器总结 前言 本文主要带大家了解什么是软件定时器,并且带大家使用cubeMX配置软件定时器。 1.软件定时器概述 一.软件定时器特性 软件定时器就是一个闹钟当时间到了就执行相对应的任务或者代码。软件定时器是基于系统滴答中断的。在FreeRTOS中我们可以设置无数个软件定时器。 指定时间:启动定时器和运行回调函数,两者的间隔被称为定时器的周期 (period)。 指定类型定时器有两种类型: 1.一次性 这类定时器启动后,它的回调函
回溯法--符号三角形问题
问题描述:如下图是由14个“+”和14个“-”组成的符号三角形, 2个同号下面都是“+”,2个异号下面都是“-”。- + + - + + +- + - - + +- - + - ++ - - -- + +- +-在一般情况下,符号三角形的第一行有n个符号, 符号三角形问题要求对于给定的n,计算有多少个不同的符号三角...
lwip-2.0.3
lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
符号三角形问题(Java)
符号三角形问题(Java)
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
实验5 回溯法
一、实验目的与要求: 1、通过回溯法的示例程序理解回溯法的基本思想; 2、运用回溯法解决实际问题进一步加深对回溯法的理解和运用; 二、实验内容: 1、分析并掌握“符号三角” 问题的回溯法求解方法; 2、练习使用回溯法求解问题。 三、实验步骤 1.理解回溯算法思想和算法示例; 2.上机输入和调试算法示例程序; 3.理解实验题的问题要求; 4.上机输入和调试自己所编的实验题程序; 5.验证并分析实验题的实验结果; 6.整理出实验报告; 四、示例程序:符号三角形问题 符号三角问题:下面都是“-”。 下图是由14
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
算法设计与分析第5章 回溯法(二)【回溯法应用】
第5章 回溯法 5.2 应用范例 1.0-1背包问题 有n件物品和一个容量为c的背包。第i件物品的重量是w[i],价值是p[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。 ·算法设计: (1)解空间:子集树 (2)算法调用递归函数Backtrack (3)可行性约束函数: (4)上界函数:当前包内物品重量(cw)+物品的选中情况(x[i])*物品的重量(w[i...
1235



被折叠的 条评论
为什么被折叠?



