【备战蓝桥杯青少组】第三天 放苹果

2024-08-20 17:36

本文主要是介绍【备战蓝桥杯青少组】第三天 放苹果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OpenJudge - 666:放苹果

描述

把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

输入

第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。

输出

对输入的每组数据M和N,用一行输出相应的K。

样例输入

1
7 3

样例输出

8

思路

经典的递归题,类似的还有高位到低位降序的n位数。
为了避免重复,假设每次放的新盘子的苹果数,不能超过已放过的每个盘子里的苹果数

代码

简化版

def place(m,n,pre=[]):k=m if len(pre)==0 else min(m,pre[-1]) # k 为最大可放数# 不可能的情况if (n==0):				return 0 	# 没有盘子,就没有放法if (n==1 and m>k):		return 0	# 苹果太多放不下if (m>n*k):				return 0	# 更多的放不下# 唯一解的情况if (n==1 and m==k):		return 1if (m==0):				return 1if (k==1 and m<=n):		return 1if (k>=1 and m==1):		return 1# 其他情况return sum([place(m-i,n-1,pre+[i]) for i in range(k+1)]) # pre为之前的盘子,i为新放的盘子的苹果数
cnt=int(input()); data=[]
for i in range(cnt): data.append(list(map(int,input().split())))
for i in range(cnt): print(place(data[i][0],data[i][1]))

完整版

DEBUG=Falsedef place(m,n,pre=[]):k=m if len(pre)==0 else min(m,pre[-1]) # k 为最大可放数# 不可能的情况if (n==0):				return 0 	# 没有盘子,就没有放法if (n==1 and m>k):		return 0	# 苹果太多放不下if (m>n*k):				return 0	# 更多的放不下# 唯一解的情况if (n==1 and m==k):ans.append(pre+[m]);if DEBUG: print(ans[-1]);return 1if (m==0):ans.append(pre+[0]*n); if DEBUG: print(ans[-1]);return 1if (k==1 and m<=n):ans.append(pre+[1]*m+[0]*(n-m)); if DEBUG: print(ans[-1]);return 1if (m==1 and k>=1):ans.append(pre+[1]+[0]*(n-1)); if DEBUG: print(ans[-1]);return 1# 其他情况return sum([place(m-i,n-1,pre+[i]) for i in range(k+1)]) # pre为之前的盘子,i为新放的盘子的苹果数
cnt=int(input())
data=[]
for i in range(cnt):data.append(list(map(int,input().split())))
for i in range(cnt):ans=[]print(data[i],"的放法共有:",place(data[i][0],data[i][1]))if(not DEBUG):if(len(ans)>10):print(ans[:10],"...")else:print(ans)

这篇关于【备战蓝桥杯青少组】第三天 放苹果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090725

相关文章

Java基础回顾系列-第三天-Lambda表达式

Java基础回顾系列-第三天-Lambda表达式 Lambda表达式方法引用引用静态方法引用实例化对象的方法引用特定类型的方法引用构造方法 内建函数式接口Function基础接口DoubleToIntFunction 类型转换接口Consumer消费型函数式接口Supplier供给型函数式接口Predicate断言型函数式接口 Stream API 该篇博文需重点了解:内建函数式

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

《黑暗之魂2:原罪学者》是什么类型的游戏 《黑暗之魂》可以在苹果Mac电脑上玩吗?

在宏大的世界观游戏中,《黑暗之魂2:原罪学者》脱颖而出,以其探索性和挑战性征服了全球玩家的心灵。下面我们来看看《黑暗之魂2:原罪学者》是什么类型的游戏,《黑暗之魂2:原罪学者》可以在苹果电脑玩吗的相关内容。 一、《黑暗之魂2:原罪学者》是什么类型的游戏 《黑暗之魂2:原罪学者》作为《黑暗之魂2》的增强版和重制版,是一款FromSoftware制作、BANDAI NAMCO和FromSoft

【C++题解】1272. 郭远摘苹果

欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》 问题:1272. 郭远摘苹果 类型:二维数组 题目描述: 郭远有一天走到了一片苹果林,里面每颗树上都结有不同数目的苹果,郭远身上只能拿同一棵树上的苹果,他每到一棵果树前都会把自己身上的苹果扔掉并摘下他所在树上的苹果并带走(假设郭远会走过每一棵苹果树),问在郭远摘苹果的整个过程中,他身上携带的最多苹果数与最小苹果数的差是多少?

硬刚苹果还得是华为

文|琥珀食酒社 作者 | 璇子 牛皮啊 华为发三折叠不意外 意外的是 这各种翻转简直颠覆想象 市面上没见过这么能“翻转”的? 要不怎么说硬刚苹果 还得看华为 就跟你同天怎么了? 拼创新、拼技术、拼热度 你就说哪比你差吧? iPhone 16做的改进 很多手机都能做,可能还早做了 但Mate XT三折叠 别人想做也做不了 不说引领时代啊 至少在折叠机领域又开

苹果账号登录后端验证两种方式 python2

import jsonimport jwt import requests import json import base64def decode_jwt(jwt_token):try:header,payload,sign = jwt_token.split('.')except:return {},{},""header = json.loads(base64.urlsafe_b6

找不同-第15届蓝桥省赛Scratch初级组真题第4题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第183讲。 如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,查阅教程更方便。 第15届蓝桥杯省赛已于2024年8月24日落下帷幕,编程题一共有5题,分别如下: 猪八戒落地 游乐场 画西瓜 找不同 消

【蓝桥杯嵌入式(一)程序框架和调度器】

蓝桥杯嵌入式(一)程序框架和调度器 序、代码命名规则零、STM32和8051⼀、软件及环境安装⼆、⼯程框架搭建1.时钟配置2、SYS配置3、⼯程配置4、NVIC配置5.、Keil配置 三、系统初始化四、任务调度器 链接: 视频出处 序、代码命名规则 以下是一些常见的举例 零、STM32和8051 链接: 8位和32位单片机最本质区别 ⼀、软件及环境安装

AI超周期现状 - NVIDIA、苹果以及人工智能的整体需求

于2024年6月6日在中国杭州拍摄的英伟达和苹果的标志。到6月5日,东部时间,英伟达的市值超过3万亿美元,正式超越苹果的市值,成为全球市值第二大的科技巨头。值得注意的是,短短3个多月时间里,英伟达的市值就从2万亿美元飙升至3万亿美元。(由Costfoto摄于NurPhoto,经盖蒂图片社批准) 在九月初经历了几天的市场动荡后,又有一波关于人工智能超级周期是否已结束的讨论。如果没有结束,那接下来会