日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2023/12/13 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 橙白oj 2017级《算法分析与设计》-练习02 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

注:A題我以為給新生出的,應該賊簡單,是按順序消滅,卡了十幾分鐘,成了最后一個ac的題,真是菜的真實。

?

Problem A:

Description

白細胞是人體與疾病斗爭的“衛(wèi)士”。當病菌侵入人體體內(nèi)時,白細胞能通過變形而穿過毛細血管壁,集中到病菌入侵部位,將病菌包圍﹑吞噬。如果體內(nèi)的白細胞的數(shù)量高于正常值,很可能是身體有了炎癥。

?

現(xiàn)在,白細胞遇到了一群雜菌,它有n(0<n<1000)點體力,現(xiàn)在有m個雜菌,每個雜菌需要ai點體力去消滅(0<ai<1000)。請問,白細胞最多能消滅多少個雜菌呢?

Input

第一行有兩個數(shù)n和m,分別代表白細胞的體力和雜菌數(shù)量 第二行有m個數(shù),a0,a1,...a(m-1),分別代表消滅其需要的體力。

Output

最大能消滅多少個雜菌。

Sample Input

6 3 1 2 3

Sample Output

3

解析:模擬消滅雜菌的過程:排序,先消滅較小的數(shù)字。

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

紅細胞也稱紅血球,在常規(guī)化驗英文常縮寫成RBC,是血液中數(shù)量最多的一種血細胞,同時也是脊椎動物體內(nèi)通過血液運送氧氣的最主要的媒介,同時還具有免疫功能。哺乳動物成熟的紅細胞是無核的,這意味著它們失去了DNA。紅細胞也沒有線粒體,它們通過分解葡萄糖釋放能量。運輸氧氣,也運輸一部分二氧化碳。運輸二氧化碳時呈暗紫色,運輸氧氣時呈鮮紅色

紅細胞會生成于骨髓之內(nèi),開始在白細胞內(nèi)生長。紅細胞老化后,易導致血管堵塞,所以會自動返回骨髓深處,由白細胞負責銷毀;或是在經(jīng)過肝臟時,被枯否細胞分解成為膽汁。

32767號紅細胞正在把氧氣運送到目的地,她面前是一層層的血管網(wǎng),到達目的地之前一共有很多層血管網(wǎng),對于每一層血管網(wǎng),紅細胞都可以有很多條路徑通過,從而到達層與層之間的節(jié)點,最終到達終點。

32767號紅細胞是個路癡,請幫她計算出一共有多少條路徑。

Input

第一行輸入一個整數(shù)n(0<n<20)代表血管層數(shù)。

第二行輸入n個整數(shù)ai,代表每層一共有多少條路徑。(0<ai<1000)。

Output

一個整數(shù),代表路徑的總數(shù)

且保證答案在long long范圍之內(nèi)(py選手不用管)

Sample Input

5 10 20 30 40 50

Sample Output

12000000

解析:經(jīng)過分析,數(shù)字相乘即可。

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細胞。是一種監(jiān)控并在需要時殺死靶細胞的細胞。記憶細胞毒性T細胞對帶抗原的靶細胞有記憶功能,由細胞毒性T細胞分化而成。一旦發(fā)現(xiàn)帶特異性抗原的靶細胞,會刺激效應細胞毒性T細胞產(chǎn)生效應細胞毒性T細胞,消滅被感染的細胞或癌細胞。

癌細胞出現(xiàn)了!殺手T細胞出動!

殺手T細胞需要迅速到達癌細胞的位置,他離癌細胞有n米的距離,它每次可以選擇走1米或者跑2米,問,殺手T細胞有多少種方式到達癌細胞的位置。

例如:殺手T細胞離癌細胞3米,他可以每次都走1米,或者第一次走1米,第二次跑2米,也可以第一次跑2米,第二次走1米,一共三種方式到達癌細胞的位置。

Input

輸入包含若干行,每行包含一個正整數(shù)n(1<=n<=30),n代表殺手T細胞離癌細胞的位置。

Output

一個正整數(shù),代表殺手T細胞到達癌細胞的方法數(shù)目。

Sample Input

5 8 10

Sample Output

8 34 89

解析:

殺手T細胞離癌細胞1米,有一種方法。

殺手T細胞離癌細胞2米,可以分兩次或者一次,有兩種方法。

之后,因為第n米只可能是通過n-1或n-2跳來的,所以到達第n米的方法數(shù)等于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: 水仙花數(shù)

Description

請判斷一個數(shù)是不是水仙花數(shù)。
其中水仙花數(shù)定義各個位數(shù)立方和等于它本身的三位數(shù)。

Input

有多組測試數(shù)據(jù),每組測試數(shù)據(jù)以包含一個整數(shù)n(100<=n<1000) 輸入0表示程序輸入結束。

Output

如果n是水仙花數(shù)就輸出Yes 否則輸出No

Sample Input

153
154
0


Sample Output

Yes No

解析:求出各個位數(shù)的立方和,和本身作比較即可(小號交的循環(huán)求,怕查重,手打三個位數(shù))

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

現(xiàn)在給你兩堆數(shù),每個堆中有n個數(shù)。你的任務是把這兩個堆并成一個堆,并把合并后的堆中的元素按從小到大的順序輸出。例如當n=5時,第一個堆是{1,2,3,4,5},第二個堆是{5,6,7,8,9},那么你就應該輸出1?2?3?4?5?6?7?8?9。(一堆中可能有重復的數(shù))

Input

第一行輸入一個整數(shù)T(1≤T≤100),表示有T組測試數(shù)據(jù)。 每組數(shù)據(jù)先輸入一個整數(shù)N(1≤N≤10),表示每個堆中元素的個數(shù)。然后輸入N個整數(shù)A(0≤A<100),最后輸入N個整數(shù)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

解析:合并兩組數(shù)并且去重按順序輸出,由題意得,數(shù)字均小于100,范圍較小,考慮采用桶思想,數(shù)組記錄對應下標的數(shù)字出沒出現(xiàn)過即可。

另:注意輸出格式,找出第一個數(shù)字,不打印空格。

之后的數(shù)字,前面打印空格。

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();}} }

?

總結

以上是生活随笔為你收集整理的橙白oj 2017级《算法分析与设计》-练习02的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。