Contest-hunter 暑假送温暖 SRM01
一直找不到好的题去做...于是想到了srm...回来补题...QAQ
从srm01补起
A
题意:n个数,排成一列,刚开始都是1,如果左右相等就可以合并,问最后的数列长什么样。
思路:比赛的时候直接敲了个 一直log2 直到为0,觉得应该是100的...于是炸到了90.
比完赛懒得调就没去理,回来补的时候发现是p的trunc有点问题哇...以后都打成trunc(x+0.000001) 出错率会低一点QAQ
var n,s:longint;
begin
read(n);
repeat
s:=trunc(ln(n)/ln()+0.00001);
write(s+,' ');
n:=n-( << s);
until n=;
end.
A
B
题意:有m升油,n个数,可以用一升油数某一个数+1,再给一个mx 然后给 v1 v2 求 (v1*达到mx的数的个数+v2*整个数列的最小值)最大化。
思路:比赛的时候想的是拿部分分,然后弄不出来,然后觉得是二分,敲不出来,就拿到了10分。
补题的时候有一个新的思路,枚举达到mx的数的个数,然后再二分最小值。
然后check就贪心的弄,设达到mx的数的个数为num,二分到的最小值为x
然后贪心算需要的油就可以check了,但是这样要多一个n的复杂度。
显然o(n^2 logn)的复杂度是要tle的。
想想优化,由于贪心,所以已经先把原数列排序了,辣么就满足的单调性。
满足单调性就可以二分
所以求排序后的数列的前缀和,然后在二分里在套一个二分就好了
复杂度 o(n logn ^2)
var a,b,c,sum:array[..]of int64;
n,mx,v1,v2:int64;
have,z:int64;
l,r,m:longint;
ans,num,ansmin,ansnum:int64;
i,j:longint;
procedure qs(l,r:longint);
var i,j,t,m:longint;
begin
i:=l;
j:=r;
m:=a[(l+r)>>];
repeat
while a[i]>m do inc(i);
while a[j]<m do dec(j);
if i<=j then
begin
t:=a[i];a[i]:=a[j];a[j]:=t;
t:=c[i];c[i]:=c[j];c[j]:=t;
inc(i);
dec(j);
end;
until i>j;
if l<j then qs(l,j);
if i<r then qs(i,r);
end;
function find(x:longint):longint;
var l,r,m:longint;
begin
l:=num+;
r:=n;
while l<=r do
begin
m:=(l+r) >>;
if a[m]>x then l:=m+ else r:=m-;
end;
exit(l);
end;
function check(x:longint):boolean;
var i:longint;
need:int64;
begin
need:=z;
i:=find(x);
inc(need,x*(n-i+)-(sum[n]-sum[i-]));
if need>have then exit(false) else exit(true);
end;
begin
read(n,mx,v1,v2,have);
for i:= to n do
begin
read(a[i]);
b[i]:=a[i];
c[i]:=i;
end;
qs(,n);
for i:= to n do
sum[i]:=sum[i-]+a[i];
for i:= to n do
begin
num:=i;
z:=mx*num-sum[num];
if z>=have then continue;
l:=;
r:=mx;
while l<r do
begin
m:=(l+r+)>>;
if check(m) then l:=m else r:=m-;
end;
if ans<num*v1+l*v2 then
begin
ans:=num*v1+l*v2;
ansnum:=num;
ansmin:=l;
end;
end;
writeln(ans);
for i:= to ansnum do
b[c[i]]:=mx;
for i:= to n do
if b[i]<ansmin then write(ansmin,' ')else write(b[i],' ');
writeln;
end.
B
C
题意:一个数列,支持两个操作,1.L~R 加上x 2.查询当前序列,如果从任意一个位置开始,两边严格递减的最大长度。
思路:比赛的时候完全没思路,暴力都不会打。
补题觉得可以线段树弄,每次维护区间最大长度,左边的值,右边的值,然后乱维护....QAQ
结果不会打。所以pass掉吧...
Contest-hunter 暑假送温暖 SRM01的更多相关文章
- Contest-hunter 暑假送温暖 SRM08
01-07都没写...然后突然来写貌似有点突兀啊...不管了,难得前排记录一下... 吐槽一下赛制...不得不说很强... cf 套oi...很创新...不过还是兹磁ACM或者CF A-1 数据才2& ...
- bzoj4693: 雪中送温暖
Description 每年的1月10日是温暖节,在这一天,化身出题人的C_SUNSHINE将会给OIer们送温暖.OIer们只要在门口放上一个 仙人掌,就能在早上的某个时刻听到门外传来一声:“开门, ...
- Contest Hunter 3101
题目 Contest Hunter 3101 阶乘分解 原题传送门 题目分析 这里介绍一个本蒟蒻自己\(yy\)出来的方法. 我们发现,对于某一个单个的整数\(n\),若\(n\)能被某一个数\(x\ ...
- 【Contest Hunter【弱省胡策】Round #0-Flower Dance】组合数学+DP
题目链接: http://ch.ezoj.tk/contest/%E3%80%90%E5%BC%B1%E7%9C%81%E8%83%A1%E7%AD%96%E3%80%91Round%20%230/F ...
- [Contest Hunter#17-C] 舞动的夜晚
[题目链接] http://contest-hunter.org:83/contest/CH%20Round%20%2317/%E8%88%9E%E5%8A%A8%E7%9A%84%E5%A4%9C% ...
- Contest Hunter Round #70 - 连续两大交易事件杯省选模拟赛
orz lydrainbowcat [Problem A]「艦これ市」70万幕后交易事件 排序机器=-=.重要的是相同的处理. 我们可以从小到大添加数字,然后维护一个位置的序列.每一种相等的数字都在一 ...
- 某次送温暖考试的 c题
题目大意: 给定n个点的无根树,树上每个点都有一个非负的点权. 树上的路径的价值定义为树上路径的点权和-树上路径的点权最大值; 现在给定一个参数P询问有多少条路径的价值是P的倍数(注意单点也算路径,路 ...
- 【Contest Hunter 5302】金字塔
[原题链接]传送门 [题解思路] 1.考虑如何将序列与树相对应,想到类似dfs序和欧拉序,同一个子树对应序列连续 2.暴力分子树过于复杂,考虑简化(划重点: 若当前区间为[l,r],考虑第一颗子树所在 ...
- Contest Hunter 1401 兔子与兔子
1401 兔子与兔子 0x10「基本数据结构」例题 描述 很久很久以前,森林里住着一群兔子.有一天,兔子们想要研究自己的 DNA 序列.我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DN ...
随机推荐
- [MongoDB]学习笔记--User管理
1. 创建一个超级用户 use admin db.createUser( { user: "adminUserName", pwd: "userPassword" ...
- 1.1_php基础语法
一,变量与常量: 二,php中的运算符(字符串拼接): 三,php数组. <!DOCTYPE html> <html> <head> <meta charse ...
- jq 之Autocomplete 引发联想及思考
前情纪要:JQuery UI 是以 JQuery 为基础的开源 JavaScript 网页用户界面代码库.包含底层用户交互.动画.特效和可更换主题的可视控件,这些控件主要包括:Accordion,Au ...
- ios中沙盒
打开模拟器沙盒目录 下面看看模拟器的沙盒文件夹在mac电脑上的什么位置. 文件都在个人用户名文件夹下的一个隐藏文件夹里,中文叫资源库,他的目录其实是Library. 2.1 方法1.可以设置显示隐藏文 ...
- [Algorithms] Sorting Algorithms (Insertion Sort, Bubble Sort, Merge Sort and Quicksort)
Recently I systematicall review some sorting algorithms, including insertion sort, bubble sort, merg ...
- 160629、 DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较
简介 使用评价 项目主页 DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用 可以设置最大和最小连接,连接等 ...
- etcd跨机房部署方案
使用ETCD做为元数据方便快捷,但是谈到跨机房灾备可能就迷糊了,我们在做节日灾备的时候同样遇到了问题, 通过查阅官方文档找到了解决方案,官方提供make-mirror方法,提供数据镜像服务 注意: m ...
- 超哥带你学网络编程部分blog
https://www.cnblogs.com/clschao/articles/9593164.html 网络编程 https://www.cnblogs.com/clschao/articles ...
- Powershell Get-FileHash
File Hash (Get-FileHash C:\fso\myfile.txt).hash Get-FileHash C:\Users\Andris\Downloads\Contoso8_1_EN ...
- struts2的HelloWorld的基本过程
login.jsp中 <form action="Login"... 该页面提交后, web.xml中设置的过滤器会起作用 <filter> ...