nocow
http://www.nocow.cn/index.php/Heap_Pascal
=w= c++ 自带堆
栗子
【2235烤鸡翅】
http://cojs.tk/cogs/contest/problem.php?ctid=303
[题解]
对于当前的一个顾客i
1.剩余鸡翅足够,卖给他
2.剩余鸡翅不够,选择已卖出的人中所需鸡翅最多的人j,
如果 鸡翅i<鸡翅j 那么替换 ,人数不变,且剩余鸡翅增加
[代码]
var
n,i,y,max,d,ren,r:longint;tot:int64;
x,que:array [0..250010]of longint;
procedure swap(x,y:longint);var i:longint;begin
i:=que[x]; que[x]:=que[y]; que[y]:=i;
end;
procedure insert(y,x:longint);begin
que[x]:=y;
while (x>1)and(que[x]>que[x div 2]) do
begin
swap(x,x div 2);
x:=x div 2;
end;
end;
procedure down;var i,j:longint;begin
i:=1;
if i*2+1<=r then
begin
if que[i*2]>que[i*2+1] then j:=i*2 else j:=i*2+1;
end
else if i*2<=r then j:=i*2 else exit;
while que[i]<que[j] do
begin
swap(i,j);
i:=j;
if i *2+1<=r then
begin
if que[i*2]>que[i*2+1] then j:=i*2 else j:=i * 2+1;
end
else if i *2<=r then j:=i *2 else exit;
end;
end;
begin
assign(input,'wing.in');reset(input);
assign(output,'wing.out');rewrite(output);
read(n);
tot:=0; r:=0;
for i:=1 to n do read(x[i]);
for i:=1 to n do
begin
inc(tot,x[i]);
read(y);
if tot>=y then
begin
inc(r);
insert(y,r);
dec(tot,y);
inc(ren);
end else
begin
if que[1]>y then
begin
inc(tot,que[1]-y); que[1]:=y; down;
end;
end;
end;
write(ren);
close(input);close(output);
end.
分享到:
相关推荐
二叉堆(最小堆)+二项堆+斐波那契堆 根基算法导论C++实现
dijkstra算法的三种实现:数组,二叉堆,斐波那契堆 + 部分实验报告 dijkstra算法的三种实现:数组,二叉堆,斐波那契堆 + 部分实验报告 dijkstra算法的三种实现:数组,二叉堆,斐波那契堆 + 部分实验报告
集团型企业网设计案例(VRRP+MSTP+堆叠+链路聚合)含有配置参考脚本
H3C 集团型企业网设计案例(VRRP+MSTP+堆叠+链路聚合)by肖哥
图的最小生成树算法,用堆+并查集进行优化。
分别实现插入排序、冒泡排序、堆排序、合并排序、快速排序,以不同规模(100,1000,2000,5000,10000,100000个数据)的随机数作为测试数据集,分别设置比较操作计数器,验证各个算法随着测试数据集增加比较次数的变化趋势
学习笔记
最短路课件(链式前向星+堆优化+SPFA)
广域网框架+SDN+交换机堆叠+企业级架构扫盲 安德+军哥等 乾颐堂技术大咖茶茶话会
【Excel】绘图案例_常见复合图:簇状图+堆积图+折线图-附件资源
基于Matlab绘图复刻堆叠柱状图+哑铃图完整源码+数据(课程设计).zip 已获导师指导并通过的97分的高分课程设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 基于Matlab绘图复刻堆...
软件版本:Axure8(兼容Axure9/10) 常见用例 表格合集(增、删、查、分页)、带图列表展示(Web端+移动端)、双向列选择、二级菜单、列表操作(拖动、编辑)、标签分类筛选...柱状图、条形图、堆叠图、散点图、漏斗图
48、堆排序+书画相关链接(十三)-2020-01-16(F) 48、堆排序+书画相关链接(十三)-2020-01-16(F) 48、堆排序+书画相关链接(十三)-2020-01-16(F)
钢铁侠-核反应堆-html+css
1、资源内容:基于Matlab绘图复刻堆叠柱状图+哑铃图(完整源码+报告+数据).rar 2、代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 3、适用对象:计算机,电子信息工程、数学等专业的大学生...
对于前端小伙伴来说,这个功能还是比较实用的,可以将展示内容直接一键转换,不用再搞一大堆标签来手动实现: Copy RTF to clipboard 这个和 Export to RTF 其实差不多,只是 Export to RTF 是保存为文件,Copy RTF...
微博热搜数据可视化分析系统 技术框架 python + flask web + echart + mysql + 爬虫模块 + CSV(基于csv分析显示,csv使用八爪鱼获取或者自己生成也行) 模块分析 登录模块 选择领域模块 (本系统出来微博爬虫,还...
(1)理解堆、栈、B+树、红黑树这四种数据结构的基本原理。 (2)用C语言实现这四种数据结构,并且每种数据结构至少完成一种其对应的功能。 (1)堆的性质 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于...
Linux操作系统大作业,通过数据结构实现B+树,红黑树,堆排序等操作+源代码+文档说明+实验报告 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才...
leetcode添加元素使和等于 简单的复杂度分析 O(1)、O(n)、O(lgn)、O(nlogn)、O(n^2) 大O描述的是算法的运行时间和输入数据之间的关系 public static int sum(int[] nums) { ...解释:算法运行时间的多少和nums存在的...