京東2018 4 9程式設計題

2021-08-18 15:37:07 字數 1959 閱讀 9655

最近實在是忙,終於有空來寫一下程式設計題題解。

1. 生成回文串

這個題當時沒有寫出來,實在是沒有區間dp的經驗,只能想到指數複雜度的dfs。(這個題和求子序列能組成的回文串數量是一樣的,這個稍微想想就知道了)

後來下來經大佬指點發現,這是乙個區間dp的題。定義dp[i][j]為[i, j]閉區間的回文串數量,那麼狀態轉移方程就是dp[i][j] = dp[i+1][j] + dp[i][j-1]-dp[i+1][j-1];減去的部分是重複統計了的,如果s[i] == s[j]的話,dp[i][j]再加上dp[i+1][j-1]+1;這裡是為什麼呢,因為s[i] == s[j]呀,所以就多了一對回文串「s[i]s[j]」,還多了dp[i+1][j-1]個呢,那是在該區間的回文串之上左右分別新增上s[i]和s[j]之後構成的新的回文串。這樣就是o(n^2)了

這個題和hdu上面的乙個題是一樣的就是hdu4632,這裡寫的也是杭電的題解(京東的筆試題沒法找不到了)

**:#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int maxn = 1005;

const int mod = 10007;

const int inf = 1<<30;

char s[maxn];

ll dp[maxn][maxn];

int main( )

cout<<"case "<

2. 分解整數

題解:題目中說了是將n(long long那麼大)分解為x*y,x和y分別是奇數和偶數,要保證偶數最小,那就很簡單了,對n一直除2然後直到n為奇數就為止,複雜度o(logn)。

**:#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int maxn = 55;

const int mod = 1e9+7;

const int inf = 1<<30;

ll n;

int main( )

cout<3. 牛牛的括號匹配

題解:這個題乍一看像是棧模擬,其實不需要。有乙個點要能看到,就是左括號越在左側他的價值越大,右括號越來右側他的價值越大,這裡的價值指的是能偶匹配對應的括號的數量。然後在分析題意,符合條件只有兩種情形,一種是有且僅有一對括號的位置是反著的,第二種是不能再非法的括號位置並且有大於等於兩套正確匹配的括號,因為體重要求必須要進行一次交換。這樣就用乙個counter記錄當前的左括號數量,碰到右括號就消掉乙個,碰到第乙個右括號就進行記錄,然後重置counter,詳見**。

**:#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int maxn = 1e5+5;

const int mod = 1e9+7;

const int inf = 1<<30;

char s[maxn];

int main( )

{ //freopen("input.txt", "r", stdin);

int t;

cin>>t;

while(t--)

{cin>>s;

int counter = 0, n = strlen(s), flag = 0;

for(int i=0; i=4 && counter==0)

cout<<"yes"<

京東前端程式設計題

合法的括號匹配序列被定義為 1.空串 是合法的括號序列 2.如果 x 和 y 是合法的序列,那麼 xy 也是乙個合法的括號序列 3.如果 x 是乙個合法的序列,那麼 x 也是乙個合法的括號序列 4.每個合法的括號序列都可以由上面的規則生成 例如 都是合法的。東東現在有乙個合法的括號序列s,一次移除操...

程式設計題 京東2016 買糖果

寫的有點繁瑣,歡迎指正 題目描述 某糖果公司專門生產兒童糖果,它最受兒童歡迎的糖果有a1 a2兩個序列,均採用盒式包裝。包裝好的a1類糖果體積為乙個儲存單位,而包裝好的a2類糖果體積正好是a1類的兩倍。這兩類糖果之所以廣受兒童歡迎,是因為糖果中含有公司獨家研發的魔幻因子。a1或a2序列中的糖果,看起...

程式設計題 京東 生日禮物

題目描述 bf的生日快到了,這一次,小東決定為bf送乙份特別的生日禮物為其慶生。作為高智商中的佼佼者,bf在國外求學,因此小東無法與之一起慶生。小東計畫送乙個生日卡片,並通過特別的包裝讓bf永遠難忘。她決定把卡片套裝在一系列的信封a 中。小東已經從商店中購買了很多的信封,她希望能夠用手頭中盡可能多的...