51nod1821-最优集合【贪心】
正题
题目链接:http://www.51nod.com/Challenge/Problem.html#problemId=1821
题目大意
nnn个可重集合,TTT次询问,询问将集合SxS_xSx和一个选出大小为kkk的SyS_ySy的子集合并成的独立集S′S'S′满足能够找到一个最大的zzz使得对于任意的正整数i∈[1,z]i\in [1,z]i∈[1,z]都存在一个S′S'S′的子集和为iii。
1≤n,mi≤1000,1≤T≤100001\leq n,m_i\leq 1000,1\leq T\leq 100001≤n,mi≤1000,1≤T≤10000
解题思路
考虑我们已经拼出了一个zzz,那么我们如果加入一个≤z+1\leq z+1≤z+1的数xxx那么就可以使得上限变成z+xz+xz+x。
所以可以考虑贪心,因为第一个集合没有限制我们就优先选择第一个集合里的数,直到不能选择我们就选择第二个集合里的直到能够继续选择第一个集合里的。
排好序然后开个栈维护就好了。
时间复杂度O(nmlogm+Tm)O(nm\log m+Tm)O(nmlogm+Tm)
code
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=1100;
ll n,T,m[N],s[N],a[N][N];
signed main()
{scanf("%lld",&n);for(ll i=1;i<=n;i++){scanf("%lld",&m[i]);for(ll j=1;j<=m[i];j++)scanf("%lld",&a[i][j]);sort(a[i]+1,a[i]+1+m[i]);}scanf("%lld",&T);while(T--){ll x,y,k,z=1,top=0,sum=1,flag=0;scanf("%lld%lld%lld",&x,&y,&k);for(ll i=1;i<=m[x];i++){while(z<=m[y]&&a[y][z]<=sum)s[++top]=a[y][z],z++;while(sum<a[x][i]){if(!k||!top){flag=1;break;}sum+=s[top];k--;top--;}if(flag)break;sum+=a[x][i];}while(k&&top)sum+=s[top],top--,k--;printf("%lld\n",sum-1);}return 0;
}
51nod1821-最优集合【贪心】相关推荐
- 数据结构与算法_02_局部最优的贪心算法
数据结构与算法,系列文章传送地址,请点击本链接. 目录 一.贪心思想 二.解贪心算法的步骤 三.贪心算法存在的问题 四.贪心算法的案例 一.贪心思想 1.贪心算法(又称贪婪算法)是指,在对问题求解 ...
- Linux性能调优集合
1.性能调优:CPU 关系型数据库严重依赖底层的硬件资源,CPU是服务器的大脑,当CPU开销很高时,内存和硬盘系统都会产生不必需要的压力.CPU的性能问题,直观来看,就是任务管理器中看到的CPU利用率 ...
- 牛牛的数字集合 (贪心
添加链接描述 #include<bits/stdc++.h> using namespace std; #define int long long const int N=1e6+9,mo ...
- 三十六、贪心算法--集合覆盖问题
一.贪心算法介绍 1.贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 2.贪心算法不是对所有问题都 ...
- 最优装载c语言贪心算法,最优装载(贪心算法)
算法设计例题:最优装载(贪心) memory limit: 32768KB time limit: 1000MS accept: 24 submit: 68 Description 有一批 ...
- 算法导论之贪心算法(Huffman编码和拟阵)
贪心算法,在解决最优化问题上,通过得到子问题的局部最优解来合成问题的一个解,以局部最优选择来输出一个全局最优解. 问题要用贪心算法来求解,需满足和动态规划一样的最优子结构特征,同时还需要再每个子问题最 ...
- P3265-[JLOI2015]装备购买【线性基,拟阵贪心】
正题 题目链接:https://www.luogu.com.cn/problem/P3265 题目大意 给出nnn个有权值的mmm元组.求最大独立集,即一个最大的集合且内部元素线性无关.且在集合最大的 ...
- 用javascript分类刷leetcode4.贪心(图文视频讲解)
什么是贪心算法 贪心法,又称贪心算法,贪婪算法,在对问题求解时,总是做出在当前看来最好的选择,期望通过每个阶段的局部最优选择达到全局最优,但结果不一定最优 适用场景:简单的说,问题能够分解成子问题来解 ...
- 物联网技术部培训---贪心算法
贪心算法 人心不足蛇吞相 贪心本质 贪心需要注意的几个问题 贪心算法需要遵循的原则 例题 最优装载问题 简单背包问题 会议安排问题 课余时间也不要忘了有各种各样的活动呀. 一道思考题 人心不足蛇吞相 ...
最新文章
- 不得不知的小程序基本知识
- 以下选项不是python打开方式的是-以下选项中,不是Python对文件的打开模式的是...
- 【转载】jQuery插件开发精品教程,让你的jQuery提升一个台阶
- 虚函数和作用域(C++ primer 第五版)P550
- NHibernate快速起步
- Silverlight 里如何实现隐式样式,ImplicitStyleManager 的实现思想
- python混沌时间序列分析_用Python进行时间序列分析
- 语言的开题报告范文_【开题系列】刘凤朝:撰写文科博士学位论文开题报告应注意的几个问题...
- sublime text常用快捷键整理
- Eclipse中@author的修改
- ZeroMQ研究与应用分析
- 另类多线程生产者与消费者模式
- Luogu1712 [NOI2016] 区间
- springboot实现任务调度的第三种方式------使用第三方quartz插件调度(springBoot+quartz+cronTrigger进行任务调度)
- 小狸智能原创工具·AI伪原创API工具
- vue实现5秒后自动跳转到首页
- 电器系统 java_java毕业设计_springboot框架的苏宁易购电器进销存管理系统
- linux为用户指定资源大小,Linux_Linux系统下生成一个指定大小的文件,在装系统,因此在这里随便记 - phpStudy...
- 翻译GDC演讲:《Procedurally Crafting Manhattan for ‘Marvel‘s Spider-Man‘》(在‘漫威蜘蛛侠’中使用程序化的方式精心制作曼哈顿)
- C++ 获取个位数十位数等
热门文章
- java里面什么时候环境变量_Java的环境变量什么时候需要设置?
- abap al设置单元格可编辑 oo_润乾报表美化设置 -- 样式
- php抓取统计局区划代码,抓取国家统计局的代码和名称,爬取,区域,划分,及
- 早教机器人刷固件_机器人线刷包_机器人刷机包_机器人固件包_机器人救砖包 - 线刷宝ROM中心...
- pythonjam进不去怎么办_教程看了一遍又一遍,自学Python还是连门都进不去?
- android led闪烁功能,如何在Android应用层中制作一个LED指示灯效果
- jmeter测试java服务_Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能
- pandownload 卢本伟_PanDownload复活了!60MB/s!附下载地址
- ncl 添加点shp文件_气象编程 | NCL高效快速精准提取不规则区域内的格点数据
- mysql导入数据提前修改字段_Mysql一些导入导出数据库,添加修改字段命令_MySQL...