洛谷: P1754 球迷购票问题

思路: 记忆化搜索。和洛谷上那道括号匹配的题几乎是一样的。

x是当前剩余50的数量,y是剩余100的数量。

纯暴力三个点超时,所以每次DFS完了,把当前找到的方式数量记录下来,不再重复的去DFS。

代码:

#include <bits/stdc++.h>
using namespace std;
long long ans,dp[30][30];
long long dfs(int x,int y) {
if (x < y) return 0;
if (!x && !y) {
return 1;
}
if (dp[x][y]) return dp[x][y];
long long res1=0, res2=0;
if (x) {
res1 = dfs(x - 1, y);
dp[x - 1][y] = res1;
}
if (y) {
res2 = dfs(x, y - 1);
dp[x][y - 1] = res2;
}
return res1 + res2;
}
int main() {
int l, r;
cin >> l;
r = l;
ans = dfs(l,r);
cout << ans << endl;
return 0;
}

posted @   YuKiCheng  阅读(8)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示