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

网站建设咨询公司推荐打开一个不良网站提示创建成功

网站建设咨询公司推荐,打开一个不良网站提示创建成功,php自建网站,昭通网站建设 hardlcp题目:(费用报销) 题目描述(13届 C&C B组F题) 解题思路: 1. 问题抽象 本问题可以看作一个限制条件较多的优化问题,核心是如何在金额和时间约束下选择最优方案: 动态规划是理想…

题目:(费用报销)

题目描述(13届 C&C++ B组F题)

 

解题思路:

1. 问题抽象

本问题可以看作一个限制条件较多的优化问题,核心是如何在金额和时间约束下选择最优方案

  • 动态规划是理想的解决方法。

  • 我们定义 dp[i]到第 i 天为止的最大报销金额

2. 日期统一化

为了方便处理时间差,需将日期(月份和天数)统一转化为一年中的第几天。例如:

  • 1 月 1 日为第 1 天;

  • 2 月 1 日为第 32 天(31+1)。

这一步能让日期差的计算简单且高效。

3. 动态规划状态转移

  • 状态表示dp[i] 表示到第 i 天为止的最大报销金额。

  • 转移方程:对每张票据:

    • 如果报销当前票据:dp[i] = max(dp[i-1], dp[pre] + v[i]),其中 pre = i - K

    • 如果不报销当前票据:dp[i] = dp[i-1]

4. 优化思路

  • 按票据日期排序,确保动态规划时的时间顺序正确。

  • 动态更新 dp 数组,逐步累积最大金额。

代码实现(C语言):

#include <stdio.h>
#include <stdlib.h>typedef struct {int day, v;
} dps;int N, M, K;
int m[1009], d[1009];
dps dp[1009];
int a[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int p[366] = {0};// 计算每月对应的天数累计和
int month(int mi) {int sum = 0;for (int i = 0; i < mi - 1; i++) sum += a[i];return sum;
}// 将日期统一成一年中的第几天
void becomeday() {for (int i = 0; i < N; i++) {dp[i].day = month(m[i]) + d[i];p[dp[i].day] = dp[i].v;}
}// 比较函数,用于qsort排序
int cmp(const void *a1, const void *a2) {dps s1 = *(dps *)a1;dps s2 = *(dps *)a2;return s1.day - s2.day;
}int main() {scanf("%d%d%d", &N, &M, &K);for (int i = 0; i < N; i++) {scanf("%d%d%d", &m[i], &d[i], &dp[i].v);}// 转换日期并排序becomeday();qsort(dp, N, sizeof(dp[0]), cmp);// 动态规划for (int i = 1; i < 366; i++) {int pre = i - K >= 0 ? i - K : 0;if (p[i] + p[pre] <= M) {p[i] = p[i] + p[pre] > p[i - 1] ? p[i] + p[pre] : p[i - 1];} else {p[i] = p[i - 1];}}printf("%d", p[365]);return 0;
}

得到运行结果:

难度分析

⭐️⭐️⭐️⭐️⭐️难难难难难难

总结

本题核心在于将日期处理动态规划相结合,解决了多条件限制下的最优选择问题。
以下是总结要点:

  1. 日期统一化:通过天数累计简化日期差值计算。

  2. 动态规划核心:记录每一天的最大报销金额,并逐步更新。

  3. 代码结构清晰:日期处理、排序和动态规划分模块实现,方便理解和维护。

http://www.yayakq.cn/news/514291/

相关文章:

  • 做网站.net和php哪个简单网页和网站是一样的吗
  • 昆明网站推广优化网页怎么做
  • 如何用ftp上传文件到网站互联网包括哪些方面
  • 珠海响应式网站建设推广公司做app网站的软件叫什么
  • 万户网站建设公司已有网站开发app终端
  • 谷歌网站关键词优化手机网站 asp
  • 常州自助建站seo体检网站源码
  • 中国建设网官方网站企业18成禁人养成游戏手游
  • 湛江网站seo推广18款禁用网站app入口
  • 网站建设技巧世界500强企业排名表
  • 电子商务网站建设与管理实验总结包头建设局网站
  • 高档网站设计公司北京城乡与建设厅官方网站查询
  • 网站建设名牌深圳网络推广公司怎么样
  • 做网站什么字体比较好看哈尔滨网站专业制作
  • 沌口网站建设wordpress 幻灯片自定义
  • 企业为什么要做网站运营大学生学风建设专题网站
  • 焦作网站建设公司哪家好电商网站设计趋势
  • 中国建设银行演示网站国家企业信用公示信息网官网
  • 娱乐网站后缀是什么合肥seo按天扣费
  • 青岛网站快速备案wordpress vip 插件下载
  • 着力规范网站集约化建设开三云匠网
  • 医药销售网站开发背景成都有什么好玩的旅游景点
  • 网站访客qq获取系统 报价关键词优化过程
  • 购物网站开发教学视频南昌网站建设公司咨询
  • 红色网站主题徐州云龙区建设局网站
  • 做免费网站有哪些亚马逊网上购物商城
  • 做网站需要掌握什么软件网络营销策略分哪几类
  • 黄石市城市建设档案馆网站企业邮箱格式例子
  • 口碑好的番禺网站建设如何网站建设公司
  • 十堰市建设工程管理处网站怎样把网站上传到服务器上