橙白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.pswp.cn/news/445329.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445329.shtml
英文地址,請注明出處:http://en.pswp.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;在有限時間內獲得所要求的輸出。 …

Python(10)- 格式化輸出%

格式化輸出1. 格式化輸出浮點數2. 格式化輸出整數3. 格式化輸出浮點數4. 格式化輸出百分號%變量的格式化輸出&#xff1a;input函數將信息輸出到控制臺&#xff0c;實現變量和文字一起輸出。 %格式化操作符&#xff0c;和不同的字符連用&#xff0c;%s 字符串&#xff0c;%d 十…

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;…

Collections 工具類常見方法

Collections 工具類常用方法: 排序查找,替換操作同步控制(不推薦&#xff0c;需要線程安全的集合類型時請考慮使用 JUC 包下的并發集合) 排序操作 void reverse(List list)//反轉 void shuffle(List list)//隨機排序 void sort(List list)//按自然排序的升序排序 void sort(L…

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;論文原文…

Arrays工具類常見方法

Arrays類的常見操作 排序 : sort()查找 : binarySearch()比較: equals()填充 : fill()轉列表: asList()轉字符串 : toString()復制: copyOf() 排序 : sort() // *************排序 sort****************int a[] { 1, 3, 2, 7, 6, 5, 4, 9 };// sort(int[] a)方法按照數字順序…

Python(12)-while語句+賦值運算符號+轉義字符

while循環語句1.while基本語法2.break continue3.轉義字符4.賦值運算符5.Print函數輸出換行符號1.while基本語法 循環語句的程序三大流程之一&#xff1a; 順序 --從上到下以順序的方式執行代碼 分支流程–依據條件判斷&#xff0c;決定要執行的代碼分支–豐富代碼形式 循環–…

CNN的幾種經典模型

本文主要介紹一下CNN的幾種經典模型比較。之前自己也用過AlexNet和GoogleNet&#xff0c;網絡上關于各種模型的介紹更是形形色色&#xff0c;自己就想著整理一下&#xff0c;以備自己以后查閱方便 LeNet5 先放一張圖&#xff0c;我感覺凡是對深度學習有涉獵的人&#xff0c;對…

阿里Java編程規約(命名風格、常量定義、代碼格式)

命名風格 1、【強制】代碼中的命名均不能以下劃線或美元符號開始&#xff0c;也不能以下劃線或美元符號結束。 反例&#xff1a;_name / __name / $name / name_ / name$ / name__ 2、【強制】代碼中的命名嚴禁使用拼音與英文混合的方式&#xff0c;更不允許直接使用中文的方…