[GESP202312 六级] 闯关游戏

思路

这道题目使用动态规划(dynamic programming)。

dp[i]存储通过第 i 关能够获得的最高分数。

先把可以到达的关卡标记好。

然后用 for 循环计算 dp[i] 的值。

最后用一个 for 循环找到最大的 dp[i] 的值并输出。

代码

#include<bits/stdc++.h>
using namespace std;
int n,m,a[105],b[20005],dp[20005];
int main(){
	cin>>n>>m;
	for(int i=0;i<m;i++) cin>>a[i];
	for(int i=0;i<n;i++) cin>>b[i];
//	for(int i=0;i<n*2;i++) cout<<c[i]<<endl;
	dp[0]=b[0];
	for(int i=1;i<n*2;i++){
		dp[i]=-1e8;
		for(int j=0;j<m;j++){
			if(i-a[j]>=0&&dp[i-a[j]]!=-1e8){
				dp[i]=max(dp[i],dp[i-a[j]]+b[i]);
			}
		}
	}	
//	for(int i=0;i<n;i++) cout<<dp[i]<<" ";
	int ans=-1000000001;
	for(int i=n-1;i<n*2;i++){
		ans=max(ans,dp[i]);
	}
	cout<<ans;
	return 0;
}

### GESP202312 七级 商品交易 系统 错误代码 或 技术规范 关于GESP202312七级考试中涉及的商品交易系统的错误代码和技术规范,虽然未提供具体引用材料来描述此部分内容,但可以结合常见的商品交易系统设计原则以及C++编程中的常见问题进行分析。 #### 商品交易系统的技术规范 在开发商品交易系统时,通常需要遵循以下技术规范: - **数据完整性**:确保每笔交易的数据一致性。例如,在处理订单时,应验证库存数量是否充足,并更新数据库记录以反映最新的状态[^4]。 - **并发控制**:由于多个用户可能同时访问同一资源(如某件商品的库存),需采用锁机制或其他同步方法防止竞态条件的发生[^5]。 - **异常处理**:编写健壮的错误捕获逻辑,能够妥善应对网络中断、支付失败等情况下的回滚操作,从而保护用户的资金安全并维持业务流程正常运行[^6]。 #### 常见的系统错误及其解决方案 以下是几种可能出现于商品交易过程中的典型错误及相应的修复建议: | 错误名称 | 描述 | 解决方案 | |----------|----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| | E_INVALIDARGUMENTS | 提交至服务器端的信息存在缺失或者格式不符合预期定义 | 对客户端输入做严格的校验;利用单元测试覆盖各种边界情况 | | E_INSUFFICIENTFUNDS | 用户账户余额不足以完成购买 | 显示清晰提示告知客户当前可用金额不足;引导其充值更多款项 | | E_STOCKOUTOFBOUNDS | 请求订购的数量超出实际可供应量 | 实施前端实时查询剩余货品数目展示给消费者看;后台也要再次确认后再允许提交 | #### 示例代码片段 下面给出一段简单的伪代码用于演示如何实现基本的安全检查功能: ```cpp if (!validateUserInput(orderDetails)) { throw std::runtime_error("E_INVALIDARGUMENTS"); } double accountBalance = fetchAccountBalance(userId); if (accountBalance < orderTotalPrice){ throw std::runtime_error("E_INSUFFICIENTFUNDS"); } int stockAvailable = checkStockAvailability(productId); if(stockAvailable<orderQuantity){ throw std::runtime_error("E_STOCKOUTOFBOUNDS"); } //继续执行其他步骤... ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值