苹果

放苹果

血红的双手。 提交于 2020-02-10 12:42:56
题目描述: 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 Input 第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。 Output 对输入的每组数据M和N,用一行输出相应的K。 Sample Input 1 7 3 Sample Output 8 这题貌似用dfs做的,但我想不到。。发现能用动规做,例如,d[1][n]对于任意1<=n<=10都有d[1][n] = 1,一个盘子当然只有一种摆法。 d[2][n] = n / 2 + 1,因为1,5和5,1是同一种摆法,所以要除个2,然后由于有(0, n)这种摆法,所以要+1。 而当盘子数大于2时,就有递推公式了,见AC代码。 #include <cstdio> #include <cstring> int main() { int a[15][15]; for (int i = 1; i <= 10; ++i) for (int j = 0; j <= 10; ++j) { //当j等于0时,相当于0个苹果放进i个盘子有多少摆法,为了用动规,我定义a[i][0] = 1。 if(!j) a[i][j] = 1; else if(i == 1) a[i][j] = 1;

python--列表

两盒软妹~` 提交于 2020-02-10 04:59:06
Python基础-列表 为什么需要列表: 列表相当于一个容器。可以把一系列相关的值放在这个容器中进行存储。比如现在要存储水果的种类,那么如果通过之前的方式,一种水果用一个变量存储,那么代码将变得非常糟糕。正确的存储方式应该是定义一个列表类型的变量,然后把所有这些水果的名字存储到这个列表中。在其他编程语言中,叫做数组。 列表介绍: 如何定义列表:使用左右两个中括号的形式。 fruits = ['apple','banana','orange'] # 列表中的值,可以为不同的数据类型 test_list = ['a',1] 如何取列表中的值:列表支持下标操作,跟字符串的下标操作是一样的。 fruits = ['apple','banana','orange'] a = fruits[0] b = fruits[1] c = fruits[2] 列表的遍历:使用 for 和 while 循环都可以遍历。但一般推荐使用 for 循环。 for 循环版本的: fruits = ['apple','banana','orange'] for fruit in fruits: print(fruit) while 循环版本的: fruits = ['apple','banana','orange'] index = 0 length = len(fruits) while index <

java设计模式-适配器模式

て烟熏妆下的殇ゞ 提交于 2020-02-10 04:00:05
概念: 适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在。 分类: 1 类适配器 2 对象适配器 3 接口适配器 一 类适配器: 通过继承来实现适配器功能, 当我们要访问的接口A中没有我们想要的方法 ,却在另一个接口B中发现了合适的方法,我们又不能改变访问接口A,在这种情况下,我们可以定义一个适配器p来进行中转,这个适配器p要实现我们访问的接口A,这样我们就能继续访问当前接口A中的方法(虽然它目前不是我们的菜),然后再继承接口B的实现类BB,这样我们可以在适配器P中访问接口B的方法了,这时我们在适配器P中的接口A方法中直接引用BB中的合适方法,这样就完成了一个简单的类适配器。   详见下方实例:我们以apple与android的充电线转接为例,让安卓充电线可以给苹果手机充电 安卓接口 //安卓接口 public interface Android { void isAndroid(); } 苹果接口 //苹果接口 public interface Apple { void isApple(); } 苹果接口实现类 //苹果接口实现类 public class ApplerUser implements Apple { //实现苹果接口 void isApple() { System.out

CCF201909-1小明种苹果

主宰稳场 提交于 2020-02-09 22:54:59
解题思路:定义一个二维数组来存放输入的信息,第一列用来存放所有果树的初始值,然后遍历数组。具体思路见代码注释。 第一遍提交得了80分,看了半天才明白了原因,快被自己蠢死...... 定义数组应该为a[1000][1001],第一遍没有思考直接看了问题规模就定义成了a[1000][1000]。 有一列是专门用来放初始的果子数的呀啊喂......... #include<iostream> #include<cmath> using namespace std; int a[1000][1001]; int main() { int m, n; //n为苹果棵树,m为疏果轮数 cin >> n >> m; int totalnum = 0; //所有果树的总果子数 int sumshu = 0; //每棵树总的疏果数 int max_shuguo = 0; //最大数的疏果数 int max_s = 1; //最大疏果树的编号 for (int i = 0; i < n; i++) { sumshu = 0; for (int j = 0; j <= m; j++) { cin >> a[i][j]; } } for (int i = 0; i < n; i++) { sumshu = 0; for (int j = 1; j <= m; j++) { a[i][0] = a[i][0

[转帖]MacOS和Linux内核的区别

牧云@^-^@ 提交于 2020-02-09 08:26:05
MacOS和Linux内核的区别 https://www.jianshu.com/p/5c8453af4e71 导读有些人可能认为MacOS和Linux内核有相似之处,因为它们可以处理类似的命令和类似的软件。甚至有人认为苹果的MacOS是基于linux的。事实上,这两个内核的历史和特性是非常不同的。今天,我们来看看MacOS和Linux内核的区别。 MacOS内核的历史 我们将从MacOS内核的历史开始。1985年,由于与首席执行官John Sculley和苹果董事会发生争执,Steve Jobs离开了苹果。然后,他创建了一家名为Next.Jobs的新电脑公司。乔布斯希望尽快推出一台新电脑(带有新操作系统)。为了节省时间,下一个团队使用了Carnegie Mellon的Mach内核及其部件。创建NextStep操作系统的BSD代码库。 NeXT从未在财务上取得成功,部分原因是乔布斯习惯于花钱,就像他还在苹果一样。与此同时,苹果曾多次尝试升级操作系统,甚至与ibm合作。1997年,苹果以4.29亿美元收购了Next。作为交易的一部分,史蒂夫·乔布斯(Steve Jobs)重返苹果,NextStep成为MacOS和iOS的基础。 Linux内核的历史 与MacOS内核不同的是,linux并不是作为商业活动的一部分而创建的,而是由芬兰计算机科学专业的linus

Java逻辑思维训练题

元气小坏坏 提交于 2020-02-09 03:26:59
两柱香问题 题目 : 有两柱不均匀的香,每柱香燃烧完需要1个小时,问:怎样用两柱香切出一个15分钟的时间段?这个题的重点就是怎么切。 答案 :将甲香的一头点着,将乙香的两头点着,当乙香燃烧完时,说明已经过了半个小时,同时也说明甲香也正好燃烧了一半,此时,将甲香的另一头点着,从此时起到甲香完全烧完,正好15分钟。 灯管问题 题目 :在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分那个开关控制那一盏灯? 答案 :打开一盏灯10分钟,关掉,打开第二盏,进去看看哪盏亮,摸摸哪盏热,热的是第一个打开的开关开的,亮的是第二个开关开的,另一个就是第三个。 两位盲人问题 题目 :他们都各自买了两对黑袜和两对白袜,八对袜了的布质、大小完全相同,而每对袜了都有一张商标纸连着。两位盲人不小心将八对袜了混在一起。 他们每人怎样才能取回黑袜和白袜各两对呢? 答案 :每一对分开,一人拿一只,因为袜子不分左右脚的; 果冻问题 题目 :你有一桶果冻,其中有黄色,绿色,红色三种,闭上眼睛,同时抓取两个果冻。抓取多少个就可以确定你肯定有两个同一颜色的果冻? 答案 :2次4个! 喝啤酒问题 题目 :假如每3个空啤酒瓶可以换一瓶啤酒,某人买了10瓶啤酒,那么他最多可以喝到多少瓶啤酒? 答案 :喝完10瓶后用9个空瓶换来3瓶啤酒(喝完后有4个空瓶)喝完这三瓶又可以换到1瓶啤酒

产品经理聊产品--mac book pro 2018 初体验

孤人 提交于 2020-02-09 00:17:47
  工作前几年,使用电脑,基本上都是微软的操作系统,自从从大厂出来之后,才逐渐熟悉使用linux,到现在基本上都是基本上一个月windows平台基本不需要开机就可以,可以说基本上被ubuntu的简洁和实用性吸引住了,但是,用了久之后,逐渐发现了ubuntu的一些缺点,也不算是ubuntu的缺点吧,主要是没有大的笔记本厂商把ubuntu作为默认系统,我自己安装的,无论何如都会发现硬件环境和软件配合不好的地方。举个例子,就拿电源管理来说,ubuntu很多时候,是无法完美的控制电脑的,像我这样拿着笔记本,一个月不想关机的同学来说,简直是一种折磨。前段时间,受一位好友的蛊惑,说是苹果笔记本是怎么怎么的适合软件开发,怎么是对程序员友好。我安奈不住好奇,就经常不自主的关注一些苹果笔记本方面的信息。也许苹果产品的确有它让人着魔的的特质吧。越看越是想买,终于在2018年的双十一,剁手了一把,把心仪已久的苹果笔记本抢到手了。抢到了那款15寸深灰色的六核笔记本,内心是着实激动了好久,同时,也为自己第一次花那么多的钱买一个笔记本做自我安慰,能大大提升我的工作效率,可以N年不用换电脑了。   双十一的快递是比较平时慢的,我再等待的煎熬中,几天后才拿到真机。打开盒子,包装十分的简洁,一个笔记本,除此之外就是一个type-c电源。两个type-c接口都可以充电,和我刚买不到一年的thinkpad相比

动态规划专题--------计蒜客--T1208--放苹果

喜欢而已 提交于 2020-02-08 22:19:52
题目链接: https://nanti.jisuanke.com/t/T1208 题目描述 小蒜想知道把 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 这题可以用递归的方法写,也可以用动态规划的思路写。 递归方法: 递归超详解 (个人认为递归的方法比动态规划好理解一些) 动态规划思路: (i,j)代表i个苹果放j个盘子里 要解动态规划的题,最关键的就是找到动态转移方程,要找到动态转移方程就是要找到递推式。这题可以对有无空盘子进行讨论: 1.有空盘子时,(i,j)=(i,j-1),就像5个苹果放3个盘子里,如果有空盘子,这个问题就等价于5个苹果放2个盘子里 2.无空盘子是,(i,j)=(i-1,j),这里因为每个盘子里都有苹果,所以问题每个盘子可以减去一个苹果,就像5个苹果放3个盘子里,因为没有空盘子,所以每个盘子里面至少有一个苹果,即两个苹果放盘子里。 代码: #include

抽象工厂模式

六月ゝ 毕业季﹏ 提交于 2020-02-07 19:24:31
一 、引入   前面我们讨论了“简单工厂模式”和“工厂方法模式”,这次我们来学习设计模式中最后的一种工厂模式——抽象工厂模式。   抽象工厂模式其实是工厂方法模式的一种扩展,应用抽象工厂模式可以创建一系列的产品(产品族),而不是像工厂方法模式中的只能创建一种产品。先我们来看一下抽象工厂模式的标准定义:   抽象工厂模式定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。   官方的定义一般都不易理解,我们就来模拟一个场景来说明一下这其中的关系吧。   富士康公司给两个品牌作代工产品:苹果和三星。众所周知,这两个品牌都有手机和平板产品,由于生产工艺的不同,富士康开设了两条生产线,一条线只生产手机,另一条线只生产平板,总负责人是车间主任老王。一个卖苹果设备的采购商找到老王,说先给我来1台苹果的iPad, 老王转身到生产平板的生产线上的操作台,往电脑里输入“苹果牌”三个字,很快1台iPad生产出来了。采购商又说,再给我来1台苹果的iPhone吧,老王又转身到手机的生产线,在电脑里输入“苹果牌”,很快一台iPhone又造好了。   看出来了吗?这里有两种抽象的产品(苹果产品和三星产品),而每种抽象的产品都有两种产品角色(手机和平板电脑),这样就要建立两种工厂(手机工厂和平板工厂)分别负责不同产品角色的实例化。 老王就是工厂的总接口,他负责帮你找到正确的生产工厂

多态性----类型强制转换

☆樱花仙子☆ 提交于 2020-02-07 08:05:54
强制类型转换的只是引用类型,真正指向的对象是不会发生变化的,可以将引用看作看待对象的角度,层次。这就像可以将红富士看作苹果,也可以看作水果一样,看待的角度、层次虽然变了,但苹果还是那个苹果。 来源: https://www.cnblogs.com/chr1978/p/12271844.html