首页 前端知识 第十四届蓝桥杯大赛软件赛国赛C/C 大学C组

第十四届蓝桥杯大赛软件赛国赛C/C 大学C组

2025-03-01 12:03:30 前端知识 前端哥 613 847 我要收藏

A

【跑步计划——日期问题】-CSDN博客

B

【残缺的数字】-CSDN博客

C

题目

代码 

#include <bits/stdc++.h>
using namespace std;
void change(int &x)
{
int sum = 0, t = x;
while(t)
{
sum += t % 10;
t /= 10;
}
x -= sum;
}
int main()
{
int n;
cin >> n;
int ans = 0;
while(n)
{
change(n);
ans++;
}
cout << ans;
}
复制

D

【定时任务——日期问题+字符串格式】-CSDN博客

E

【2023——二项式反演】-CSDN博客

F

题目

 分析

01背包变种,多考虑一种选法,多开一个维度。由于内存限制,还得采用滚动数组(一般用滚动要清空,背包特殊)。

代码

#include <bits/stdc++.h>
using namespace std;
const int N = 210;
const int M = 1010;
int f[2][M][M];
int w[N];
int main()
{
int n, a, b;
cin >> n >> a >> b;
for(int i = 1; i <= n; i++)
cin >> w[i];
for(int i = 1; i <= n; i++)
for(int j = 0; j <= a; j++)
for(int k = 0; k <= b; k++)
{
f[i&1][j][k] = f[i-1&1][j][k];
if(j-w[i] >= 0) f[i&1][j][k] = max(f[i&1][j][k], f[i-1&1][j-w[i]][k] + w[i]);
if(k-w[i] >= 0) f[i&1][j][k] = max(f[i&1][j][k], f[i-1&1][j][k-w[i]] + w[i]);
}
cout << f[n&1][a][b];
return 0;
}
复制
#include <bits/stdc++.h>
using namespace std;
const int N = 210;
const int M = 1010;
int f[M][M];
int w[N];
int main()
{
int n, a, b;
cin >> n >> a >> b;
for(int i = 1; i <= n; i++)
cin >> w[i];
for(int i = 1; i <= n; i++)
for(int j = a; j >= 0; j--)
for(int k = b; k >= 0; k--)
{
f[j][k] = f[j][k];
if(j-w[i] >= 0) f[j][k] = max(f[j][k], f[j-w[i]][k] + w[i]);
if(k-w[i] >= 0) f[j][k] = max(f[j][k], f[j][k-w[i]] + w[i]);
}
cout << f[a][b];
return 0;
}
复制

G

【走方格——BFS,增加更新方式】-CSDN博客

H

【最大区间——枚举 + 单调栈】-CSDN博客

I

待续

J

【选段排序——堆】-CSDN博客

转载请注明出处或者链接地址:https://www.qianduange.cn//article/22180.html
标签
蓝桥杯
评论
还可以输入200
共0条数据,当前/页
发布的文章

算法002——复写零

2025-03-02 13:03:05

github上传代码(自用)

2025-03-02 13:03:59

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!