选择困难症

Js实现轮盘抽奖功能,一招帮你解决选择困难症 不知道今天自己该吃什么,一招帮你解决选择困难症。 阅读详情

题目描述
又到吃饭时间,Polo 面对饭堂里琳(fei)琅(chang)满(keng)目(die)的各种食品,又陷入了痛苦的抉择中:该是吃手(jiao)打肉饼好呢,还是吃豆(cai)角(chong)肉片好呢?嗯……又不是天秤座怎么会酱紫呢?
具体来说,一顿饭由M 个不同的部分组成(荤菜,素菜,汤,甜品,饮料等等),Polo 要在每个部分中选一种作为今天的午饭。俗话说的好,永远没有免费的午餐,每种选择都需要有一定的花费。长者常常教导我们,便宜没好货,最便宜的选择估计比较坑爹,可囊中羞涩的Polo 还要把钱省下来给某人买生日礼物,这该怎么办呢?
于是一个折中方案出来了:第K 便宜的组合要花多少钱?这就要靠你了。
输入
第一行两个数M,K,含义如上所述。
接下来M 行,先是一个整数Ai,表示第i 个部分有多少种选择。接下来用空格分开的Ai 个整数表示每种选择的价格。

输出
一行一个整数表示答案。
样例输入
2 2
2 1 3
2 2 2
样例输出
3

提示
【样例解释】
最便宜的选择是第一部分选择1 块钱的,第二部分选择2 块的。但由于第二部分里2 块钱有两种不同的选择,所以第二便宜的总花费仍然是3 块。
这里写图片描述

Solution

此题跟poj2442是一样的,以前也做过,但考试的时候却一直想不出做法。今天又整理了一下。
首先要一行一行来,设运行到i行。
s[j]表示1−(i−1)行第j小的方案的花费。
然后对于每行,要初始化一些数,分别把第i小的和该行第1个加起来。

void prepare(int i)
{
    tot=0;
    len=0;
    for(int j=1;j<=x;j++) 
    {
        tot++;
        heap[tot].l=j; //l表示它是s数组中第l小的
        heap[tot].r=1; //r表示它在该行取了第r个
        heap[tot].v=s[j]+a[i][1];
        up(tot);
    }
}

然后一直取最小的,(必须直接取,因为指针往后面移动的话显然更大)。然后那个最小的r指针+1,产生出一个新的数。

            len++;
            t[len]=heap[1].v;
            if(heap[1].r+1<=a[i][0]) //r还能往后加1
            {
                tot++;
                heap[tot].l=heap[1].l;
                heap[tot].r=heap[1].r+1;
                heap[tot].v=heap[1].v-a[i][heap[1].r]+a[i][heap[1].r+1];
            }

这样的好处就是,你只需要考虑r这个下标,并且不影响取m个最小值的正确性。

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#define ll long long
using namespace std;
int n,m,x,tot,len;
int a[11][500001];
ll s[100005],t[100005];
struct ty
{
    int l,r;
    ll v;
}heap[100005];
void up(int id)
{
    while(id/2>=1) 
    {
        if(heap[id].v<heap[id/2].v) 
        {
            swap(heap[id],heap[id/2]);
            id=id/2;
        }
        else break;
    }
}
void down(int id)
{
    while(id*2<=tot) 
    {
        int j;
        if(id*2+1>tot||heap[id*2].v<heap[id*2+1].v) j=id*2;
        else j=id*2+1;
        if(heap[id].v>heap[j].v) 
        {
            swap(heap[id],heap[j]);
            id=j;
        }
        else break;
    }
}
void prepare(int i)
{
    tot=0;
    len=0;
    for(int j=1;j<=x;j++) 
    {
        tot++;
        heap[tot].l=j;
        heap[tot].r=1;
        heap[tot].v=s[j]+a[i][1];
        up(tot);
    }
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++) 
    {
        scanf("%d",&a[i][0]);
        for(int j=1;j<=a[i][0];j++) scanf("%d",&a[i][j]);
        sort(a[i]+1,a[i]+a[i][0]+1);
    }
    x=a[1][0];
    for(int i=1;i<=x;i++) s[i]=a[1][i];
    for(int i=2;i<=n;i++) 
    {
        prepare(i);
        while(1) 
        {
            len++;
            t[len]=heap[1].v;
            if(heap[1].r+1<=a[i][0]) 
            {
                tot++;
                heap[tot].l=heap[1].l;
                heap[tot].r=heap[1].r+1;
                heap[tot].v=heap[1].v-a[i][heap[1].r]+a[i][heap[1].r+1];
            }
            swap(heap[1],heap[tot]);
            tot--;
            down(1);
            x=max(x,len);
            if(len==m||tot==0) break;
        }
        for(int j=1;j<=x;j++) s[j]=t[j];
    }
    cout<<s[m];
    return 0;
}
NOIP10-18提高组试题及官方数据 收集整理2010年至2018年NOIP联赛提高组复赛试题及官方测试数据,方便教学及OJ测试 立即下载

相关推荐

Dify实战:智能邮件工作流配置全解析

本文详细解析了如何利用Dify平台配置智能邮件工作流,实现邮件处理的自动化与智能化。内容涵盖从获取邮箱授权、安装插件、安全配置环境变量,到构建邮件发送工作流、创建调用该工作流的智能体(Agent)的完整步骤,并分享了连接知识库实现智能客服、定时发送日报等进阶自动化场景,旨在帮助用户显著提升邮件处理效率。

t8u9v0w1x的博客 795

poj2442(优先队列完成贪心思想)

/*此题思想是通过一个优先队列来完成需要不断维护的一个固定长度有序的序列,优先队列大大减少了很多操作*/ #include #include #include using namespace std; int a[3000]; int main() { int t; while(scanf("%d", &t) != EOF){ while(t--){

small__snail__5的博客 549

单细胞测序避坑指南:为什么你的免疫组库数据总出问题?5‘转录组7个关键细节

本文深度解析了5'端单细胞测序技术在免疫组库研究中的应用与常见问题。文章从5'端建库的分子机制入手,重点剖析了其在捕获TCR/BCR序列上的独特优势,并系统梳理了从样本处理、文库构建到数据质控全流程中7个最易出错的细节,为研究者提供了一份实用的避坑指南,旨在帮助提升免疫组库数据的质量和可靠性。

weixin_29208327的博客 482

【 NOIP2017】SummerTraining0720

T1 选择困难症 T2规避 T3 反抗希碧拉系统续

Lhq 504

微积分,用编程理解高数(python,C,C++)

很好理解,导数中,x是哪一点的导数,dx是精准度,y等于f(x)即函数。导数结果就是瞬时变化率。积分很好理解,a为下限,b为上限,y为函数,结果就是y=f(x)下a到b的面积。只要用定积分代入a=0,b=10(10s)y=x(1*x=1)就得到结果。F(x)为原函数,即微分后的函数是f(x)dx,微分前是F(x)一列车初始速度为10m/s,加速度为。才几十行代码,微积分也不是很难啊。,问速度达到20时车走了多少米。

linhhanpy的博客 1178

Fastjson2 2.0.26反序列化漏洞深度剖析:从原理到PoC构造

本文深度剖析了Fastjson2在2.0.26及之前版本中存在的反序列化漏洞。该漏洞允许攻击者通过构造包含恶意TemplatesImpl对象的JSONArray,并利用BadAttributeValueExpException触发,在反序列化过程中实现远程代码执行。文章从漏洞原理、PoC构造、利用链分析到防御建议,提供了全面的技术解读,帮助开发者和安全人员理解其危害并采取应对措施。

d3e4f的博客 1051

noip10-04-14

选择困难症(perdant) (Standard IO) Time Limits: 1000 ms  Memory Limits: 131072 KB      Goto ProblemSet Description 又到吃饭时间,Polo面对饭堂里琳(fei)琅(chang)满(keng)目(die)的各种食品,又陷入了痛苦的抉择中:该是吃手(

cyc66的专栏 1351

Java服务端实现Google Pay支付功能

全网最全代码、最清晰服务端处理Google Pay,最清晰讲解Google Pay集成逻辑。

jack2350536098的博客 1万+

[JOJZ]3855.选择困难症

【问题描述】又到吃饭时间,Polo 面对饭堂里琳(fei)琅(chang)满(keng)目(die)的各种食品,又陷入了痛苦的抉择中:该是吃手(jiao)打肉饼好呢,还是吃豆(cai)角(chong)肉片好呢?嗯……又不是天秤座怎么会酱紫呢?具体来说,一顿饭由 M 个不同的部分组成(荤菜,素菜,汤,甜品,饮料等等),Polo 要在每个部分中选一种作为今天的午饭。俗话说的好,永远没有免费的午餐,每种...

weixin_34391854的博客 290

AIGC游戏开发:如何评估生成内容的玩家满意度?

如何量化评估生成内容对玩家体验的影响?本文聚焦AIGC生成的游戏内容(包括但不限于剧情、关卡、NPC对话、道具),系统探讨玩家满意度的评估方法论,覆盖主观与客观评估、静态与动态内容、短期与长期体验等场景。核心概念:定义AIGC与玩家满意度的关联维度;评估方法:主观(问卷/访谈)与客观(行为/生理数据)评估的技术细节;数学模型:构建多指标融合的评估模型;实战案例:以AIGC生成关卡为例,演示从数据采集到模型落地的全流程;工具资源:推荐数据采集、分析与建模的工具链;

AI天才研究院 1224

大学生数学建模赛题解析及优秀论文-2021电工杯A题高铁牵引供电系统运行数据分析及等值建模(附Python代码)

我国是世界上电气化铁路运营里程最长、服役电力机车型号最多、运营最 繁忙的国家。截至 2020年底,我国铁路年消耗电量约800亿千瓦时,约占三峡 年总发电量的 80%。图1为高速铁路牵引供电系统示意图,主要包括牵引变电所、牵引网和动车 组。牵引变电所将 220kV三相电压转换为满足电力机车运行的27.5kV单相电压, 其核心元件是牵引变压器。牵引网由馈线、接触网、钢轨、回流线等组成,完成 对电力机车的送电任务。...

wenyusuran的专栏 3169

吃饭困难选择症python_吃饭选择困难症

吃饭选择困难症(选择大转盘)是一款生活服务软件,这款软件可以帮助用户们不断的做出决定,你是不是 也在吃饭的时候老是犹豫要吃什么,今天小编带来的这款软件会帮助用户们不断的做出选择,可以通过转盘,游戏,朋友投票来选择,需要的用户快来下载体验吧。吃饭选择困难症介绍吃饭选择困难症可以帮助选择困难的同学,做出最好的决定,大家可以一起投票,更加的舒适,让你的生活不再陷入困难,它可以帮助你解决日常的小决定,十分...

weixin_39707941的博客 2404

【38】OpenCV C++实战篇——基于多项式插值的亚像素边缘定位算法

亚像素边缘定位算法实现 本文介绍了一种基于多项式插值的亚像素边缘定位算法,用于提高图像边缘检测的精度。文章首先分析了传统像素级边缘检测方法(如Canny、Sobel)的局限性,指出其在测量应用中的精度不足问题。 算法核心 梯度计算:使用8个方向模板进行卷积运算生成梯度图像 亚像素定位:采用多项式插值方法改进边缘定位精度 实现步骤: 生成8个方向的卷积模板(0°、45°、90°等) 利用filter2D函数计算各方向梯度 通过归一化处理显示梯度图像 代码特点 提供完整的C++实现代码 包含模板生成、梯度计算和

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1099

技术选择困难症

说到技术选择困难症,相信很多人都深以为然吧!做技术开发的,总会面临这样的问题,Tim在文章里说了不少原因,最重要的可能是跟我们的教育习惯有关! 我们在学校所受的教育就是既定的,安排好的一些套路学习,不需要去选择,好坏结果也不用自己来承担,当然这不是绝对的,老师和学校不负责任那你也是毕业...

chirendan6562的博客 153

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

决策树算法——选择困难症的“良药”

“To be , or not to be:that is the question”(生存还是毁灭:这是一个问题),这是著名的莎士比亚悲剧《哈姆雷特》中的主人公一句非常经典的独白,也是数百年来经常困扰人们的选择问题。这段哈姆雷特式问题的台词,经常用来形容一个人在犹豫在思考时候的两难情况,用现代人的说法就是“选择困难症”。人们经常纠结于各种选择,生怕选错了,就会陷入“蓝瘦香菇”的困境。 人们在面临选择难题的时候经常想:如果能未卜先知,那该多好。实际上,在人工智能领域,就有一种预测算法,利用树杈的.

AI课工场 519

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

选择困难症[NC13594]折半搜索+二分

选择困难症[NC13594]折半搜索+二分 题目描述 小L有严重的选择困难症。 早上起床后,需要花很长时间决定今天穿什么出门。 假设一共有k类物品需要搭配选择,每类物品的个数为Ai,每个物品有一个喜欢值Vj,代表小L对这件物品的喜欢程度。 小L想知道,有多少种方案,使得选出来的总喜欢值>M 需要注意,每类物品,至多选择1件,可以不选。 输入描述: 多组输入 每组数据第一行输入k M(k<=6,1<=M<=1e8),表示有多少类物品 接下来k行,每行以Ai(1<=Ai<=

addmission的博客 189

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

dfs--选择困难症牛客

链接:https://ac.nowcoder.com/acm/problem/13594 来源:牛客网 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 小L有严重的选择困难症。 早上起床后,需要花很长时间决定今天穿什么出门。 假设一共有k类物品需要搭配选择,每类物品的个数为Ai...

艾 560

选择困难症--dfs

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、题目二、思路总结 前言 dfs类型训练 一、题目 链接:https://ac.nowcoder.com/acm/problem/13594 来源:牛客网 小L有严重的选择困难症。 早上起床后,需要花很长时间决定今天穿什么出门。 假设一共有k类物品需要搭配选择,每类物品的个数为Ai,每个物品有一个喜欢值Vj,代表小L对这件物品的喜欢程度。 小L想知道,有多少种方案,使得选出来的总喜欢值>M 需要注意,每类物品,至多

qq_45786716的博客 453

选择困难症必看-把选择交给python~

【代码】选择困难症必看-把选择交给python~

weixin_59907082的博客 446

python分支与函数:拯救选择困难症,用编程来解决午餐选择难题

在人生中,有三大难题:早上吃什么、中午吃什么,以及晚上吃什么。这个小小的Python程序,不仅帮助了我的朋友解决了午餐选择的难题,也让我意识到编程的力量。这个函数带有两个参数,根据输入的美食类型和预算,判断今天适合吃什么食物,并返回食物名。最近,我遇到了一个有选择困难症的朋友,她经常抱怨午餐选择的难题。希望这个小小的编程练习能够启发更多的人,让大家意识到编程对于解决生活中的难题有着巨大的帮助。然后,我编写了一个Python程序,根据她想吃的食物类型和午餐预算,来帮她做出选择。函数,从而得到程序的运行结果。

fox_kang的博客 294

心觉:购物选择困难症! 为什么你总是挑不出“最完美”的商品?

有时候,你会发现更好的产品不送运费险,对于有选择困难症的同学,运费险其实挺害人的,因为又多了一个选择,会干扰选择;建议选更好的,这和投资是一样的,要有试错的预算,勇于承担试错的成本,才能选择更好的;没有任何产品是完美的,重要的是它能满足你大部分需求,而不是永远在追求那个不存在的“最完美选项”比如,杨贵妃打算买一台咖啡机,她看了十几款,结果花了大量时间纠结咖啡机的颜色、材质,甚至还在意配件的细微差别。这种完美主义让我们在购物时一拖再拖,耗费了大量的时间和精力,最终还是买不到完美的,因为本身就没有完美的。

帮助100万人颠覆负面潜意识,实现人生蜕变,培养1万名潜意识开发导师 1410

选择困难症__牛客网

小L有严重的选择困难症。 早上起床后,需要花很长时间决定今天穿什么出门。 假设一共有k类物品需要搭配选择,每类物品的个数为Ai,每个物品有一个喜欢值Vj,代表小L对这件物品的喜欢程度。 小L想知道,有多少种方案,使得选出来的总喜欢值&amp;gt;M 需要注意,每类物品,至多选择1件,可以不选。 输入描述: 多组输入 每组数据第一行输入k M(k&amp;lt;=6,1&amp;lt;=M&amp;lt;=1e8),表示有多少类...

CLIII的博客 1167

android小项目——FateChoice,选择困难症神器

FateChoice项目说明 FateChoice针对有选择困难症的人,提供添加选择主题,随机做一个抉择的功能。 暂时实现了主界面,添加主题,进行随机选择的功能。分为三个activity 项目原理十分简单。存储采用了 SharedPreferences,主界面根据存储的内容进行动态布局。 技术难点 每次添加主题后返回主界面需要刷新一遍,所以采用的技术方案是跳转到添加主题的activ...

windyear 627
上一篇: bzoj 1821 [JSOI2010]Group 部落划分
下一篇: 单词检索
ACTY
博客等级 码龄12年 21粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值