C++
TomCruisePro
程序猴
展开
-
代码规范检查
C原创 2022-11-23 14:37:51 · 251 阅读 · 1 评论 -
华为C语言编程规范
1原创 2022-11-20 14:31:58 · 1322 阅读 · 0 评论 -
最大公共子串
最大公共子串2017年蓝桥杯软件类省赛C++大学A组第6题“最大公共子串”。 一道代码填空题,八成也是送分题。 因为不难,罗老师就再做一次。最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少。比如:“abcdkkk” 和 “baabcdadabc”,可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。下面的程序是采用矩阵法进行求解的,这对串的规模不大的情况还是比较有效的解法。请分析该解法的思路,并补全划线部分缺失的代码。#include <s原创 2021-02-25 14:25:56 · 241 阅读 · 0 评论 -
字母组串
题目2017年蓝桥杯软件类省赛C++大学A组第5题“字母组串”。 一道代码填空题。据说这是传统的送分题,一起来看看是怎么送分的。 因为不难,就不麻烦倪文迪了,罗老师自己也能做。由 A,B,C 这3个字母就可以组成许多串。比如:“A”,“AB”,“ABC”,“ABA”,“AACBB” …现在,小明正在思考一个问题:如果每个字母的个数有限定,能组成多少个已知长度的串呢?他请好朋友来帮忙,很快得到了代码,解决方案超级简单,然而最重要的部分却语焉不详。请仔细分析源码,填写划线部分缺少的内容。原创 2021-02-25 13:52:27 · 162 阅读 · 0 评论 -
方格分割
方格分割6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。如图就是可行的分割法。试计算:包括这3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法。输出输出一个整数表示答案思路这道题一开始我就傻逼逼得想着6*6方格就想用一个方格作为单位来模拟,其实是用点作为模拟,因为是沿着点剪的,突破点是必定经过(3,3)这个点,而且只有两个点在边界上,并且两点也是对称的,(x,y)和(6-x)(6-y)两个点是对称。。。最后在得到答案还要除4,因为包括了旋转和对称原创 2021-02-24 17:27:59 · 417 阅读 · 0 评论 -
牛异或
牛异或农夫约翰在给他的奶牛们喂食时遇到了一个问题。他共有 N头奶牛,编号 1∼N。每次喂食前,这 N头奶牛会按照 1∼N的顺序站成一排。此外,每头奶牛都被分配了一个可能不唯一的整数。那么所有被分配的整数就形成了一个长度为 N的整数序列。请你在该整数序列中找出一个连续的非空子序列,使得子序列中元素的异或和能够最大。如果存在多个这样的序列,那么选择序列末端整数对应的奶牛编号更小的那个序列。如果仍然存在多个可选的序列,那么选择长度最短的那个序列。输入格式第一行包含整数 N。第 2原创 2021-02-09 21:17:11 · 119 阅读 · 0 评论 -
最大异或对
题目在给定的N个整数A1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少?输入格式第一行输入一个整数N。第二行输入N个整数A1~AN。输出格式输出一个整数表示答案。数据范围1≤N≤105,0≤Ai<231输入样例:31 2 3输出样例:3思路直接暴力会TLE,考虑优化,用树来存储每一个树的二进制,如下图方式存储遍历完数组,当前遍历的树优先找每一层异或为1的值。其他都在注释里解释了代码#include<bits/stdc++.h&g原创 2021-02-08 20:23:49 · 976 阅读 · 0 评论 -
最大的和
题目给定一个包含整数的二维矩阵,子矩形是位于整个阵列内的任何大小为1 * 1或更大的连续子阵列。矩形的总和是该矩形中所有元素的总和。在这个问题中,具有最大和的子矩形被称为最大子矩形。例如,下列数组:0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2其最大子矩形为:9 2-4 1-1 8它拥有最大和15。输入格式输入中将包含一个N*N的整数数组。第一行只输入一个整数N,表示方形二维数组的大小。从第二行开始,输入由空格和换行符隔开的N2个整数,它们即为二维原创 2021-02-08 09:27:35 · 325 阅读 · 1 评论 -
加分二叉树
题目设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下:subtree的左子树的加分 × subtree的右子树的加分 + subtree的根的分数若某个子树为空,规定其加分为1。叶子的加分就是叶节点本身的分数,不考虑它的空子树。试求一棵符合中序遍历为(1,2,3,…,n)且加分最高原创 2021-02-07 17:14:19 · 3630 阅读 · 0 评论 -
摘花生
题目Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。Hello Kitty只能向东或向南走,不能向西或向北走。问Hello Kitty最多能够摘到多少颗花生。输入格式第一行是一个整数T,代表一共有多少组数据。接下来是T组数据。每组数据的第一行是两个整数,分别代表花生苗的行数R和列数 C。每组数据的接下来R行数据原创 2021-02-07 15:13:54 · 93 阅读 · 0 评论 -
星空之夜
星空之夜夜空深处,闪亮的星星以星群的形式出现在人们眼中,形态万千。一个星群是指一组非空的在水平,垂直或对角线方向相邻的星星的集合。一个星群不能是一个更大星群的一部分。星群可能是相似的。如果两个星群的形状、包含星星的数目相同,那么无论它们的朝向如何,都认为它们是相似的。通常星群可能有 8种朝向,如下图所示:starry-1.gif现在,我们用一个二维 01矩阵来表示夜空,如果一个位置上的数字是 1,那么说明这个位置上有一个星星,否则这个位置上的数字应该是 0。给定一个夜空二维矩阵,请你原创 2021-02-06 23:18:02 · 306 阅读 · 0 评论 -
合唱队形(最大上升子序列)
题目N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<…Ti+1>…>TK(1≤i≤K)。你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。输入格式输入的第一行是一个整数N,表示同学的总数。第二行有n个整数,用空格分隔,第i个整数Ti是第i位同学的身高(厘米原创 2021-02-05 18:03:11 · 525 阅读 · 0 评论 -
整数的集合划分
整数的集合划分给定一个包含 N 个正整数的集合,请你将它划分为两个集合 A1 和 A2,其中 A1 包含 n1 个元素,A2 包含 n2个元素。集合中可以包含相同元素。用 S1表示集合 A1 内所有元素之和,S2 表示集合 A2内所有元素之和。请你妥善划分,使得 |n1−n2|尽可能小,并在此基础上 |S1−S2|尽可能大。输入格式第一行包含整数 N。第二行包含 N个正整数。输出格式再一行中输出 |n1−n2|和 |S1−S2|,两数之间空格隔开。数据范围2≤N≤10原创 2021-02-05 16:12:50 · 445 阅读 · 0 评论 -
滑雪场设计
滑雪场设计农夫约翰的农场上有 N个山峰,每座山的高度都是整数。在冬天,约翰经常在这些山上举办滑雪训练营。不幸的是,从明年开始,国家将实行一个关于滑雪场的新税法。如果滑雪场的最高峰与最低峰的高度差大于17,国家就要收税。为了避免纳税,约翰决定对这些山峰的高度进行修整。已知,增加或减少一座山峰 x单位的高度,需要花费 x2的金钱。约翰只愿意改变整数单位的高度,且每座山峰只能修改一次。请问,约翰最少需要花费多少钱,才能够使得最高峰与最低峰的高度差不大于17。输入格式第一行包含整数 N。原创 2021-02-05 16:05:40 · 282 阅读 · 0 评论 -
阶乘
题目N 的阶乘(记作 N!)是指从 1 到 N(包括 1 和 N)的所有整数的乘积。阶乘运算的结果往往都非常的大。现在,给定数字 N,请你求出 N!的最右边的非零数字是多少。例如 5!=1×2×3×4×5=120,所以 5! 的最右边的非零数字是 2。输入格式共一行,包含一个整数 N。输出格式输出一个整数,表示 N!的最右边的非零数字。数据范围1≤N≤1000输入样例:7输出样例:4思路对于n的阶乘,其可以表示为2的x次方乘上5的y次方再乘上若干素数的若干次方,原创 2021-02-05 15:57:37 · 378 阅读 · 0 评论 -
棋盘挑战
棋盘挑战题目描述给定一个 N×N 的棋盘,请你在上面放置 N个棋子,要求满足:每行每列都恰好有一个棋子每条对角线上都最多只能有一个棋子1 2 3 4 5 61 | | O | | | | |2 | | | | O | | |3 | | | | | | O |4 | O | | | | | |5 | | | O | | | |6 | | | |原创 2021-02-04 16:18:28 · 361 阅读 · 0 评论