山東大學程式設計第十周作業

2021-10-05 17:30:43 字數 1999 閱讀 3019

東東在玩遊戲「game23」。

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

input

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

output

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

example簽到題思路比較簡單,用m除以n,看是否為整數,如果是整數再繼續判斷是否可以被3整除或被2整除,記錄相除的次數,如果出到最後為1則可以轉換,否則不可以。

#include

using

namespace std;

intmain()

else

if(mod%2==

0)else

} cout << ans;

}return0;

}

東東有兩個序列a和b。

他想要知道序列a的lis和序列ab的lcs的長度。

注意,lis為嚴格遞增的,即a1第一行兩個數n,m(1<=n<=5,000,1<=m<=5,000)

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

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

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

examplelis問題的狀態轉移方程為:

lis的長度為max,其中fi 表示以 ai 為結尾的最長上公升序列的方程。

lcs問題的狀態轉移方程為:

if i0||j0,f[i][j]=0

else if ai == bj ,f[i][j] = f[i-1][j-1] + 1

else f[i][j] = max(f[i-1][j], f[i][j-1])

然後f[m][n]的值即為lcs 的長度

#include

using

namespace std;

int dp[

5010][

5010];

//.......

intmain()

cout << ans <<

" ";

for(

int i =

0; i <= n; i++)}

cout << dp[n]

[m]<< endl;

return0;

}

yjq 上完第10周的程式設計思維與實踐後,想到乙個絕妙的主意,他對拿數問題做了一點小修改,使得這道題變成了 拿數問題 ii。

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

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

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

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

example狀態轉移方程為:

dp[i] = max(dp[i - 1], dp[i - 2] + i * sum[i])

dp陣列記錄每乙個數出現的次數,dp[i]記錄取小於等於i的數時的最大分數。

#include

using

namespace std;

long

long dp[

100010

],a[

100010];

intmain()

dp[0]

=0, dp[1]

= a[1]

;for

(long

long i=

2;i<=mx;i++

) cout << dp[mx]

;return0;

}

山東大學程式設計第二週作業

東東有一張地圖,想通過地圖找到妹紙。地圖顯示,0表示可以走,1表示不可以走,左上角是入口,右下角是妹紙,這兩個位置保證為0。既然已經知道了地圖,那麼東東找到妹紙就不難了,請你編乙個程式,寫出東東找到妹紙的最短路線。輸入是乙個5 5的二維陣列,僅由0 1兩數字組成,表示法陣地圖。輸出若干行,表示從左上...

山東大學程式設計第八周作業

給定乙個數軸上的 n 個區間,要求在數軸上選取最少的點使得第 i 個區間 ai,bi 裡至少有 ci 個點 使用差分約束系統的解法解決這道題 input 輸入第一行乙個整數 n 表示區間的個數,接下來的 n 行,每一行兩個用空格隔開的整數 a,b 表示區間的左右端點。1 n 50000,0 ai b...

山東大學程式設計思維作業15

zjm 為了準備霍格沃茲的期末考試,決心背魔咒詞典,一舉拿下咒語翻譯題 題庫格式 魔咒 對應功能 背完題庫後,zjm 開始刷題,現共有 n 道題,每道題給出乙個字串,可能是 魔咒 也可能是對應功能 zjm 需要識別這個題目給出的是 魔咒 還是對應功能,並寫出轉換的結果,如果在魔咒詞典裡找不到,輸出 ...