灰姑娘的水晶鞋(NOIP模拟赛Round 7)

【问题描述】

传说中的水晶鞋有两种颜色:左边的水晶鞋是红色,右边的是蓝色,据说穿上它们会有神奇的力量。

灰姑娘要找到她所有的n双水晶鞋,它们散落在一条数轴的正半轴上,坐标各不相同,每双水晶鞋还有一个权值wi。灰姑娘一开始位于原点,当她将其中一双水晶鞋拿回原点时,那双水晶鞋就改变了它原来的位置,这时还固定于数轴正半轴上的那些水晶鞋就会因为共鸣而发生升华现象。升华过程的损耗为:被取走的水晶鞋发生的位移*(还固定在数轴正半轴上的编号与被取走的水晶鞋编号对m取模同余的水晶鞋的w权值之和)。举个例子:

现在灰姑娘想得到所有的水晶鞋,但是她又希望升华的消耗最少,因为她希望能在秋之国即将举办的夏日祭里赢得更多的掌声。所以她找到了你帮忙。

【数据范围】

对于25%的数据,n<=10;

对于另外5%的数据,m=n;

对于60%的数据,n<=1000;

对于另外10%的数据,m=1;

对于100%的数据,0<n,m<=200,000,0<坐标范围<=10^9,0<ai,bi<=10^4。

——————————————我是分割线——————————————

好吧,这道题一看就是贪心,但是怎么贪呢?换句话说,怎么排序呢?

首先我们假设取i比取j更优

则得到下列不等式

所以我们只需要按照这个不等式排序就好啦

注意!本题会爆long long 所以要开2个long long进行处理!

下面贴代码

#include<cstdio>
#include<algorithm>
#define INF 1000000000000000000
using namespace std;
int d[200005],w[200005];
int paixu[200005];
unsigned long long sum[200005];
unsigned long long ans1,ans2;
int n,m;
bool cmp(int a,int b){return 1LL*d[a]*w[b]<1LL*d[b]*w[a];}
void add(unsigned long long a){ans2+=a;if(ans2>INF)ans1++,ans2-=INF;}
int main(){
    freopen("crystal.in","r",stdin);
    freopen("crystal.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++){
        scanf("%d%d",&d[i],&w[i]);
        paixu[i]=i; 
        sum[i%m]+=w[i];
    }
    sort(paixu+1,paixu+n+1,cmp);
    for(int i=1;i<=n;i++)
    {
        sum[paixu[i]%m]-=w[paixu[i]];
        add(d[paixu[i]]*sum[paixu[i]%m]);
    }
    if(ans1)printf("%lld%018lld",ans1,ans2);
    else printf("%lld\n",ans2);
    fclose(stdin);
    fclose(stdout);
}

 

转载于:https://www.cnblogs.com/ghostfly233/p/6937447.html

运动员运动表现纵向数据集 纵向运动员运动表现数据集包含250名运动员10000条训练会话重复观测记录,涵盖篮球、排球、足球、跑步、游泳和无损伤跑步者六个运动类别。包括速度、加速度、反应时间、准确性、耐力、力量、敏捷性等表现变量,以及训练负荷、疲劳、恢复和训练成效指标。用于研究和实验分析。 立即下载

相关推荐

MATLAB中读写Zarr文件的接口。Zarr是一种用于科学数据的文件格式(类似于HDF5和netCDF),在云存储和并行计算环境中进行了优化.rar

MATLAB中读写Zarr文件的接口。Zarr是一种用于科学数据的文件格式(类似于HDF5和netCDF),在云存储和并行计算环境中进行了优化.rar

双立柱油脂加注机.rar

双立柱油脂加注机.rar

YOLO算法人像特写场景手势目标检测数据集-106张-包含 VOC 和 Yolo 格式标签-支持多种算法训练模型.zip

下拉可见数据集可视化效果示意。 YOLO人像特写场景手势目标检测数据集 目标类别:['peace', 'shaka', 'thumbsup'] 中文类别:['和平手势', '夏威夷手势', '竖起大拇指'] 训练集:79 张 验证集:16 张 测试集:11 张 总计:106 张 该数据集提供了data.yaml文件,内容如下: train: ../train/images val: ../valid/images test: ../test/images nc: 3 names: ['peace', 'shaka', 'thumbsup']

食品包装礼品包装设备.rar

食品包装礼品包装设备.rar

全自动iphone贴膜机3.rar

全自动iphone贴膜机3.rar

曲轴箱加工专机.rar

曲轴箱加工专机.rar

切线机.rar

切线机.rar

用Voronoi-Fresnel相位进行衍射无透镜成像的优化Matlab代码.rar

用Voronoi-Fresnel相位进行衍射无透镜成像的优化Matlab代码.rar

2026-2032全球与中国磷酸铁锂(LiFePO4)市场现状及未来发展趋势 Sample-yb.pdf

2026-2032全球与中国磷酸铁锂(LiFePO4)市场现状及未来发展趋势 Sample-yb.pdf

追踪重量选择算法 (TWSA) 对 OpenSim 剩余减少算法的优化 Matlab代码.rar

追踪重量选择算法 (TWSA) 对 OpenSim 剩余减少算法的优化 Matlab代码.rar

全自动端子连接器压入检测设备.rar

全自动端子连接器压入检测设备.rar

【有功-无功协调优化】基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化研究(Matlab代码实现)

内容概要:本文围绕基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化问题展开研究,旨在通过智能优化算法有效降低网络损耗、提升电压质量并增强配电系统的运行效率。研究系统地介绍了小生境粒子群算法的改进策略,构建了包含功率平衡、电压安全、设备容量等多重约束的多目标优化模型,并采用IEEE标准测试系统进行仿真验证,充分证明了该方法在处理多目标、多约束优化问题上的优越性能。全文涵盖从数学建模、算法设计、约束处理到多目标折衷解选择的完整流程,并配套提供了完整的Matlab代码实现,便于读者复现结果与进行二次开发。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事电力系统优化、智能算法研究或相关领域工作的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决配电网中有功与无功功率的协同优化问题,实现节能降耗与电压稳定;②学习并掌握多目标粒子群算法及其小生境改进策略在电力系统中的具体应用与实现细节;③通过Matlab代码进行仿真,加深对智能优化算法在工程实践中应用的理解,提升科研与工程实践能力。; 阅读建议:此资源以理论分析与代码实现紧密结合的方式呈现,建议读者在深入理解算法原理和模型构建的基础上,结合所提供的Matlab代码进行仿真实验,重点关注参数设置、收敛性分析与结果可视化等关键环节,从而实现从理论认知到实践验证的完整闭环。

数控贴膜机.rar

数控贴膜机.rar

上一篇: 连续和查询问题
下一篇: Codeforces Round #376 (Div. 2) D. 80-th Level Archeology —— 差分法 + 线段扫描法
weixin_30249203
博客等级 码龄11年 94粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值