橙白oj 2017级《算法分析与设计》-练习02

注:A题我以为给新生出的,应该贼简单,是按顺序消灭,卡了十几分钟,成了最后一个ac的题,真是菜的真实。

 

Problem A:

Description

白细胞是人体与疾病斗争的“卫士”。当病菌侵入人体体内时,白细胞能通过变形而穿过毛细血管壁,集中到病菌入侵部位,将病菌包围﹑吞噬。如果体内的白细胞的数量高于正常值,很可能是身体有了炎症。

 

现在,白细胞遇到了一群杂菌,它有n(0<n<1000)点体力,现在有m个杂菌,每个杂菌需要ai点体力去消灭(0<ai<1000)。请问,白细胞最多能消灭多少个杂菌呢?

Input

第一行有两个数n和m,分别代表白细胞的体力和杂菌数量 第二行有m个数,a0,a1,...a(m-1),分别代表消灭其需要的体力。

Output

最大能消灭多少个杂菌。

Sample Input

6 3
1 2 3

Sample Output

3

解析:模拟消灭杂菌的过程:排序,先消灭较小的数字。

import java.util.Scanner;
import java.util.Arrays;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n=sc.nextInt();int m=sc.nextInt();int[] arr=new int[m];for(int i=0;i<m;i++)arr[i]=sc.nextInt();Arrays.sort(arr);int ak=0;while(ak<m && n>=arr[ak]) {n-=arr[ak];ak++;}System.out.println(ak);}
}

 

Problem B:

Description

红细胞也称红血球,在常规化验英文常缩写成RBC,是血液中数量最多的一种血细胞,同时也是脊椎动物体内通过血液运送氧气的最主要的媒介,同时还具有免疫功能。哺乳动物成熟的红细胞是无核的,这意味着它们失去了DNA。红细胞也没有线粒体,它们通过分解葡萄糖释放能量。运输氧气,也运输一部分二氧化碳。运输二氧化碳时呈暗紫色,运输氧气时呈鲜红色

红细胞会生成于骨髓之内,开始在白细胞内生长。红细胞老化后,易导致血管堵塞,所以会自动返回骨髓深处,由白细胞负责销毁;或是在经过肝脏时,被枯否细胞分解成为胆汁。

32767号红细胞正在把氧气运送到目的地,她面前是一层层的血管网,到达目的地之前一共有很多层血管网,对于每一层血管网,红细胞都可以有很多条路径通过,从而到达层与层之间的节点,最终到达终点。

32767号红细胞是个路痴,请帮她计算出一共有多少条路径。

Input

第一行输入一个整数n(0<n<20)代表血管层数。

第二行输入n个整数ai,代表每层一共有多少条路径。(0<ai<1000)。

Output

一个整数,代表路径的总数

且保证答案在long long范围之内(py选手不用管)

Sample Input

5 10 20 30 40 50

Sample Output

12000000

解析:经过分析,数字相乘即可。

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n=sc.nextInt();long ak=1;for(int i=0;i<n;i++)ak*=sc.nextInt();System.out.println(ak);}
}

Problem C:

Description

细胞毒性T细胞(cytotoxic T cell,Tc或CTL),也称杀伤性T细胞。是一种监控并在需要时杀死靶细胞的细胞。记忆细胞毒性T细胞对带抗原的靶细胞有记忆功能,由细胞毒性T细胞分化而成。一旦发现带特异性抗原的靶细胞,会刺激效应细胞毒性T细胞产生效应细胞毒性T细胞,消灭被感染的细胞或癌细胞。

癌细胞出现了!杀手T细胞出动!

杀手T细胞需要迅速到达癌细胞的位置,他离癌细胞有n米的距离,它每次可以选择走1米或者跑2米,问,杀手T细胞有多少种方式到达癌细胞的位置。

例如:杀手T细胞离癌细胞3米,他可以每次都走1米,或者第一次走1米,第二次跑2米,也可以第一次跑2米,第二次走1米,一共三种方式到达癌细胞的位置。

Input

输入包含若干行,每行包含一个正整数n(1<=n<=30),n代表杀手T细胞离癌细胞的位置。

Output

一个正整数,代表杀手T细胞到达癌细胞的方法数目。

Sample Input

5
8
10

Sample Output

8
34
89

解析:

杀手T细胞离癌细胞1米,有一种方法。

杀手T细胞离癌细胞2米,可以分两次或者一次,有两种方法。

之后,因为第n米只可能是通过n-1或n-2跳来的,所以到达第n米的方法数等于ak[n]=ak[n-1]+ak[n-2],按顺序求出答案即可。

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);long[] ak=new long[35];while(sc.hasNextInt()) {int n=sc.nextInt();ak[1]=1;ak[2]=2;for(int i=3;i<=n;i++)ak[i]=ak[i-1]+ak[i-2];System.out.println(ak[n]);}}
}

Problem D: 水仙花数

Description

请判断一个数是不是水仙花数。
其中水仙花数定义各个位数立方和等于它本身的三位数。

Input

有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000) 输入0表示程序输入结束。

Output

如果n是水仙花数就输出Yes 否则输出No

Sample Input

153
154
0


Sample Output

Yes
No

解析:求出各个位数的立方和,和本身作比较即可(小号交的循环求,怕查重,手打三个位数)

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(true) {int n=sc.nextInt();if(n==0)break;int a=n/100;int b=(n/10)%10;int c=n%10;if(a*a*a+b*b*b+c*c*c==n) {System.out.println("Yes");}else {System.out.println("No");}}}
}

Problem E: 合并

Description

现在给你两堆数,每个堆中有n个数。你的任务是把这两个堆并成一个堆,并把合并后的堆中的元素按从小到大的顺序输出。例如当n=5时,第一个堆是{1,2,3,4,5},第二个堆是{5,6,7,8,9},那么你就应该输出1 2 3 4 5 6 7 8 9。(一堆中可能有重复的数)

Input

第一行输入一个整数T(1≤T≤100),表示有T组测试数据。 每组数据先输入一个整数N(1≤N≤10),表示每个堆中元素的个数。然后输入N个整数A(0≤A<100),最后输入N个整数B(0≤B<100)。

Output

把合并后的堆中的元素按从小到大的顺序输出。

Sample Input

2
5
1 2 3 4 5
5 6 7 8 9
6
18 88 43 5 10 78 
94 99 37 92 3 52 

Sample Output

1 2 3 4 5 6 7 8 9 
3 5 10 18 37 43 52 78 88 92 94 99 

解析:合并两组数并且去重按顺序输出,由题意得,数字均小于100,范围较小,考虑采用桶思想,数组记录对应下标的数字出没出现过即可。

另:注意输出格式,找出第一个数字,不打印空格。

之后的数字,前面打印空格。

import java.util.Arrays;
import java.util.Scanner;
public class main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n=sc.nextInt();while(n-->0) {int[] ak=new int[100];int m=sc.nextInt();for(int i=0;i<2*m;i++)ak[sc.nextInt()]=1;int i;for(i=0;i<100;i++) {if(ak[i]==1) {System.out.print(i);break;}}for(i++;i<100;i++)if(ak[i]==1)System.out.print(" "+i);System.out.println();}}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python(9)-变量、input函数

变量、input函数1.变量的定义(不可变对象)2.变量的类型3.变量的命名规范4. 不同类型的数据计算5.类型转换函数6.input()7.Tips程序是用来处理数据的&#xff0c;而变量是用来存储数据的。 关于函数&#xff0c;是一个提前准备好的代码&#xff1b;可以直接使用&#xff0c;不用…

推荐算法--总结(08)

一、推荐系统结构二、推荐引擎算法&#xff08;Algorithm&#xff09;1、协同过滤推荐算法1.1 关系矩阵与矩阵计算1.1.1 用户与用户&#xff08;U-U矩阵&#xff09;1.1.2 物品与物品&#xff08;V-V矩阵&#xff09;1.1.3 用户与物品&#xff08;U-V矩阵&#xff09;1.1.4 奇异…

算法总结-1算法入门

1.0 前言 算法&#xff08;Algorithm&#xff09;是指解题方案的准确而完整的描述&#xff0c;是一系列解决问题的清晰指令&#xff0c;算法代表着用系统的方法描述解决问题的策略机制。也就是说&#xff0c;能够对一定规范的输入&#xff0c;在有限时间内获得所要求的输出。 …

FM系列算法解读(FM+FFM+DeepFM)

在计算广告中&#xff0c;CTR是非常重要的一环。对于特征组合来说&#xff0c;业界通用的做法主要有两大类&#xff1a;FM系列和Tree系列。这里我们来介绍一下FM系列。   在传统的线性模型中&#xff0c;每个特征都是独立的&#xff0c;如果需要考虑特征与特征之间的相互作用…

二叉树层序遍历

层序遍历序列为&#xff1a;ABCDEFG 思路&#xff1a;栈是先进后出的数据结构&#xff0c;而队列是先进先出的数据结构。 我们层序遍历&#xff0c;很明显&#xff0c;先遇到的节点先打印&#xff0c;不同于前中后序遍历&#xff0c;我们采用队列结构。 具体执行过程如下&…

深度学习(01)-- 基础学习

文章目录目录1. 深度学习基础1.1 深度学习总览1.2 深度网络训练过程1.2.1 传统神经网络的训练方法为什么不能用在深度神经网络1.2.2 deep learning训练过程1.3 数学知识&#xff1a;2. 九种深度学习模型2.1 受限玻尔兹曼机RBM2.2 自编码器AE&#xff08;降维&#xff09;2.3 深…

MachineLearning(1)-激活函数sigmoid、损失函数MSE、CrossEntropyLoss

损失函数1.激活函数2.损失函数2.1均方误差损失函数2.2交叉熵损失函数2.3 NLLLoss()2.4 BCELoss()1.激活函数 全连接网络又叫多层感知器&#xff0c;多层感知器的基本单元神经元是模仿人类神经元兴奋与抑制机制&#xff0c;对其输入进行加权求和&#xff0c;若超过某一阈值则该…

Java的IO总结

非流式文件类--File类 从定义看&#xff0c;File类是Object的直接子类&#xff0c;同时它继承了Comparable接口可以进行数组的排序。 File类的操作包括文件的创建、删除、重命名、得到路径、创建时间等&#xff0c;以下是文件操作常用的函数。 File类是对文件系统中文件以及文…

深度学习(02)-- ANN学习

文章目录目录1.神经网络知识概览1.1深度学习顶会1.2相关比赛1.3神经网络知识概览1.4神经网络编程一般实现过程2.简单神经网络ANN2.1 数据集&#xff1a;2.2 网络结构&#xff1a;2.3 代码实现2.3.1 读取数据&#xff0c;并做处理2.3.2 构建网络结构2.3.3 训练网络目录 1.神经网…

python(11)-if语句,断言assert

分支语句if1.if基本语法2 if语句的嵌套3 比较运算符号4 逻辑运算符&#xff1a;5 整数随机数初应用6 tip7.断言assert1.if基本语法 if语句开发中的应用场景&#xff1a;如果条件成立做一件事情&#xff0c;如果条件不成立做另外一件事情。有了if语句&#xff0c;程序有了分支.…

深度学习(03)-- CNN学习

文章目录目录1.CNN学习2.Keras深度学习框架目录 1.CNN学习 卷积神经网络CNN总结 从神经网络到卷积神经网络&#xff08;CNN&#xff09;我们知道神经网络的结构是这样的&#xff1a; 那卷积神经网络跟它是什么关系呢&#xff1f;其实卷积神经网络依旧是层级网络&#xff0c;…

PaperNotes(1)-Modeling the World from Internet Photo Collections

从网络图片集对世界进行建模AbstractIntroduction2 Previous Work2.1特征匹配2.2 稀疏重建2.3 基于图像建模2.4 基于图像的渲染2.5 图像浏览&#xff0c;检索和注释3 Overview概述4 Reconstructing Cameras and Sparse Geometry&#xff08;相机标定与稀疏重建&#xff09;4.1K…

深度学习(04)-- 典型CNN结构(LeNet5 ,AlexNet)

LeNet5 LeNet5可以说是最早的卷积神经网络了&#xff0c;它发表于1998年&#xff0c;论文原文Gradient-Based Learning Applied to Doucment Recognition作者是Yann Le Cun等。下面对LeNet5网络架构进行简单的说明&#xff0c;有兴趣的同学可以去参考原文&#xff0c;论文原文…

CNN的几种经典模型

本文主要介绍一下CNN的几种经典模型比较。之前自己也用过AlexNet和GoogleNet&#xff0c;网络上关于各种模型的介绍更是形形色色&#xff0c;自己就想着整理一下&#xff0c;以备自己以后查阅方便 LeNet5 先放一张图&#xff0c;我感觉凡是对深度学习有涉猎的人&#xff0c;对…

PaperNotes(2)-Generative Adversarial Net-代码实现资料

Generative Adversarial Nets-生成对抗网络Abstract1.Introduction2.Related work3.Adversarial nets4.Theoretical Results4.1全局最优 pgpdatap_gp_{data}pg​pdata​4.2算法1的收敛性质5.Experiments6.Advantagesa and disadvantages7.Conclusions and future work8.GAN-代码…

深度学习(05)--典型CNN结构(VGG13,16,19)

文章目录目录1.VGG结构2.VGG结构解释3.3*3卷积核的优点4.VGG的muti-scale方法5.VGG的应用目录 1.VGG结构  LeNet5用大的卷积核来获取图像的相似特征  AlexNet用99、1111的滤波器  VGG 巨大的进展是通过依次采用多个 33 卷积&#xff0c;模仿出更大的感受野&#xff08;r…

redis——发布和订阅

频道的订阅和退订 当一个客户端执行 SUBSCRIBE 命令&#xff0c; 订阅某个或某些频道的时候&#xff0c; 这个客户端与被订阅频道之间就建立起了一种订阅关系。 Redis 将所有频道的订阅关系都保存在服务器状态的 pubsub_channels 字典里面&#xff0c; 这个字典的键是某个被订…

redis——事务

Redis 事务可以一次执行多个命令&#xff0c; 并且带有以下三个重要的保证&#xff1a; 批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行&#xff0c;事务中任意命令执行失败&#xff0c;其余的命令依然被执行。在事务执行过程&#xff0c;其他客户端…

深度学习(06)-- Network in Network(NIN)

文章目录目录1.NIN 结构2.MLP卷积3.全局均值池化4.总体网络架构5.NIN补充5.1 广义线性模型&#xff08;GLM&#xff09;的局限性5.2 CCCP层5.3 1*1卷积核作用&#xff08;补充&#xff09;6.手势识别RGB图像--NIN结构目录 1.NIN 结构 2.MLP卷积 传统CNN的局部感受野窗口的运算…

Pytorch(2)-tensor常用操作

tensor常用数学操作1. 随机数1.1 torch.rand() - 均匀分布数字1.2 torch.randn() - 正态分布数字2. 求和2.1 torch.sum(data, dim)2.2 numpy.sum(data, axis)3. 求积3.1 点乘--对应位置相乘3.2 矩阵乘法4. 均值、方差4.1 torch tensor.mean() .std()4.2 numpy array.mean() .st…