当前位置: 首页 > news >正文

程序综合实践第五次DP1

1、数字黑洞

#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;int cnt=0;while(n!=495){int a=n/100;int b=(n/10)%10;int c=n%10;int x[3]={a,b,c};sort(x,x+3);//升序排序int max_num=x[2]*100+x[1]*10+x[0];int min_num=x[0]*100+x[1]*10+x[2];n=max_num-min_num;cnt++; 	}cout<<cnt<<endl;return 0;
}

2、国王的金矿

#include<bits/stdc++.h>
using namespace std;
int dp[15][105];
int w[15],c[15];
int n,m;
int main(){cin>>n>>m;for(int i=1;i<=n;i++){cin>>w[i]>>c[i];}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(w[i]>j)dp[i][j]=dp[i-1][j];else dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+c[i]);}}cout<<dp[n][m]<<endl;return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){int n,m;cin>>n>>m;int a[11],b[11];for(int i=1;i<=n;i++){cin>>a[i]>>b[i];}int dp[101]={0};for(int i=1;i<=n;i++){for(int j=m;j>=a[i];j--){dp[j]=max(dp[j],dp[j-a[i]]+b[i]);}}cout<<dp[m]<<endl;return 0;
}

3、糖果

#include<bits/stdc++.h>
using namespace std;int main(){int n,k;cin>>n>>k;int c[105];for(int i=0;i<n;i++){cin>>c[i];}// dp[r]表示余数为r时的最大糖果总数int dp[105];memset(dp,-1,sizeof(dp));dp[0] = 0;  for(int i=0;i<n;i++){int cur = c[i];       // 当前糖果数量int r = cur % k;      // 当前糖果对k的余数// 保存当前状态,避免重复使用同一糖果int a[105];memcpy(a, dp, sizeof(dp));// 遍历所有可能的余数for(int j=0;j<k;j++){if(a[j] != -1){int new_r = (j + r) % k;  // 新余数int new_sum = a[j] + cur; // 新总数if(new_sum > dp[new_r]){dp[new_r] = new_sum;}}}}// 如果能找到余数为0的方案,输出最大总数,否则输出0cout << (dp[0] > 0 ? dp[0] : 0) << endl;return 0;
}

4、城市的交通网络图

#include<bits/stdc++.h>
using namespace std;
int dp[105];
int c[105][105];
int n;
int main(){cin>>n;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cin>>c[i][j];}}for(int i=1;i<=n;i++){dp[i]=1e9;}dp[1]=0;for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){if(c[i][j]!=0&&dp[j]>dp[i]+c[i][j]){dp[j]=dp[i]+c[i][j];}}}cout<<dp[n]<<endl;return 0;
}

5、午餐费用

#include<bits/stdc++.h>
using namespace std;
int dp[100005];
int c[35];
int n,m;
int main(){cin>>n>>m;for(int i=1;i<=n;i++){cin>>c[i];}for(int i=1;i<=n;i++){for(int j=m;j>=c[i];j--){if(dp[j]<dp[j-c[i]]+c[i]){dp[j]=dp[j-c[i]]+c[i];}}}cout<<dp[m]<<endl;return 0;
}

6、瓶子涂色

#include<bits/stdc++.h>
using namespace std;
int dp[3];
int r[100005],g[100005],b[100005];
int n;
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>r[i];}for(int i=1;i<=n;i++){cin>>g[i];}for(int i=1;i<=n;i++){cin>>b[i];}dp[0]=r[1];dp[1]=g[1];dp[2]=b[1];for(int i=2;i<=n;i++){int t0,t1,t2;t0=min(dp[1],dp[2])+r[i];t1=min(dp[0],dp[2])+g[i];t2=min(dp[0],dp[1])+b[i];dp[0]=t0;dp[1]=t1;dp[2]=t2;}cout<<min(min(dp[0],dp[1]),dp[2])<<endl;return 0;
}

7、zz买手机

#include<bits/stdc++.h>
using namespace std;const int N = 5005;
const int INF = 1e9 * (-5000 * 5000); // 最小可能值(足够小)int a[N];   // 前缀和数组(复用为pre_max)
int b[N];   // 长度为m的子序列和
int dp[N];  // 动态规划数组
int n, m, k;int main() {cin >> n >> m >> k;// 计算前缀和a[0] = 0;for (int i = 1; i <= n; ++i) {int x;cin >> x;a[i] = a[i - 1] + x;}// 计算所有长度为m的子序列和for (int i = m; i <= n; ++i) {b[i] = a[i] - a[i - m];}// 初始化dp数组memset(dp, 0, sizeof(dp));// 动态规划计算选择k组的最大和for (int j = 1; j <= k; ++j) {// 计算前缀最大值数组pre_max(复用a数组)a[0] = INF;  // 初始化为极小值for (int i = 1; i <= n; ++i) {a[i] = max(a[i - 1], dp[i]);}// 更新当前j组的dp值for (int i = 1; i <= n; ++i) {if (i < j * m) {// 长度不足,无法选择j组dp[i] = INF;} else {// 不选第i个位置的子序列dp[i] = dp[i - 1];// 选第i个位置的子序列(需保证i >= m)if (i >= m) {dp[i] = max(dp[i], a[i - m] + b[i]);}}}}cout << dp[n] << endl;return 0;
}

http://www.dtcms.com/a/536101.html

相关文章:

  • 架构论文《论系统超融合架构的设计与应用》
  • PCB行业数字化转型样本:兴森科技携手盘古信息MOM系统,实现生产效率跃升
  • ESP32-C3赋能物联网设备,开启产品智能化,乐鑫代理商飞睿科技
  • 奥比中光相机pythonAPI color.py运行报错 (-5:Bad argument) in function ‘cvtColor‘
  • 南和网站建设公司建筑设计网课
  • 网站建设与管理 自考网络营销的四大基础理论
  • 毫秒级自动对焦,超高景深液态镜头在机器视觉检测中的应用
  • 了解一下攻击树(从攻击者的视角审视自身系统)
  • 【MySQL体系】第7篇:MySQL锁机制深度解析与实战
  • 【代码随想录算法训练营——Day50(Day49周日休息)】图论——98.所有可达路径
  • 基于Django的医疗电子仪器系统
  • Django 用户认证流程详解:从原理到实现
  • 新版 vscode 去除快捷键 Ctrl+I 显示 Copilot 的 AI 对话框
  • 工业智能车载台应用在什么场景?有什么功能?
  • ES7243E ADC模拟音频转i2S到 BES I2S1 Master输出播放到SPK精准分析
  • Oracle 19c 归档日志挖掘(Log Mining)完全指南
  • MediSec首批参会名单 | 301医院、西门子、联影、GE、阿斯利康等20多家医疗机构安全人员齐聚!
  • 顺义手机网站建设锦州网站建设更好
  • 成都私人网站制作公司好看的网页设计代码
  • Vue3小兔鲜-(二)
  • 2025全面评测:企业培训课件制作软件哪个好一点呢
  • C++与边缘AI:在资源荒漠中部署智能的工程艺术
  • 高并发编程之MapMaker
  • PCIe协议之复位篇之 PERST# 信号(二)
  • deque的优缺点
  • 基恩士PLC自定义定时器(预设值支持Real类型)
  • 【逆向】Android程序Hook native方法
  • dw做的网站乱码网站建设设计语言
  • 网站模板拍卖seo教程
  • 《jEasyUI 创建 CRUD 数据网格》