Uva Oj 1388 - Graveyard

本文介绍了一种通过构建特殊结构体来实现点匹配优化的方法。该算法首先定义了原始点和新点,并通过排序确定新点与原始点之间的最优距离。接着记录下这些距离,并在前n个距离中寻找最小总成本,最终输出优化后的结果。

依旧是训练指南上的例题,不过这个事我自己写的

和lrj中的没有关系

1Y

建了个结构体来标记这个点是原来的点还是新的点

然后排序

接下来找到序列中的新出现的点

如果这个点左边(右边)是原本点,则记录距离,并更新到z中

如果两边都不是原本点,那么原本点一定不会舍近求远,无视掉就好了

接下来去z的前n项求和,表示n个原本点的最优选择分别是某n个新点

然后转化输出就好了

#include<stdio.h>
#include<vector>
#include<stdlib.h>
struct tmd{int x,y;};
tmd q[3010],z[3010];
int cmp(const void *a,const void *b){
	tmd *p=(tmd *)a;
	tmd *q=(tmd *)b;
	tmd x=*p,y=*q;
	return x.x-y.x;
	}
int min(int a,int b){
	if(a>b)return b;
	return a;
	}
int main(){
	int n,m;
	while(scanf("%d%d",&n,&m)!=EOF){
		int i;
		for(i=0;i<n;i++)q[i]=(tmd){(n+m)*i,1};
		for(i=0;i<m+n;i++)q[i+n]=(tmd){n*i,-1};
		qsort(q,m+n+n,sizeof(tmd),cmp);
		int rs=0;
		int pz=0;
		for(i=0;i<m+n+n;i++){
			if(q[i].y==-1){
				int temp=n*(m+n);
				if(i>0&&q[i-1].y==1)temp=min(temp,abs(q[i-1].x-q[i].x));
				if(i+1<m+n+n&&q[i+1].y==1)temp=min(temp,abs(q[i+1].x-q[i].x));
				if(temp!=n*(m+n))z[pz++]=(tmd){temp,0};
			//	printf("z[%d].x=%d,y=%d\n",pz-1,z[pz-1].x,z[pz-1].y);
				}
		//	printf("q[%d].x=%d,y=%d\n",i,q[i].x,q[i].y);
			}
		qsort(z,pz,sizeof(tmd),cmp);
	//	for(i=0;i<pz;i++)printf("z[%d].x=%d,y=%d\n",i,z[i].x,z[i].y);
		for(i=0;i<min(n,pz);i++)rs+=z[i].x;
		double res=(double)rs/(n*(n+m))*10000;
		printf("%.4lf\n",res);
		}
	return 0;
	}


多角色体系 支持管理员、商家、消费者三种角色,权限分级管控: 管理员:负责平台整体配置、用户审核、数据监控等全局操作。 商家:管理店铺信息、发布商品、处理订单、回复评价等。 消费者:浏览商品、加入购物车、下单支付、评价商品等。 实现用户注册(手机号 / 邮箱验证)、登录(支持密码 / 验证码 / 第三方登录)、个人信息管理(头像、收货地址、密码修改)。 权限精细化控制 商家仅能管理自家店铺及商品,消费者仅能查看和购买商品,管理员拥有全平台数据访问权限。 二、商品管理功能 商品信息维护 商家可发布商品:填写名称、分类(如服饰、电子产品)、子类别(如手机、笔记本)、规格(尺寸、颜色、型号)、价格、库存、详情描述(图文)、物流信息(运费、发货地)等。 支持商品上下架、库存调整、信息编辑,系统自动记录商品状态变更日志。 商品分类与搜索 按多级分类展示商品(如 “数码产品→手机→智能手机”),支持自定义分类体系。 提供智能搜索功能:按关键词(名称、品牌)搜索,支持模糊匹配和搜索联想;结合用户浏览历史对搜索结果排序(优先展示高相关度商品)。 商品推荐 基于用户浏览、收藏、购买记录,推荐相似商品(如 “浏览过该商品的用户还买了…”)。 首页展示热门商品(销量 TOP10)、新品上架、限时折扣等推荐列表。 三、订单与交易管理 购物车与下单 消费者可将商品加入购物车,支持修改数量、选择规格、移除商品,系统自动计算总价(含运费、折扣)。 下单流程:确认收货地址→选择支付方式(在线支付、货到付款)→提交订单→系统生成唯一订单号。 订单处理流程 订单状态跟踪:待支付→已支付→商家发货→物流运输→消费者收货→订单完成,各状态变更实时通知用户。 商家端功能:查看新订单提醒、确认发货(填写物流单号)、处理退款申请(需审核理由)。 消费者端功能:查看订单详情、追踪物流、申请退款 / 退货、确认收货。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值