17金山WPS 補題 D

2021-07-31 03:25:43 字數 1667 閱讀 2224

說是dp

雖然當時當做人排隊看出來了。。。

然後好像寫出來的公式是錯的。。

時間也不夠,就不知道怎麼搞了。。

其實自己讀錯題目了。。

大佬的題解:

dp[i][j]表示i個數的排列中有指定的j個數不在原先的位置的排列種數,然後dp[i][j]=(j-1)*dp[i-1][j-2]+(i-j)*dp[i-1][j-1]

初始狀態dp[i][0]=i!,dp[i][1]=(i-1)*(i-1)!

然而自己交上去還是wa了、、

而且。 要注意因為是  階乘-dp[i][j];  而且又取模了。所以前面的可能比較小,,我就要加上mod。。

我也不太明白為什麼不是    (jc(n)+mod-dp[n][m])%mod。。  按理說不是 在+不在=階乘嗎。。。怎麼這裡這樣錯了。。

#include#include#include#include#include#include#include#include#includeusing namespace std;

#define mem(a,b) memset(a,b,sizeof(a));

#define sf scanf

#define pf printf

#define ll long long

#define bug1 cout<<"bug1"<

還有蘇大佬的題解:

我卻還是不知道為什麼錯,   原來是一些細節。。

#include#include#include#include#include#include#includeusing namespace std;

#define sf scanf

#define pf printf

const int mod=1e9+7;

const int maxn=205;

long long dp[maxn][maxn];

bool isprime(int x)

return true;

}int main()

}else

}}int n,m;

while(~sf("%d%d",&n,&m))

}

jx**;其實就是蘇大佬的思想,,只是有些地方比如j==0的時候判斷了。。還有就是dp=1的邊界。。

#include#include#includeusing namespace std;

long long m[210][21];

long long k[210];

long long dp[210][210];

long long sum[210];

long long mod=1e9+7;

int main()

memset(sum,0,sizeof(sum));

k[0]=0;

k[1]=0;

for(int i=2;i<=205;i++)

} }for(int i=1;i<=205;i++)

memset(dp,0,sizeof(dp));

dp[1][0]=1;

for(int i=2;i<=200;i++)

else

}else

} }int n,m;

while(cin>>n>>m)

cout<

2017軟院金山WPS補題 L

比賽的時候題意看不懂。然後就卡了。l題就是模擬作業系統的lru演算法。就是維護乙個鍊錶,如果要替換的話就找到最後乙個替換,如果要插入的話就插入到開頭,如果在鍊錶中已經存在的話,就把這個提到鍊錶的開頭,然後搞一下就行了。看了別人的做法,用的是queue map cnt與queue中的元素個數不是同步的...

2012 9 26 金山WPS筆試題

今晚的筆試題目不難,所考演算法也不是很難,關鍵在仔細審題和平常的積累 1.有770個節點的完全二叉樹,問葉子節點有多少?重點是葉子節點,不是最下一層的節點數目,陷阱呀 可以計算得出該完全二叉樹的最下面一層的節點數目是259,上一層的節點數目為256,所以,可以得出上一層的葉子節點數目有126,所以結...

金山Wps珠海實習雜記(二)

2019.11.22 算一算時間,過來珠海已經一周時間了。從最開始的茫然四顧,到現在一切也慢慢走上正軌了。最近的工作有些單調,主要還是自主學習會較多一些。前兩天導師分配了乙個有點 打雜 意味的任務 我們wps的qingbangong模組有很多rpc網路請求,目前我們希望用一套邏輯來對這些rpc進行管...