枚举递归模拟贪心(基础题库)
清凉一度
喜欢经典,经典是时间的产物。
总觉得自己还小,干什么都还早。有道是“记得少年骑木马,转眼已是白头人”当我认识到这一点的时候,特别后悔没有珍惜时间。这里面的笔记是,很长时间以来对我自己的提升,自己的学习过程,大家的阅读和评论是对我的一丝认可,一点激励。
展开
-
明码进制转换(模拟)
汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节,一共16行,布局是:第1字节,第2字节第3字节,第4字节…第31字节, 第32字节这道题目是给你一段多个汉字组成的信...原创 2019-03-23 10:38:25 · 589 阅读 · 0 评论 -
灯的开关状态(模拟)
有 N 个灯放在一排,从 l 到 N 依次顺序编号。有 N 个人也从 1 到 N 依次编号。l 号将灯全部关闭,2 号将凡是 2 的倍数的灯打开;3 号将凡是 3 的倍数的灯作相反处理(该灯如为打开的,则将它关闭;如关闭的,则将它打开)。以后的人都和 3 号一样,将凡是自己编号倍数的灯作相反处理。编程实现:第 N 个人操作后,按顺序输出灯的状态( 1 表示灯打开,0 表示灯关闭)。输入格式输...原创 2019-03-10 17:15:04 · 2458 阅读 · 0 评论 -
最少乘法次数(模拟)
<< 是按位移中的左位移,向左移动几位就是乘以2的几次方>> 是按位移中的右位移,向右移动几位就是除以2的几次方当然这种运算要把位移的数转换成2进制题目描述:给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘。如2^4: 2 * 2=22(第一次乘),2 ^ 2 * 2^2 =2 ^ 4(第二次乘),所以最少共2次。2^...原创 2019-03-10 15:06:37 · 525 阅读 · 0 评论 -
念数字(模拟)
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出 fu 字。十个数字对应的拼音如下:0: ling1: yi2: er3: san4: si5: wu6: liu7: qi8: ba9: jiu输入格式输入在一行中给出一个整数,如:1234。提示:整数包括负数、零和正数。输出格式在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的...原创 2019-03-04 21:19:45 · 229 阅读 · 0 评论 -
数制转换(模拟)
求任意两个不同进制非负整数的转换(2 进制~ 16进制),所给整数在 long long 所能表达的范围之内。不同进制的表示符号为(0,1,…,9,a,b,…,f)或者(0,1,…,9,A,B,…,F)。输入格式输入只有一行,包含三个整数 a,n,b。a 表示其后的 n 是 a 进制整数,b 表示欲将 a 进制整数 n转换成 b 进制整数。a,b 是十进制整数,2 ≤ a,b ≤ 16。...原创 2019-03-04 20:56:48 · 325 阅读 · 0 评论 -
求排列的逆序数(递归)
在Internet上的搜索引擎经常需要对信息进行比较,比如可以通过某个人对一些事物的排名来估计他(或她)对各种不同信息的兴趣,从而实现个性化的服务。对于不同的排名结果可以用逆序来评价它们之间的差异。考虑1,2,…,n的排列i1,i2,…,in,如果其中存在j,k,满足 j < k 且 ij > ik, 那么就称(ij,ik)是这个排列的一个逆序。一个排列含有逆序的个数称为这个排列的...原创 2019-03-14 17:27:37 · 2979 阅读 · 1 评论 -
今天是今年的第几天(模拟)
请你计算出 x 年 y 月 z 日是 x 年的第几天。请注意闰年对答案的影响。输入格式一行三个整数,x,y 和 z。(1583 ≤ x ≤ 2100)。数据保证输入合法。输出格式一个整数,表示是第几天。输出时每行末尾的多余空格,不影响答案正确性样例输入12016 3 1样例输出161样例输入21900 3 1样例输出260解题思路#include <i...原创 2019-03-04 19:06:47 · 1391 阅读 · 0 评论 -
翻硬币(贪心)
蒜头君正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用’*'表示正面,用’o’表示反面(是小写字母,不是零)。比如,可能情形是:&amp;quot;**oo***oooo&amp;quot;如果同时翻转左边的两个硬币,则变为:&amp;quot;oooo***oooo&amp;quot;现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:原创 2019-03-10 09:57:53 · 1364 阅读 · 0 评论 -
字符串全排列(递归)
给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有 ‘a’ < ‘b’ < … < ‘y’ < ‘z’,而且给定的字符串中的字母已经按照从小到大的顺序排列。输入格式输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在 11 到 66 之间。输出格式输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排...原创 2019-03-09 19:24:08 · 3408 阅读 · 0 评论 -
1的个数(模拟)
对于一个给定的 [0,10000] 内的不能被 2 或 5 整除的整数 n,n 放大某些倍数后,结果会是仅由很多 1 组成的一个数 a。现在请你找出最小的那个 a 中包含的 1 的个数。输入格式输入包含多组测试数据。每组输入为一个整数 n(0 ≤ n ≤ 10000)。输出格式对于每组输入,输出最小的那个 aa 中包含的 11 的个数。输出时每行末尾的多余空格,不影响答案正确性样例输入...原创 2019-03-10 19:51:07 · 459 阅读 · 0 评论 -
图书管理(模拟)
你有一个书架,然后你现在把书放上去。你总共要操作 q 次,操作有三类:L id,将编号为 id 的书放在书架现在最左边那本书的左边。R id,将编号为 id 的书放在书架现在最右边那本书的右边。? id,问你需要至少拿走几本书使得编号为 id 的书成为书架上最左边或者最右边那本书。输入格式输入的第一行包含一个整数 q(1≤ q ≤ 2 × 10^5)。然后有 q 行,每一行为一个操作...原创 2019-03-10 20:16:27 · 353 阅读 · 0 评论 -
开关灯(枚举)
蒜头君今天回到了老家的大宅院,老家的灯还是那种拉线的灯(拉一次为亮,再拉一次就灭),蒜头君觉得无聊。把 1000 盏灯中编号是 3 的倍数的拉了一次,5 的倍数拉了一次,7 的倍数拉了一次(灯的编号从 1−1000,灯一开始都是亮的)。这个时候蒜头君在想还剩下几盏灯还在亮着?输入格式输入一个整数 n,表示蒜头君家里灯的数量。输出格式输出一个整数 n,表示还有几盏灯还亮着。数据范围1 ≤...原创 2019-03-07 17:00:14 · 382 阅读 · 0 评论 -
2的次幂表示(递归)
2的次幂表示问题描述 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。 将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=27^77+23^33+20^00 现在约定幂次用括号来表示,即a^b表示为a(b) 此时,137可表示为:2(7)+2(3)+2(0) 进一步:7=22^22+2+20^00 (2^1用2...原创 2019-03-26 09:15:18 · 499 阅读 · 2 评论 -
递归求二项式系数值(递归)
问题描述样例输入一个满足题目要求的输入范例。3 10样例输出与上面的样例输入对应的输出。数据规模和约定 输入数据中每一个数的范围。 例:结果在int表示时不会溢出。解题思路1:#include <iostream>#include <algorithm>#include <cstring>#include <cstdio&g...原创 2019-03-12 19:47:31 · 943 阅读 · 0 评论 -
李白打酒(递归dfs)
话说大诗人李白,一生好饮。幸好他从不开车。一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:无事街上走,提壶去打酒。逢店加一倍,遇花喝一斗。这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方...原创 2019-03-17 15:27:00 · 1442 阅读 · 2 评论 -
生理周期 计蒜客里面的坑(枚举)
人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为 2323 天、2828 天和 3333 天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天。对于每个人,我们想知道何时三个高峰落在同一天。对于每个周期,我们会给出从当前年份的第一天开始,到出现高峰的...原创 2019-03-08 10:54:22 · 371 阅读 · 0 评论 -
Fibonacci数列(递归)
问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除...原创 2019-03-11 19:46:04 · 1473 阅读 · 0 评论 -
最简真分数(枚举)
给出 n 个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。输入格式第一行是一个正整数 n(n≤600)。第二行是 n 个不同的整数,相邻两个整数之间用单个空格隔开,整数在 [1,1000]范围内。输出格式一个整数,即最简真分数组合的个数。输出时每行末尾的多余空格,不影响答案正确性样例输入73 5 7 9 11 13 15样例输出17#incl...原创 2019-03-07 22:48:06 · 655 阅读 · 0 评论 -
交换瓶子(贪心)
6.3.9交换瓶子有N个瓶子,编号 1 ~ N,放在架子上。比如有5个瓶子:2 1 3 5 4要求每次拿起2个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:1 2 3 4 5对于这么简单的情况,显然,至少需要交换2次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入格式为两行:第一行: 一个正整数N(N<10000), 表示瓶子的数目第二行:N个正整数,用空...原创 2019-03-19 21:19:50 · 292 阅读 · 0 评论 -
查验身份证(模拟)
查验身份证一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 4 3 2现在...原创 2019-03-07 18:33:22 · 5455 阅读 · 0 评论 -
农场周围的道路(递归)
约翰的 N (1 ≤ N ≤ 10^9) 只奶牛要出发去探索牧场四周的土地.她们将沿着一条路走,一直走到三岔路口(可以认为所有的路口都是这样的)。这时候,这一群奶牛可能会分成两群,分别沿着接下来的两条路继续走。如果她们再次走到三岔路口,那么仍有可能继续分裂成两群继续走。奶牛的分裂方式十分古怪:如果这一群奶牛可以精确地分成两部分(大小不能为零),这两部分的牛数恰好相差 K (1 ≤ K ≤ 100...原创 2019-03-09 19:07:45 · 3156 阅读 · 2 评论 -
神奇的幻方(模拟)
幻方是一个很神奇的 N×N 矩阵,它的每行、每列与对角线,加起来的数字和都是相同的。我们可以通过以下方法构建一个幻方。(阶数为奇数)第一个数字写在第一行的中间下一个数字,都写在上一个数字的右上方:如果该数字在第一行,则下一个数字写在最后一行,列数为该数字的右一列如果该数字在最后一列,则下一个数字写在第一列,行数为该数字的上一行如果该数字在右上角,或者该数字的右上方已有数字,则下一个数字写...原创 2019-03-06 22:37:28 · 1230 阅读 · 0 评论 -
递归实现指数型枚举(递归)
从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3引例:如...原创 2019-03-03 17:55:44 · 477 阅读 · 0 评论 -
找质数(枚举)
一天蒜头君猜想,是不是所有的偶数(除了 2),都可以用两个质数相加得到呢?于是聪明的蒜头君就找你来验证了。输入格式第一行输入一个整数 t 表示测试组数。接下来 t 行,每行一个整数 n。输入格式34820输出格式输出两个整数,因为答案可能有多个,所有要求输出的这两个整数是所有答案中字典序最小的。2 23 53 17解题思路1(暴力 运行超时)#include ...原创 2019-03-03 16:32:07 · 1102 阅读 · 0 评论 -
特殊回文数(枚举)
问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。输入格式 输入一行,包含一个正整数n。输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。样例输入52样例输出899998989989998899数据规模和约定 1<=n<=54。#...原创 2019-03-03 15:57:36 · 186 阅读 · 0 评论 -
查找特定的值(枚举)
在一个序列(下标从 1 开始)中查找一个给定的值,输出第一次出现的位置。输入格式第一行包含一个正整数 n,表示序列中元素个数。1 ≤ n ≤ 10000。第二行包含 n 个整数,依次给出序列的每个元素,相邻两个整数之间用单个空格隔开。元素的绝对值不超过 10000。第三行包含一个整数 x,为需要查找的特定值。x 的绝对值不超过10000。输出格式若序列中存在 x,输出 x 第一次出现的...原创 2019-03-03 15:33:02 · 1312 阅读 · 0 评论 -
回文子串(枚举)
给定一个字符串,输出所有长度至少为 22 的回文子串。回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccdeedccc都是回文字符串。输入格式一个字符串,由字母或数字组成。长度 500 以内。输出格式输出所有的回文子串,每个子串一行。子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。输出时每行末尾的多余空格,不影响答案正确性样例输入12332...原创 2019-03-03 15:20:48 · 953 阅读 · 1 评论 -
Minecraft(枚举)
Minecraft 是一个几乎无所不能的沙盒游戏,玩家可以利用游戏内的各种资源进行创造,搭建自己的世界。在Minecraft 中,基本的建筑元素是边长为 1个单位的立方体,小蒜想用 N 个这种小立方体搭建一个长方体,并用他珍藏已久的贴纸对其进行装饰。如果一张贴纸可以贴满小立方体的一个面。那么,他需要用掉多少张贴纸呢?输入格式一个整数 N,表示小明所拥有的小立方体的个数。N 不会超过 1000...原创 2019-03-08 15:28:58 · 948 阅读 · 0 评论 -
个位数统计(搜索)
给定一个k位整数N = dk-110k-1 + … + d1101 + d0 (0&lt;=di&lt;=9, i=0,…,k-1, dk-1&gt;0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。输入格式:每个输入包含1个测试用例,即一个不超过1000位的正整数N。输出格式:对N中每一种不同的个位数字,以D:M的格式在一行...原创 2018-12-30 13:08:00 · 323 阅读 · 0 评论 -
赶时间(模拟)
花椰妹要去约会了!因为花椰妹已经是老女人了,所以必然需要打扮一番,抹点粉啊,涂涂口红啦,画点眼影啊……许久过后,花椰妹已然变成美女了!!花椰妹看了下时间,已经不早了,可是桌面上还有好多好多瓶瓶罐罐没用,这怎么行!花椰妹现在想知道,她还有多少时间可以用于化妆?输入格式读入两个标准格式的时间,有小时,有分钟,有秒,格式如:hⓂ️s,即 时:分:秒。输出格式输出这两个时间的差(秒为单位)。...原创 2019-03-05 11:17:38 · 676 阅读 · 0 评论 -
全排列问题(递归)
输出自然数 1到 n 所有不重复的排列,即 n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。输入格式一个整数 n (1≤n≤9)。输出格式由 1∼n 组成的所有不重复的数字序列,每行一个序列。每个数字保留 5 个常宽。输出时每行末尾的多余空格,不影响答案正确性样例输入3样例输出 1 2 3 1 3 2 2 1 ...原创 2019-03-03 18:01:22 · 2345 阅读 · 1 评论 -
递归实现组合型枚举(递归)
从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。输入格式两个整数 n,m ,在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如1 3 5 7排在1 3 6 8前面)。数据范围n&gt;0 ,0≤m≤n ,n+(n...原创 2019-03-03 18:23:36 · 1287 阅读 · 0 评论 -
递归实现排列型枚举(递归)
把 1~n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。输入格式一个整数n。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。数据范围1 ≤ n ≤ 9输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1解题思...原创 2019-03-03 18:42:07 · 1469 阅读 · 0 评论 -
那些N位数(递归)
一个 n 位数,只由 1,2,3,4,⋯,p 这几个数字组成。 请编写程序输出这些n位数,先小后大,每行一个。输入格式两个整数 n,p(n ≤ 5,p ≤ 5)。输出格式若干行数。输出时每行末尾的多余空格,不影响答案正确性样例输入4 5样例输出11111112111311141115112111221123112411251131113211331134...原创 2019-03-09 16:57:13 · 2011 阅读 · 0 评论 -
放苹果(递归)
小蒜想知道把 M 个同样的苹果放在 N 个同样的盘子里,允许有的盘子空着不放,共有多少种不同的分法?(用 K 表示)5,1,1 和 1,5,1 是同一种分法。输入格式第一行是测试数据的数目 t(0 ≤ t ≤ 20)。以下每行均包含两个整数 M 和 N,以空格分开。1 ≤ M,N ≤ 10。输出格式对输入的每组数据 M 和 N,用一行输出相应的 K。输出时每行末尾的多余空格,不影响答案...原创 2019-03-09 15:29:35 · 926 阅读 · 0 评论 -
分解因数(递归)
给出一个正整数 aa,要求分解成若干个正整数的乘积,即 a1 × a2 × a3 ×…× an,并且 1 &lt; a1≤ a2 ≤ a3 ≤…≤ an,问这样的分解的方案种数有多少。注意到 a=a 也是一种分解。输入格式第 1 行是测试数据的组数 n(1≤n≤10),后面跟着 n 行输入。每组测试数据占 1 行,包括一个正整数 a( 1 &lt; a &lt; 32768)。输出格式n...原创 2019-03-09 12:39:18 · 5481 阅读 · 0 评论 -
判断元素是否存在(递归)
蒜头君有一个集合 M 是这样生成的:(1) 已知 k 是集合 M 的元素;(2) 如果 y 是 M 的元素,那么,2y+1 和 3y+1 都是 M 的元素;(3) 除了上述二种情况外,没有别的数能够成为 M 的一个元素。问题:给定 k 和 x(0 ≤ k ≤ x ≤10^5),请判断 x 是否是 M 的元素。如果是,则输出"YES",否则,输出"NO"。输入格式输入整数 k 和 x...原创 2019-03-09 10:31:16 · 1534 阅读 · 0 评论 -
因子问题(枚举)
蒜头君给了两个正整数 N、M,求一个最小的正整数 a,使得 a 和(M−a) 都是 N 的因子(包括负因子)。输入格式包括两个整数 NN、MM。NN 不超过 1,000,000。输出格式输出一个整数 a,表示结果。如果某个案例中满足条件的正整数不存在,则在对应行输出 -1。输出时每行末尾的多余空格,不影响答案正确性样例输入35 10样例输出5解题思路:题目中找一个最小的值,所...原创 2019-03-09 09:46:05 · 2192 阅读 · 5 评论 -
质数的和与积(枚举)
两个质数的和是 S,它们的积最大是多少?输入格式一个不大于 10000 的正整数S,为两个质数的和。输出格式一个整数,为两个质数的最大乘积。数据保证有解。输出时每行末尾的多余空格,不影响答案正确性样例输入50样例输出589解题思路:#include <iostream>#include <vector>#include <cstring>...原创 2019-03-08 22:30:20 · 3594 阅读 · 3 评论 -
质数的和与积(枚举)
两个质数的和是 S,它们的积最大是多少?输入格式一个不大于 10000 的正整数S,为两个质数的和。输出格式一个整数,为两个质数的最大乘积。数据保证有解。输出时每行末尾的多余空格,不影响答案正确性样例输入50样例输出589解题思路1:通过了19个知识点 还有最后一个测试点 没有过去 不知道哪儿有错误 ,如果有大佬 看清哪儿代码有问题 还望告知#include &lt;io...原创 2019-03-08 21:30:06 · 1364 阅读 · 0 评论