- 博客(8)
- 收藏
- 关注
原创 蓝桥杯VIP试题<黑心药商>c++DP算法 01背包问题 (详细注释)
问题描述 JiaoShou消灭了百变怪,为爱琳世界赢得了和平,但他突然发现自己没有升级,这就意味着必须去喝药补血。爱琳世界的NPC卖的药已经不能满足他的需求了,他找到了爱琳唯一的药贩子-药加钱。药加钱的药有N种,第i种药的价格为wi单位的金币,可以恢复pi的血,但是每种药只有一瓶,并且第i种药也许含有添加剂。添加剂本身对JiaoShou没有任何影响,可是会发生i和j的添加剂混合起来,使教授减少ax的血。还好药加钱并不是太黑心,如果他的药中i和j混合使用有副作用的话。i不会再和其他药的添加剂一起产生副作
2022-03-27 22:18:35 525
原创 蓝桥杯<完全背包问题>c++,DP算法
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 有一個背包,容量為M。有N種物品,每種物品有其體積Wi與價值Vi。將這些物品的一部分放入背包,每種物品可以放任意多個,要求總體積不超過容量,且總價值最大。 输入格式 第一行為N, M。 之後N行,每行為Wi, Vi。 输出格式 一個數,為最大價值。 样例输入 3 20 15 16 6 6 7 5 样例输出 18 数据规模和约定 N, M<=1000。 #include <ios.
2022-03-27 13:20:36 114
原创 蓝桥杯<拿金币>DP算法c++
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币。你站在最左上角的格子里,每次可以从一个格子走到它右边或下边的格子里。请问如何走才能拿到最多的金币。 输入格式 第一行输入一个正整数n。 以下n行描述该方格。金币数保证是不超过1000的正整数。 输出格式 最多能拿金币数量。 样例输入 3 1 3 3 2 2 2 3 1 2 样例输出 11 数据规模和约定 n<.
2022-03-27 11:25:31 151
原创 蓝桥杯算法训练 DP算法<印章>c语言
问题描述 共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。 输入格式 一行两个正整数n和m 输出格式 一个实数P表示答案,保留4位小数。 样例输入 2 3 样例输出 0.7500 数据规模和约定 1≤n,m≤20 #include <stdio.h> #include <math.h> int main() { float dp[21][21]; int m,n,i,j; scanf("%d %d
2022-03-26 15:44:34 985
原创 蓝桥杯vip试题<分解质因数> c++(利用stringstream)超简洁
资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 求出区间[a,b]中所有整数的质因数分解。 输入格式 输入两个整数a,b。 输出格式 每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例) 样例输入 3 10 样例输出 3=3 4=2*2 5=5 6=2*3 7=7 8=2*2*2 9=3*3 10=2*5 提示 先筛出所有素数,然后再分解。 数据规模和约定 2&.
2022-03-26 15:37:33 66
原创 蓝桥杯子VIP试题 龟兔赛跑预测 c++超简洁
#include <iostream> using namespace std; int main() { int v1,v2,t,s,l,ll,t1=0,tt=1,tt1=0,tt2=0; cin>>v1>>v2>>t>>s>>l; do { ll=v1*tt-v2*(tt+t1); if(ll>=t) t1+=s; tt++; }while(v1*tt<l&&v2*(tt+t1)&.
2022-03-25 13:57:02 1105
原创 蓝桥杯VIP题目 回形取数 c++
#include <iostream> #include <vector> using namespace std; int main() { int j,num,t,i,m,n; cin>>m>>n; vector<int> vi[250]; vector<int> vvi; for(i=0;i<m;i++) for(j=0;j<n;j++) { cin>>num; vi[i].push.
2022-03-22 21:56:53 1229
原创 蓝桥杯 十六进制转八进制
#include <stdio.h> #include <string.h> #include <math.h> int n; int supply(int l,int a[10][1000000],int p) { int i; for(i=1;i<=4;i++) if(pow(2,i)==l) break; int j; int k=a[p][0]; if(k%i!=0) { j=k%i; a[p][0]=k+i-j; for(j.
2022-03-18 11:54:08 180
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人