問題描述
東東在玩遊戲「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的子類,將...