301 Transportation(****)

最优订单选择算法
本文介绍了一个通过枚举和回溯算法解决的最优订单选择问题。该问题的目标是从一系列订单中选择一组,使得总收益最大化,同时不违反货物装载限制。文章提供了两种不同的实现方式,并详细解释了每一步的操作。
/* 推荐题型:四星 题意:从A到B,接受那些订单可使船的受益最大。要求订单要么完全接受,要么完全拒绝 思路:子类枚举,回溯 回溯概念:在递归构造过程中,生成和检查过程有机结合起来,从而减少不必要的枚举。并不仅仅是指将状态恢复到原来的情况。 */ #include <cstdio> #include <cstdlib> #include <cstring> int n1,n2,n3; struct Node { int a; int b; int n; }node[25]; int p[10]; int ans; int cmp(const void *a,const void *b) { Node *pa=(Node *)a; Node *pb=(Node *)b; return pa->n-pb->n; } void dfs(int cur) { if(cur==n3) { int temp=0; for(int i=0;i<10;i++) temp+=p[i]; if(temp>ans) ans=temp; return; } bool ok=true; int pp[10]; memcpy(pp,p,sizeof(p)); for(int i=node[cur].a;i<node[cur].b;i++) { pp[i]+=node[cur].n; if(pp[i]>n1) { ok=false; break; } } dfs(cur+1); if(ok) { memcpy(p,pp,sizeof(pp)); dfs(cur+1); } } int main() { //freopen("data.in","r",stdin); while(scanf("%d %d %d",&n1,&n2,&n3)==3) { if(n1==0 && n2==0 && n3==0) break; for(int i=0;i<n3;i++) { scanf("%d %d %d",&node[i].a,&node[i].b,&node[i].n); } qsort(node,n3,sizeof(node[0]),cmp); memset(p,0,sizeof(p)); ans=0; dfs(0); printf("%d\n",ans); } return 0; }/* 二进制法求子类枚举,结果超时。 */ #include <cstdio> #include <cstdlib> #include <cstring> int n1,n2,n3; struct Node { int a; int b; int n; }node[25]; int ans; int cmp(const void *a,const void *b) { Node *pa=(Node *)a; Node *pb=(Node *)b; return pa->n-pb->n; } void dfs(int s) { bool ok=true; int p[10]; memset(p,0,sizeof(p)); for(int i=0;i<n3;i++) if(s & 1<<i) { for(int j=node[i].a;j<node[i].b;j++) { p[j]+=node[i].n; if(p[j]>n1) { ok=false; return; } } } if(ok) { int temp=0; for(int i=0;i<10;i++) temp+=p[i]; if(temp>ans) ans=temp; return; } } int main() { //freopen("data.in","r",stdin); while(scanf("%d %d %d",&n1,&n2,&n3)==3) { if(n1==0 && n2==0 && n3==0) break; for(int i=0;i<n3;i++) { scanf("%d %d %d",&node[i].a,&node[i].b,&node[i].n); } qsort(node,n3,sizeof(node[0]),cmp); ans=0; for(int i=0;i<(1<<n3);i++) dfs(i); printf("%d\n",ans); } return 0; }

分布式微服务企业级系统是一个基于Spring、SpringMVC、MyBatis和Dubbo等技术的分布式敏捷开发系统架构。该系统采用微服务架构和模块化设计,提供整套公共微服务模块,包括集中权限管理(支持单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等功能。系统支持服务治理、监控和追踪,确保高可用性和可扩展性,适用于中小型企业的J2EE企业级开发解决方案。 该系统使用Java作为主要编程语言,结合Spring框架实现依赖注入和事务管理,SpringMVC处理Web请求,MyBatis进行数据持久化操作,Dubbo实现分布式服务调用。架构模式包括微服务架构、分布式系统架构和模块化架构,设计模式应用了单例模式、工厂模式和观察者模式,以提高代码复用性和系统稳定性。 应用场景广泛,可用于企业信息化管理、电子商务平台、社交应用开发等领域,帮助开发者快速构建高效、安全的分布式系统。本资源包含完整的源码和详细论文,适合计算机科学或软件工程专业的毕业设计参考,提供实践案例和技术文档,助力学生和开发者深入理解微服务架构和分布式系统实现。 【版权说明】源码来源于网络,遵循原项目开源协议。付费内容为本人原创论文,包含技术分析和实现思路。仅供学习交流使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值