程設第十周

2021-10-05 21:20:14 字數 2165 閱讀 5398

問題描述

東東在玩遊戲「game23」。在一開始他有乙個數字n,他的目標是把它轉換成m,在每一步操作中,他可以將n乘以2或乘以3,他可以進行任意次操作。輸出將n轉換成m的操作次數,如果轉換不了輸出-1。

input

輸入的唯一一行包括兩個整數n和m(1<=n<=m<=5*10^8).

output

輸出從n轉換到m的操作次數,否則輸出-1.

思路m/n之後直接while /2/3 之後判斷一下。

**

#include

using

namespace std;

intmain()

x=y/x;

ans=0;

while

(x%3==0

)while

(x%2==0

)if(x==1)

cout

cout<<-1

}

問題描述

給定兩個序列a和b。

求序列a的lis和序列ab的lcs的長度。

注意,lis為嚴格遞增的,即a1input

第一行兩個數n,m(1<=n<=5,000,1<=m<=5,000)

第二行n個數,表示序列a

第三行m個數,表示序列b

output

輸出一行資料ans1和ans2,分別代表序列a的lis和序列ab的lcs的長度

思路f[i]儲存從1到當前的lis長度,f[i]=max(f[i],f[j]+1)。

ff[i][j]儲存序列a[1…i]和序列b[1…j]的lcs,

ff[i][j]=max(ff[i-1][j],ff[i][j-1]);

if (a[i]==b[j])

ff[i][j]=max(ff[i][j],ff[i-1][j-1]+1);

**
#include

#include

#include

using

namespace std;

int a[

10010

],b[

10010

],f[

10010];

int ff[

5050][

5050];

intmain()

cout<" "<[m]

}

問題描述

給 n 個數,每一步能拿走乙個數,比如拿第 i 個數, ai = x,得到相應的分數 x,但拿掉這個 ai 後,x+1 和 x-1 (如果有 aj = x+1 或 aj = x-1 存在) 就會變得不可拿(但是有 aj = x 的話可以繼續拿這個 x)。求最大分數。

input

第一行包含乙個整數 n (1 ≤ n ≤ 100000),表示數字裡的元素的個數

第二行包含n個整數a1, a2, …, an (1 ≤ ai ≤ 100000)

output

輸出乙個整數:n你能得到最大分值。

思路將數字進行預處理,a[i]表示取數值為i的數字可以得到的分數。

使用f[i]儲存取到數字i可以得到的最大分數。

f[i]=max(f[i-1],f[i-2]+a[i])

**

#include

#include

using

namespace std;

long

long a[

100010];

long

long f[

100010];

intmain()

max=0;

for(

int i=

0;i) f[0]

=0; f[1]

=a[1];

for(

int i=

2;i<=max;i++)if

(f[i-1]

>f[i-2]

+a[i]

) f[i]

=f[i-1]

;else

f[i]

=f[i-2]

+a[i]

;printf

("%lld\n"

,f[max]);

return0;

}

第十周課程總結

位元組流與字元流基本操作 程式需要資料的時候要使用輸入流讀取資料,程式需要將一些資料儲存起來的時候就要使用輸出流完成 位元組流在位元組流中輸出資料主要使用outoutstream類完成,輸入使用inputstream類,在字元流中輸出主要是使用writer類完成,輸入主要是 reader 類完成 o...

第十周課程總結

流是個抽象的概念,是對輸入輸出裝置的抽象,輸入流可以看作乙個輸入通道,輸出流可以看作乙個輸出通道。輸入流是相對程式而言的,外部傳入資料給程式需要借助輸入流。輸出流是相對程式而言的,程式把資料傳輸到外部需要借助輸出流。什麼是位元組流?位元組流 傳輸過程中,傳輸資料的最基本單位是位元組的流。什麼是字元流...

第十周課程總結

輸出資料 outputstream類 輸入資料 inputstream類 輸出資料 writer類 輸入資料 reader類 1使用file類開啟乙個檔案 2通過位元組流或字元流的子類,指定輸出的位置 3進行讀 寫操作 4關閉輸入 輸出 outputstreamwriter類 writer的子類,將...