July 16th 模拟赛C T2 奶牛晒衣服 Solution
空降题目处
点我点我点我
Description:
在熊大妈英明的带领下,时针和它的同伴生下了许多牛宝宝。熊大妈决定给每个宝宝都穿上可爱的婴儿装。于是,为牛宝宝洗晒衣服就成了很不爽的事情。
圣人王担负起了这个重任。洗完衣服后,你就要弄干衣服。衣服在自然条件下用1的时间可以晒干A点湿度。抠门的熊大妈买了1台烘衣机。使用烘衣机可以让你用1的时间使1件衣服除开自然晒干的A点湿度外,还可烘干B点湿度,但在1的时间内只能对1件衣服使用。
N件衣服因为种种原因而不一样湿,现在告诉你每件衣服的湿度,要你求出弄干所有衣服的最少时间(湿度为0为干)。
Input
第一行N,A,B;接下来N行,每行一个数,表示衣服的湿度(1<=湿度,A,B<=500000,1<=N<=500000)。
Output
一行,最少时间。
Solution
利用堆排,每次将最大的减去B,重新入堆。
时间复杂度 O(2Nlogn) O\left(2Nlog_n\right)
Program
C++
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;int t[700000],num,n,a,b,ans,r;void up(int x);
void down(int x);
void insert(int x);
void del(int x);int main()
{scanf("%d%d%d",&n,&a,&b);for (int i=1;i<=n;i++){scanf("%d",&r);insert(r);}while (t[1]>ans*a){insert(t[1]-b);del(1);ans++;}printf("%d\n",ans);
}void up(int x)
{while ((x>1)&&(t[x]>t[x/2])){swap(t[x],t[x/2]);x=x/2;}
}void down(int x)
{int y;while ((x*2<=num)&&(t[x*2]>=t[x])||(x*2+1<=num)&&(t[x*2+1]>=t[x])){y=x*2;if (t[x*2+1]>=t[x*2])y++;swap(t[x],t[y]);x=y;}
}void insert(int x)
{num++;t[num]=x;up(num);
}void del(int x)
{if (t[num]<t[x]){t[x]=t[num];num--;down(x);}else{t[x]=t[num];num--;up(x);}
}
Pascal
varnum,n,a,b,ans,r,i:longint;t:array [0..700000] of longint;procedure swap(var x,y:longint);
vart:longint;begint:=x;x:=y;y:=t;end;procedure up(x:longint);
beginwhile (x>1) and (t[x]>t[x div 2]) dobeginswap(t[x],t[x div 2]);x:=x div 2;end;end;procedure down(x:longint);
vary:longint;beginwhile ((x*2<=num) and (t[x*2]>=t[x]) or (x*2+1<=num) and (t[x*2+1]>=t[x])) dobeginy:=x*2;if (t[x*2+1]>=t[x*2]) theninc(y);swap(t[x],t[y]);x:=y;end;end;procedure insert(x:longint);
begininc(num);t[num]:=x;up(num);end;procedure del(x:longint);
beginif (t[num]<t[x]) thenbegint[x]:=t[num];dec(num);down(x);end elsebegint[x]:=t[num];dec(num);up(x);end;end;beginreadln(n,a,b);for i:=1 to n dobeginread(r);insert(r);end;while t[1]>ans*a dobegininsert(t[1]-b);del(1);inc(ans);end;writeln(ans);end.
July 16th 模拟赛C T2 奶牛晒衣服 Solution相关推荐
- July 16th 模拟赛C T4 奶牛排队 Solution
空降题目处 点我点我点我 Description: 奶牛在熊大妈的带领下排成了一条直队. 显然,不同的奶牛身高不一定相同..... 现在,奶牛们想知道,如果找出一些连续的奶牛,要求最左边的奶牛A是最矮 ...
- July 16th 模拟赛C T3 圆周舞蹈 Solution
空降题目处 点我点我点我 Description: 熊大妈的奶牛在时针的带领下,围成了一个圆圈跳舞.由于没有严格的教育,奶牛们之间的间隔不一致. 奶牛想知道两只最远的奶牛到底隔了多远.奶牛A到奶牛B的 ...
- July 16th 模拟赛C T1 竞赛排名 Solution
空降题目处 点我点我点我 Description: Input 输入文件为compe.in.文件的第一行为参赛总人数N(1<=N<=100),从第二行到第N行依次为编号1到编号N的选手的成 ...
- 洛谷 10月 csp-s 模拟赛 T1,T2解析及代码
洛谷 10月 csp-s 模拟赛 T1,T2解析及代码 T1 Magenta Potion 题目描述 给定一个长为 nnn 的整数序列 aaa,其中所有数的绝对值均大于等于 222.有 qqq 次操作 ...
- NOIP2012模拟试题【奶牛晒衣服】
1.奶牛晒衣服(dry) [问题描述] 在熊大妈英明的带领下,时针和它的同伴生下了许多牛宝宝.熊大妈决定给每个宝宝都穿上可爱的婴儿装.于是,为牛宝宝洗晒衣服就成了很不爽的事情. 圣人王担负起了这个重任 ...
- CCF NOI1134 奶牛晒衣服
问题链接:CCF NOI1134 奶牛晒衣服. 时间限制: 1000 ms 空间限制: 262144 KB 题目描述 在熊大妈英明的带领下,时针和它的同伴生下了许多牛宝宝.熊大妈决定给每个宝宝都穿上 ...
- P1843 奶牛晒衣服(贪心)
P1843 奶牛晒衣服 直接贪心- #include<iostream> #include<stdio.h> #include<string.h> #include ...
- luogu P1843 奶牛晒衣服 | 二分法
时间复杂度O(logn) P1843 奶牛晒衣服 P2678 跳石头 P1577 切绳子 当函数具有单调性时 在范围内 二分答案的一边可以而另一边不可以 通过二分把范围逐渐缩小 1.当了l<=r ...
- 【贪心】奶牛晒衣服(ybtoj 贪心-1-1)
奶牛晒衣服 ybtoj 贪心-1-1 题目大意 有n件衣服,每件衣服有一个湿度,每一个单位时间所有衣服会湿度-a,同时可以选择一件衣服使其湿度-b,问最短在多久可以使所有衣服湿度小于等于0 输入样例 ...
最新文章
- Codeforces 1499D - The Number of Pairs(数论 + 组合计数)
- MySQL小表join大表的正确使用姿势(straight_join 关键字的使用)
- MySql 使用 EF Core 2.0 CodeFirst、DbFirst、数据库迁移(Migration)介绍及示例
- linux dr校园网端口被占用,Dr.com端口占用的解决
- cpu为何有两个温度?
- Spring 定时任务
- android语音控制歌曲播放,Amazon Music应用程序已支持Alexa语音控制歌曲播放
- 基于Fragstats的土地利用景观格局分析
- Cimage类的介绍及使用
- 浅析EDA技术应用于电子设计竞赛的可行性
- LabView替代软件,ATECLOUD云测试平台测评
- 计算机共享文件误删怎么恢复,电脑数据恢复分享:电脑文件删除了怎么恢复
- NPN和PNP的使用总结
- [Vani有约会]雨天的尾巴
- php 织梦手册,Dede标签快速手册
- python中setup是什么意思_python中setuptools指的是什么
- bzoj5139 [Usaco2017 Dec]Greedy Gift Takers(二分答案+模拟)
- 神经网络——bias
- GPS及AGPS定位基本原理解析
- 全国计算机等级考试office无纸化考试,2017年无纸化考试专用 全国计算机等级考试一本通 一级计算机基础及MS Office应用...