Codeforces-837D Round Subset(dp)
来源:互联网 发布:union all 不同数据库 编辑:程序博客网 时间:2024/06/07 13:29
这道题莫名其妙可以用n^2*5000的复杂度过(果然CF很神奇)
dp[t][i][j]表示将第i个数作为第t个取出来,现在有j个5,dp值代表有多少个2
因为开不了这么大的数组,第二维用滚动数组省去,最后答案就是max(min(dp[k][j],j))
#include<stdio.h>#include<iostream>#include<algorithm>#include<stdlib.h>#include<math.h>#include<string.h>#include<set>#include<vector>#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define first x#define second y#define eps 1e-5using namespace std;typedef long long LL;typedef pair<int, int> PII;const int inf = 0x3f3f3f3f;const int MX = 200 + 5;struct node { int x, y; bool operator<(const node& _A)const { if (x != _A.x) return x < _A.x; return y < _A.y; }} a[MX];int dp[MX][MX * 30];int main() { //freopen("in.txt", "r", stdin); int n, k; scanf("%d%d", &n, &k); int tot = 0; for (int i = 1; i <= n; i++) { LL t; scanf("%I64d", &t); int cnt1 = 0, cnt2 = 0; while (t % 5 == 0) t /= 5, cnt1++; while (t % 2 == 0) t /= 2, cnt2++; a[i].x = cnt1; a[i].y = cnt2; tot += a[i].x; } memset(dp, -1, sizeof(dp)); for (int i = 0; i <= n; i++) dp[i][0] = 0; for (int i = 1; i <= n; i++) { for (int t = min(i, k); t > 0; t--) { for (int j = tot; j >= a[i].x; j--) { if (dp[t - 1][j - a[i].x] >= 0) dp[t][j] = max(dp[t][j], dp[t - 1][j - a[i].x] + a[i].y); } } } int ans = 0; for (int i = 1; i <= tot; i++) ans = max(ans, min(dp[k][i], i)); printf("%d\n", ans); return 0;}
阅读全文
0 0
- Codeforces-837D Round Subset(dp)
- Codeforces-837D:Round Subset(DP)
- 【dp】codeforces 837D Round Subset
- codeforces 837D Round Subset (dp)
- Codeforces 837 D Round Subset
- Codeforces 837D Round Subset :随便来个DP
- Codeforces 837D Round Subset【思维+Dp+滚动数组】
- 837D. Round Subset
- Educational Codeforces Round 26 D Round Subset
- Educational Codeforces Round 26 D. Round Subset 滚动数组优化DP
- Educational Codeforces Round 12 D. Simple Subset
- Educational Codeforces Round 12 D. Simple Subset
- cf Educational Codeforces Round 26 D. Round Subset
- 【DP】Codeforces837D. Round Subset
- Codeforces Beta Round #51 D. Beautiful numbers (数位dp)
- Codeforces Round #263 (Div. 2)D(树形DP)
- Codeforces Round #264 (Div. 2)D(图论+dp)
- Codeforces Round #266 (Div. 2)D(DP)
- OpenVAS漏洞扫描基础教程之连接OpenVAS服务
- nginx 服务器重启命令,关闭
- 贝贝
- Codeforces 837 D Round Subset
- Activity生命周期实践
- Codeforces-837D Round Subset(dp)
- 图像标签(<img>)和源属性(Src)
- 基于状态机正则引擎学习(挖坑待填)
- c/c++结构体与结构体指针
- 【数论-莫比乌斯】bzoj 2301 莫比乌斯+容斥
- Trie(字典树)的Java实现
- Cocoapods安装中出现的问题解决
- Oracle总结
- 客户端和服务器编码问题