AtCoder 的 DP 题目 - 题单 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
F - LCS(最大公共子序列)
#include <bits/stdc++.h>
#define int long long
using namespace std;
int dp[10100][10100];
string s1,s2;
char v[100000];
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>s1>>s2;s1=" "+s1;s2=" "+s2;//v[0]=' ';for(int i=1;i<s1.size();i++)for(int j=1;j<s2.size();j++){dp[i][j]=max(dp[i-1][j],dp[i][j-1]);if(s1[i]==s2[j])dp[i][j]=max(dp[i][j],dp[i-1][j-1]+1);}int i=s1.size()-1;int j=s2.size()-1;while(dp[i][j]>0){if(s1[i]==s2[j]){v[dp[i][j]]=s1[i];i--,j--; }else{if(dp[i][j]==dp[i-1][j]) i--;else j--;}}int k=strlen(v+1);
// cout<<k;for(int i=1;i<=k;i++)cout<<v[i];
// cout<<v;
// cout<<v[1];
}
P1287 盒子与球 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1020;
int f[N][N];
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int n,r,i,j;cin>>n>>r;f[0][0]=1;for(i=1;i<=n;i++){for(j=1;j<=r&&j<=i;j++){f[i][j]=f[i-1][j-1]*j+f[i-1][j]*j;}}cout<<f[n][r]<<'\n';
}
P5520 [yLOI2019] 青原樱 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <bits/stdc++.h>
#define int long long
using namespace std;signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int t,n,m,i,j,mod;cin>>t>>n>>m>>mod;int s=1;for(i=n-m+1,j=1;j<=m;j++,i--)s=s*i%mod;cout<<s<<'\n';
}