LA 3971 组装电脑

SSD固件开发实战:从NAND物理特性到FTL算法落地 SSD固件开发本质是在NAND闪存的物理约束上构建可靠存储抽象。NAND具有擦除粒度远大于写入、擦除寿命有限、读取干扰与数据保持力衰减三大固有特性,直接决定了FTL(闪存转换层)必须承担地址映射、垃圾回收、磨损均衡、坏块管理等核心调度职能。理解这些底层机制,是解决‘ssd升级win11迁移失败’‘rk3588混合存储识别异常’‘killdisk安全擦除不彻底’等工程问题的关键。本文聚焦SSD固件开发中的真实产线逻辑,覆盖从NAND时序解读、FTL最小原型实现,到GC策略调优、PLP断电保护及WHQL兼容性加 阅读详情

题目:

传送门

题解:

大意是给一些零件(属性:种类,名称(没用),加格,品质),电脑的品质取决于最低的配件品质,问有的钱能买的最高的电脑品质。



这个题一看就是二分,O(n^2 * logn * T)的算法也很好想,就是排序之后二分下标,贪心可check。字符串的话,我使用的是类似离散的方法编号而避免了用map,因为map+string会很慢(但是string还是很慢),虽然实际上复杂度远小于上界,但是n=1000时O(n^2 * logn * T)=10^9,感觉复杂度太高了。我想到一种解法是O(n * (logn)^2 * T)可是老是写不对,因为我就是个大蒟蒻。我想的是先对品质也离散化,将品质作为权值,插入到权值线段树中(这样会建n棵树,不过总时间复杂度仍然是O(nlogn)),然后这个位置放它的cost,二分的时候直接在权值线段树上query,log的时间就能得到最小的cost了。
再回顾一下,
T组数据 T
|——(类型离散 )nlogn + (品质离散) nlogn +(建树一共) nlogn
|——(二分,注意去二分下标而不是二分答案,二分答案是log1e9的) logn
|———–(枚举类型,对于每个类型query一次) nlogn
这样差不多就是O(T * n * (logn) ^ 2 )的了,但是由于本人太弱未能将其实现,若有实现者请一定告诉我(这种方法跑的快不快qwq)。

代码:

这里是O( n^2 * logn * T)的算法。
//QWsin
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=1000+10;
const int INF=(1<<30);
struct Node{
    int kind,cost,qua;Node(){}
    Node(int k,int c,int q):kind(k),cost(c),qua(q){}
}a[maxn];

vector<Node>v[maxn];
int n,V,qua[maxn];

string tmp[maxn],s[maxn];

inline int read()
{
    int ret=0;char ch=getchar();
    while(ch<'0'||ch>'9') ch=getchar();
    for(;ch>='0'&&ch<='9';ch=getchar()) ret=ret*10+ch-'0';
    return ret;
}

inline int check(int ans,int k)
{
    int sum=0;
    for(int i=1;i<=k;i++)
    {
        int Min=INF,sz=v[i].size();
        for(int j=0;j<sz;j++) 
            if(v[i][j].qua>=ans) Min=min(Min,v[i][j].cost);
        if(Min==INF||(sum+=Min)>V) return 0;
    }
    return 1;
}
void solve()
{
    cin>>n>>V;
    for(int i=1;i<=n;i++) v[i].clear();
    for(int i=1;i<=n;i++)
    {
        cin>>s[i];tmp[i]=s[i];
        scanf("%*s");a[i].cost=read();
        qua[i]=a[i].qua=read();
    }
    sort(tmp+1,tmp+n+1);
    int k=unique(tmp+1,tmp+n+1)-tmp-1;
    for(int i=1;i<=n;i++) a[i].kind=lower_bound(tmp+1,tmp+k+1,s[i])-tmp;
    for(int i=1;i<=n;i++) v[a[i].kind].push_back(a[i]);

    sort(qua+1,qua+n+1);
    int l=1,r=n,ans;
    while(l<=r)
    {
        int mid=((l+r)>>1);
        if(check(qua[mid],k)) ans=qua[mid],l=mid+1;
        else r=mid-1;
    }
    printf("%d\n",ans);
}

int main()
{
    int T;cin>>T;
    while(T--)solve();
    return 0;
}
Hyper-V显卡直通实战:手把手解决Windows 11虚拟机错误码43(附完整参数配置) 本文详细解析了在Windows 11 Hyper-V虚拟机中配置显卡直通时遭遇错误码43的根源,并提供了从环境检查、核心PowerShell命令(如Set-VMGpuPartitionAdapter)配置到虚拟机内驱动替换的完整实战解决方案,帮助用户彻底解决显卡驱动无法加载的问题。 阅读详情

相关推荐

c764-基于Vue的实时温湿度监控系统

🌟 毕业设计指导交流 🌟 同学们好!作为一名计算机专业的技术爱好者,我在毕业设计领域积累了一些经验,希望能和大家分享交流。从选题到答辩,欢迎一起探讨技术问题。💡 技术方向: 熟悉Java全栈(SSM/Spring Boot)、Python数据分析、微信小程序/安卓开发等技术栈,可以互相学习项目开发经验。📂 学习资源: 整理了一些开源项目案例(含代码和文档),需要参考的同学可以留言讨论,也欢迎分享你的项目经验。🛠 交流内容:✨ 欢迎在评论区留言讨论,一起进步!记得遵守社区规范,保持学术

weixin_39513710的博客 1070

LA3971 组装电脑

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1972 题意: 有 b 块钱, n个配件,配件有 种类,名字,价格,和品质。要求每一类都要有,价格总和不能超过 b,最后要求最低的品质的那个配件的品质要最...

weixin_33971205的博客 139

手把手教你用XC7A35T FPGA搭建低成本机器视觉系统(含开发板选型指南)

本文详细介绍了如何利用AMD(原Xilinx)Artix-7系列中的XC7A35T FPGA芯片,搭建一套低成本的机器视觉系统。内容涵盖从芯片选型深度剖析、开发板(如黑金AX7035B)对比指南,到使用Vivado创建工程、编写图像处理模块(如RGB转灰度),以及资源优化和与上位机(如OpenCV)协同工作的完整流程,旨在为开发者提供一套可实践的高性价比硬件加速视觉解决方案。

beta5的博客 353

Assemble(组装电脑,LA 3971)

题目链接 https://vjudge.net/problem/UVALive-3971 题意 你有b块钱,想要组装一台电脑。给出n个配件各自的种类、品质因子和价格,要求每种类型的配件各买一个,总价格不超过b,且品质最差的配件的品质因子应尽量大。 分析 1.考虑暴力解法 将n个配件分成m类,每一类选一个品质因子不小于q的价格最低的配件。如果总价格不超过b,则品质因子q满足条件。 而要

EnjoyingAC的博客 406

局部,全局(外部),static等变量详解

首先,必须明白一个程序是包含若干个源文件,每个源文件又是包含若干个函数,每个源文件、函数中又定义了若干个变量。但是每个变量都有自己的作用范围,也就是自己的作用域。只有在作用域内才可以访问变量。 变量的有效范围称为变量的作用域( scope)。归纳起来,变量有4种不同的作用域:文件作用域( file scope)、函数作用域( function scope)、块作用域(block sc...

归根结底不优秀的博客 1324

【干货】S7-PLCSIM Advanced V3.0 无法启动实例( Error Code:-30,LicenseNotFound)问题解决方法

【干货】S7-PLCSIM Adavanced V3.0 无法启动实例( Error Code:-30,LicenseNotFound)问题解决方法

handinvv的博客 5万+

LA 3971 Assemble 组装电脑

题意:给定电脑的n个配件,每个配件有类型,名字(没用的信息),价格和品质因子。要求每种类型的配件各买一个用于组装电脑,总价格不超过b元。求所有可能的方案中品质因子最差的那个配件的品质因子最大能是多少。 非常的暴力。直接枚举每个配件的品质因子作为品质因子最差的配件,判断该配件的品质因子能否满足要求。能满足则更新最大值。判断方法很简单,对于每种类型的配件选择品质因子不

FirstLucker 845

MCP+A2A:从实验室到生产环境的落地之旅

本文通过实际项目中的落地案例,展示了 MCP+A2A 协议结合使用的强大功能和广泛适用性。同时,我们也探讨了开发者社区的贡献、与其他技术的融合,以及未来技术趋势的展望。希望本文能够帮助读者更好地理解如何将这一架构从实验室推向生产环境,推动 AI 技术的实际应用。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1494

LA3971

Problem: Assemble Descripiton: 一个人要买一些零件组装一部电脑,现在有很多不同种类的不同类型的零件供他选择。问你在不超预算的情况下买到品质最优的电脑是多少?(电脑的品质取决于零件中质量最差的品质)。 Solution: 典型的max{min}max\{min\}。二分。那么如何写判断函数呢,我们可以这么做:我们选择一种零件中最便宜但是大于等于这个品质的零件来组装,那

FlushHip 873

AUTOSAR从入门到精通-汽车电子电气架构(EEA)

EEA(Electrical/Electronic Architecture),电子电气架构,是首先由德尔福公司提出的,集合汽车的电子电气系统原理设计、中央电器盒的设计、连接器的设计、电子电气分配系统等设计为一体的整车电子电气解决方案的概念。通过EEA的设计,可将动力总成、驱动信息、娱乐信息等车身信息转化为实际的电源分配的物理布局、信号网络、数据网络、诊断、容错、能量管理等的电子电气解决方案。

getusushu的博客 859

UNet 改进(45):轻松集成Triplet Attention,让分割效果起飞!

本文介绍了一种在U-Net架构中集成CSRA残差注意力模块的方法。该模块通过结合通道注意力和空间注意力机制,在U-Net的瓶颈层对特征进行自适应重标定,使网络聚焦于关键区域。文章详细解析了代码实现,包括基础构建块DoubleConv、核心CSRA模块原理及其在U-Net中的战略位置集成。测试表明该模型能保持标准U-Net的输入输出维度,同时通过注意力机制提升特征选择能力。这种模块化设计便于在不同任务中应用,为图像分割领域提供了有效的注意力增强方案。

2401_82355416的博客 104

组装电脑 LA 3971 二分答案

题目: 给定电脑的n(n<1000)个配件,每个配件有类型,名字(没用的信息),价格和品质因子。要求每种类型的配件各买一个用于组装电脑,总价格不超过b元。求所有可能的方案中品质因子最差的那个配件的品质因子最大能是多少。 分析: 看着这数据,觉得暴力也可做,枚举每个品质因子,找出满足要求的最大的。但如果数据大一点,就不能这么暴力了,就要二分答案去找最优解了。...

182

自适应滤波-----LMS(Least Mean Square)算法

自适应滤波的意义所在 自适应滤波器解决非平稳的过程,因为实际信号的统计特性可能是非平稳的或者是未知的。 自适应滤波器的特点: 1.没有关于待提取信息的先验统计知识 2.直接利用观测数据依据某种判据在观测过程中不断递归更新 3.最优化 自适应滤波分类: 处理器的结构划分:横向结构、格型结构 重复一次计算自适应需要的数据划分:成批处理法、递归处理法 按调节算法...

heda3的博客 10万+

LA3971 组装电脑

思路:二分,就是在不超过b的预算下,使得品质的最小值最大化。关键还是判断函数吧。    假设答案为x,判断函数,就是每一个种类的配件的品质最基本的品质要大于x,然后找出最小的值。这样的配件品质之和的价格要小于b元。    则表明x是答案之一。但是,不一定是最优答案。最后答案就要看二分的方向了。 #include<iostream> #include<string&gt...

weixin_30882895的博客 72

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LA3971组装电脑

题意: 你有b块钱,想要组装一台电脑,给你提供一些零件,每种零件提供一个或几个,组装电脑的前提是每种零件只能也必须选择一个,每种零件都有自己的种类,名字,价格,还有品质,要求是在能配成电脑的前提下所有零件中最小的品质最大(品质越大越好)。 思路: 最小的最大,第一反应就是二分,这个...

墨鱼菜鸡 265

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Assemble LA3971 组装电脑

组装电脑 #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;math.h&gt; #include&lt;vector&gt; #include&lt;map&gt; using namespace std; int cnt; //组件类型数目 map&lt;string,i...

qq_40861069的博客 223

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LA3971 组装电脑 --- 二分答案

算法竞赛入门经典(训练指南)第28页,例题12 注意二分的时候M = (L+R+1)/2,二分法为了避免死循环,根据情况M=(L+R)/2 || M=(L+R+1)/2 题解对输入的多个字符串编号采用了map<>的写法以后可以借鉴下 题解就是假设最小的品质因子是x,则删除所有品质因子小于x的配件,然后判断剩下配件能否组装出一个总价小于b的电脑,能的话,说明答案ans...

。 280

UVA-LA 3971 组装电脑 二分枚举

题目链接:UVA-LA 3971 题意:用不超过b的预算,购置电脑硬件,每种都需要购办一个,且要使品质最差的硬件的品质数最大。 题解:二分枚举,在每种硬件里都选择比不小于当前品质(记为k)高硬件,如果预算不超过b,那么ans >= k;如果超过b,ans AC code: #include #include #include

退役ACMer 534

LA 3971 组装电脑(二分)

https://vjudge.net/problem/UVALive-3971 题意:你有b块钱,想要组装一台电脑。给出n个配件各自的种类、品质因子和价格,要求每种类型的配件各买一个,总价格不超过b,且“品质最差配件”的品质因子应尽量大。 思路: 最小值最大,很明显要二分。 那么怎么判断这个品质因子下钱是够用的呢? 对于每个类型的配件来说,买最便宜的复合品质因子的配件,如果这样都大...

weixin_30344131的博客 207

组装电脑(Assemble,NWERC 2007,LA 3971)

组装电脑(Assemble,NWERC 2007,LA 3971)

Leo的博客 1227

LA 3971 Assemble(组装电脑 最小值最大 二分答案)

二分答案这个思想用过了。非常好的思想,题意是你有b元钱 需要组装一台电脑 先给出n和b 分别代码有n个配件可供选择 一共有b元钱 接下来n行 每行描述一个配件 种类名 名称 价格 品质因子 品质因子越大越好 种类和名称是字符串 要求每个种类选一个   输出最小品质因子的最大值。 这个值肯定在品质因子的最小值和最大之间 二分这个答案 每次二分到的mid 查看是否ok ok就表示

百度啊百度 678

二分+判断,最小值最大(组装电脑,LA 3971)

一开始啊,用map和priority_queue搞来搞去,各种upper_bound啊,维护单调啊什么鬼的,编码又麻烦,速度也不快,还WA。 具体就是先把所有的部件都买一个最便宜的,然后放到优先队列里,每次取一个quality最小的,换成一个更大的。因为更大的反而可能更便宜(除了第一次更换一定更贵),所以要维护单调。想效率高点所以用upper_bound。弄了好久都没过,就只好用紫书大白书上的方

xl2015190026的博客 464
上一篇: 值得思考扩展的水题--挖坑
下一篇: codevs 1128 导弹拦截
QWsin
博客等级 码龄11年 51粉丝 209原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值