【JZOJ 5419】【NOIP2017提高A组集训10.24】筹备计划

JZOJ5417. 【NOIP2017提高A组集训10.24】方阵 Description题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 为了准备校庆庆典,学校招募了一些学生组成了一个方阵,准备在庆典上演出。 这个方阵是一个n*m的矩形,第i行第j列有一名学生,他有一个能力值Aij。 校长会定期检查一个p*q的方阵,询问这个方阵的学生能力值之和,或是学生能力值的最大值,或是学生能力值的最 阅读详情

Description

校庆筹备组的老师们正在寻找合适的地方来举办校庆庆典。
学生们的位置和可以举办庆典的位置在x轴的正半轴取值在[1,n]的整数位置上。
老师们选择的地点是会根据参加典礼的学生位置来决定的,具体来说:定义一个位置的距离和为该位置到所有参加学生的距离之和。如果一个位置的距离和最小,且它比所有和它距离和相等的位置的位置更靠左,则老师们会选择这个位置。
开始时,所有的位置都可以举办庆典。但很可惜的是,并不是所有的位置都能举办庆典,有些奇怪的事件会使[l,r]这段区间不能举办庆典,不过有时也会使[l,r]可以重新举办庆典(并不保证[l,r]之前的每个位置都不能举办庆典)。
有时一些学生会因为某些原因不能参加庆典,有时一些学生会主动报名参加庆典。
作为一名合格的老师,你需要求出每个事件发生后庆典应该选择的位置,如果没有合法位置,请输出-1。

Solution

考虑一个位置成为最有的情况是什么:它往左移不会优,右移不会优,
那么也就是(sum为a的前缀和)
sumi>=All−sumi,
All−sumi−1>=sumi−1
移项:
2sumi>=All,
2sumi−1<=All
所以找到最左的一个位置i,使得2sumi>=All即可,

那加入有些位置不能选怎么做?

显然,加入这个限制后的答案,一定是不加限制的最优位置的尽量左边或尽量右边,
那就先找出不加限制的最优位置,
再找出这个位置的左边第一个个可以选的,右边第一个可以选的,看看哪个优一点,

复杂度:O(nlog(n)2)
用线段树找不加限制的最优位置可以优化成:O(nlog(n))

Code

#include <cstdio>
#include <algorithm>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fod(i,a,b) for(int i=a;i>=b;i--)
#define min(q,w) ((q)>(w)?(w):(q))
#define max(q,w) ((q)<(w)?(w):(q))
#define NX(q) ((q)&(-(q)))
using namespace std;
typedef long long LL;
const int N=200500;
int read(int &n)
{
    char ch=' ';int q=0,w=1;
    for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar());
    if(ch=='-')w=-1,ch=getchar();
    for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;
}
int m,n,ans;
LL ans1;
LL a[N];
bool z[N];
LL ALLl,ALLr,ALLn;
LL sum[3][N];
struct qqww
{
    int v,la;
}b[N*4];
void ADD(int q,LL w,int E){for(;q<=n;q+=NX(q))sum[E][q]+=w;}
void JIA(int i,LL w){ALLn+=w,ALLl+=w*(LL)i,ALLr+=w*(LL)(n-i);ADD(i,w,0),ADD(i,w*(LL)i,1),ADD(i,w*(LL)(n-i),2);}
LL Gsum(int q,int E)
{
    LL ans=0;if(q>n)q=n;
    for(;q>0;q-=NX(q))ans+=sum[E][q];
    return ans;
}
void doit(int l,int r,int e)
{
    if(!b[e].la)return;
    b[e].v=(b[e].la-1)*(r-l+1);
    if(l!=r)b[e*2].la=b[e*2+1].la=b[e].la;
    b[e].la=0;
}
void change(int l,int r,int e,int l1,int r1,int l2)
{
    int t=(l+r)>>1;if(l!=r)doit(l,t,e*2),doit(t+1,r,e*2+1);
    if(l1<=l&&r<=r1){b[e].la=l2,doit(l,r,e);return;}
    if(r1<=t)change(l,t,e*2,l1,r1,l2);
    else if(t<l1)change(t+1,r,e*2+1,l1,r1,l2);
    else change(l,t,e*2,l1,t,l2),change(t+1,r,e*2+1,t+1,r1,l2);
    b[e].v=b[e*2].v+b[e*2+1].v;
}
int findl(int l,int r,int e,int r1)
{
    if(b[e].v==r-l+1)return -1;
    if(l==r)return l;
    int t=(l+r)>>1;if(l!=r)doit(l,t,e*2),doit(t+1,r,e*2+1);
    if(r1<=t)findl(l,t,e*2,r1);
    else 
    {
        int ans=findl(t+1,r,e*2+1,r1);
        return ans!=-1?ans:findl(l,t,e*2,r1);
    }
}
int findr(int l,int r,int e,int l1)
{
    if(b[e].v==r-l+1)return -1;
    if(l==r)return l;
    int t=(l+r)>>1;if(l!=r)doit(l,t,e*2),doit(t+1,r,e*2+1);
    if(t<l1)findr(t+1,r,e*2+1,l1);
    else 
    {
        int ans=findr(l,t,e*2,l1);
        return ans!=-1?ans:findr(t+1,r,e*2+1,l1);
    }
}
int EF(int l,int r)
{
    for(;l<r;)
    {
        int mid=(l+r)>>1;
        if(2LL*Gsum(mid,0)>=ALLn)r=mid;
        else l=mid+1;
    }
    return r;
}
LL JS(LL q)
{
    LL t=Gsum(q,0);
    LL ans=Gsum(q,2)-t*(LL)(n-q);
    ans+=ALLl-Gsum(q,1)-(LL)(ALLn-t)*(q);
    return ans;
}
int main()
{
    freopen("position.in","r",stdin);
    freopen("position.out","w",stdout);
    int q,w,e;
    read(n),read(m);
    fo(i,1,n)JIA(i,read(q));
    LL t;
    ans=EF(1,n);
    fo(I,1,m)
    {
        read(e);read(q),read(w);
        if(e==1)JIA(q,w);
        else if(e==2)JIA(q,-w);
        else if(e==3)change(1,n,1,q,w,1);
        else change(1,n,1,q,w,2);
        ans=EF(1,n);
        q=findl(1,n,1,ans);
        w=findr(1,n,1,ans);
        if(q==w&&q==-1){printf("-1\n");continue;}
        if(q==-1){printf("%d\n",w);continue;}
        if(w==-1){printf("%d\n",q);continue;}
        if(JS(w)<JS(q))printf("%d\n",w);
        else printf("%d\n",q);
    }
    return 0;
}
jzoj5417【NOIP2017提高A组集训10.24】方阵 题目Time Limits: 2000 ms Memory Limits: 262144 KBDescription题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 为了准备校庆庆典,学校招募了一些学生组成了一个方阵,准备在庆典上演出。 这个方阵是一个n*m的矩形,第i行第j列有一名学生,他有一个能力值Aij。 校长会定 阅读详情

相关推荐

NCBI|叶绿体基因组数据上传

叶绿体基因组NCBI上传 小编最近在NCBI上传了好几次数据…想着可以把具体的上传步骤写下来,供大家参考。以下是叶绿体基因组的上传示例,大家可以瞅瞅 图片 准备工作 1.登录NCBI官网:https://www.ncbi.nlm.nih.gov/, 依次点击“sign in to NCBI”——“See more 3rd party sign in options”——搜索“Microsoft live.com”。 ”sign in to NCBI“ ”See more 3rd party sign i

weifanbio的博客 3903

JZOJ 5419. 【NOIP2017提高A组集训10.24】筹备计划

JZOJ 5419. 【NOIP2017提高A组集训10.24】筹备计划 Description题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 校庆筹备组的老师们正在寻找合适的地方来举办校庆庆典。 学生们的位置和可以举办庆典的位置在x轴的正半轴取值在[1,n]的整数位置上。 老师们选择的地点是会根据参加典礼的学生位置来决定的,具体来说:定义一个位置的距离和为该位置到所有参加学

Felix-Lee的博客 496

目前最新NIST随机数测试软件下载、安装、及使用教程

最近由于科研需要,在搞一些随机数的测试的事情,众所周知 随机数测试我们可以使用NIST的软件进行多大15项的随机测试,我也在网上查找了很多大牛的博客,但是都是年代久远,很多的链接现在都是物是人非,都是不能直接使用了,今天顺便抽点时间更新一下这个NIST软件的下载及使用。我们首先讲一下该软件的下载:1.我们直接取NIST的官网(https://csrc.nist.gov/)下载即可 ;链接如下:下载...

Miracle.Zhao的博客 3万+

JZOJ5419. 【NOIP2017提高A组集训10.24】筹备计划

Description题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 校庆筹备组的老师们正在寻找合适的地方来举办校庆庆典。 学生们的位置和可以举办庆典的位置在x轴的正半轴取值在[1,n]的整数位置上。 老师们选择的地点是会根据参加典礼的学生位置来决定的,具体来说:定义一个位置的距离和为该位置到所有参加学生的距离之

lijf2001的博客 581

Cortex-M内核DWT周期计数器:从原理到STM32实战时间测量与性能分析

在嵌入式开发中,代码执行耗时测量是性能优化的基础。除了依赖外设定时器或SysTick,ARM Cortex-M3/M4/M7内核自带的DWT(Data Watchpoint and Tracker)调试组件提供了一种极低侵入性的硬件计时方案。其内部的32位周期计数器CYCCNT跟随内核时钟递增,无需占用额外引脚或定时器资源,即可实现纳秒级分辨率的函数耗时测量、中断响应分析及延时实现。从DWT寄存器配置、周期差值计算到基于SystemCoreClock的微秒换算,开发者可以快速搭建一套轻量级性能分析工具。本文

weixin_34216614的博客 188

latex使用overleaf插入多行图片

对于一般的latex模板,可以使用下面方式: (1)现在模板最前面的加入包 \usepackage{graphicx} \usepackage{subfigure} (2) 使用下面代码插入图片 \begin{figure}[htbp] \centering \subfigure[pic1.]{ \includegraphics[width=5.5cm]{pic1.png} } \quad \subfigure[pic2.]{ \includegraphics[width=5.5cm]{pic

Look Forward To 1万+

【JZOJ5419】筹备计划

Description题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 校庆筹备组的老师们正在寻找合适的地方来举办校庆庆典。 学生们的位置和可以举办庆典的位置在x轴的正半轴取值在[1,n]的整数位置上。 老师们选择的地点是会根据参加典礼的学生位置来决定的,具体来说:定义一个位置的距离和为该位置到所有参加学生的距离之

sadnohappy 401

STM32单片机入门学习(六)-光敏传感器控制LED

光敏传感模块一DO端接B13,GND接GND,VCC接VCC,AO不接。LED负极接B12,正极接VCC。

指尖魔法师 4368

JZOJ5419. 【NOIP2017提高A组集训10.24】线段树

很烦人的线段树= =。不过理解了以后还是挺好打的,就是太长。 具体的话就是维护每一个区间内到左端点右端点的最小代价和最左边,最右边的可用的位置,然后直接更新就好了,至于查询的话,就是查询中位数咯,查询一下中位数左右两边最靠近他的可用的点,然后取个代价最小的。#include<cstdio> #include<cstring> #include<algorithm> #define fo(i,a,b

老臣 321

ProgLoss+STAL 技术详解:YOLO26 小目标检测增强方案

本文提出了一种基于ProgLoss渐进式损失函数和STAL小目标感知标签分配的YOLO26增强方案。针对小目标检测中特征信息少、正负样本不平衡等难题,STAL通过尺度感知的标签分配策略动态调整候选样本数量和IoU阈值,为小目标分配更多正样本;ProgLoss则根据训练阶段动态调整分类和回归损失的权重,早期侧重定位能力,后期加强分类精度。实验表明,该组合方案显著提升了小目标检测性能,在COCO数据集上小目标AP达到38.2%,比基线提升6.5个百分点。该方法为遥感、监控等场景的小目标检测提供了有效解决方案。

一键难忘的博客 1285

大数据预测分析:精准把握市场趋势

传统市场预测多依赖经验判断(比如“去年卖了1000件,今年加20%”)或小数据统计(比如用近6个月的销量做线性回归)。而大数据预测分析是:利用海量结构化+非结构化数据(销售、用户、社交媒体、天气等),通过机器学习/深度学习模型,挖掘数据中的关联关系与趋势规律,实现对未来市场走势的精准预测。更全面:覆盖内部(企业数据)+外部(行业、环境数据)的全维度数据;更精准:用算法替代人工,避免主观偏差;更实时:支持分钟级/小时级的实时预测(比如直播带货的销量预测)。错误做法。

AI智能探索者的博客 1025

JZOJ 5417. 【NOIP2017提高A组集训10.24】方阵

JZOJ 5417. 【NOIP2017提高A组集训10.24】方阵 Description题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 为了准备校庆庆典,学校招募了一些学生组成了一个方阵,准备在庆典上演出。 这个方阵是一个n*m的矩形,第i行第j列有一名学生,他有一个能力值Aij。 校长会定期检查一个p*q的方阵,询问这个

Felix-Lee的博客 511

使用C# HslCommunication库实现三菱PLC通信(含完整代码示例)

在工业自动化开发中,上位机与PLC的通信是关键环节。HslCommunication库是一个开源的.NET工业通信库,支持三菱、西门子、欧姆龙等多个品牌PLC的通信协议。本文将演示如何通过库实现C#程序与三菱PLC的通信,并提供完整的代码示例。

StevenChen的博客 2291

【NOIP 2017】赛季正式打响!

传送门: NOIP2017 检查清单 2017的赛季正式打响了!加油干啊同志们,这里就记录一下我到底干了什么吧~,10_21【JZOJ 5407】【NOIP2017提高A组集训10.21】Deep 【JZOJ 5408】【NOIP2017提高A组集训10.21】Dark 【JZOJ 5409】【NOIP2017提高A组集训10.21】Fantasy小结T1没有去尝试找规律,不能懒啊 T3有

1135

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

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

【NOIP2017提高A组集训10.24】合影

Description题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 经过一天的忙碌,志愿者们结束了他们的工作,准备站在一排合影留念。 现在总共有n名志愿者留下来准备合影。不过,进程并不是那么顺利,有些同学提出了一些奇奇怪怪的要求(每个人最多只会提出一个):他必须站在另外一个同学的左边(不一定相邻),仁慈的老师满足了他们的要求。

玫葵之蝶 792

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【JZOJ 5417】【NOIP2017提高A组集训10.24】方阵

Description为了准备校庆庆典,学校招募了一些学生组成了一个方阵,准备在庆典上演出。 这个方阵是一个n*m的矩形,第i行第j列有一名学生,他有一个能力值Aij。 校长会定期检查一个p*q的方阵,询问这个方阵的学生能力值之和,或是学生能力值的最大值,或是学生能力值的最小值。由于校长不喜欢一个方阵长宽之比差太多,他每次询问的方阵的长不会超过宽的两倍。作为校庆筹办组组长

532

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JZOJ5417. 【NOIP2017提高A组集训10.24】 二维线段树

题意:给一个矩阵,q次询问子矩阵,查询最大值最小值,区间和, 每个询问的方阵的长不超过宽的两倍。屁股后面那个两倍什么玩意儿的你想用就用,我不想用,懒得打什么鬼畜的rmq,去他的,二维线段树多爽,直接过。 然后我比赛把前缀和打错了啊啊啊啊啊!!! /喷血 犯了史上最傻逼错误没有之一,更让我绝望的是,我打拍的时候直接把前缀和那个地方黏过去用所以根本没拍出来/喷血。 血的教训,希望我能铭记。#inc

老臣 398

【JZOJ3159】广告计划

description 如今,在建筑的墙面上或者篱笆桩的表面上涂上一些广告,是一种新的吸引眼球的方法。 现在,小G 运营的一家小公司,决定也试着这样做做广告。小G 在他的篱笆桩上腾出了一些地方供广告使用。每一个篱笆桩都是一个水平的11L 的4 棱柱,其中有一个1L 的面是可以做广告的。1L 的面上划出了L 个1*1 的小正方形(更具体地说是连续L 个水平排列的正方形),每个正方形内写上一个字母。 ...

路人黑的纸巾 271

【JZOJ 4694】【HDU 5283】火神的鱼

Description 火神最爱的就是吃鱼了,所以某一天他来到了一个池塘边捕鱼。池塘可以看成一个二维的平面,而他的渔网可以看成一个与坐标轴平行的矩形。 池塘里的鱼不停地在水中游动,可以看成一些点。有的时候会有鱼游进渔网,有的时候也会有鱼游出渔网。所以火神不知道什么时候收网才可以抓住最多的鱼,现在他寻求你的帮助。 他对池塘里的每条鱼都给予了一个标号,分别从1到n标号,n表示池塘里鱼的总数。鱼的游动可

1234

【JZOJ 3053】旅行

Description 给定一个n行m列的字符矩阵,’.’代表空地,’X’代表障碍。移动的规则是:每秒钟以上下左右四个方向之一移动一格,不能进入障碍。计算:在空地中随机选择起点和终点(可以重合,此时最短耗时为0),从起点移动到终点最短耗时的平均值。 每一行每一列至多有1个障碍,并且障碍不在对角线方向相邻。以下矩阵是不合法的: Solution 先计算出两两点的曼哈顿距离,这个可以把x,y

1176

【JZOJ 5241】【GDOI2018模拟8.8】苹果和雪梨

Description作为新开的水果连锁店店员,你需要把总部发给你的苹果和雪梨分组出售,从而获得最 大利润。 总部发给你的水果包括: n 个苹果,质量分别为a1,a2…an n 个雪梨,质量分别为b1,b2…bn。 你卖的是盒装水果,一盒水果包括一个苹果和一个雪梨,苹果的质量乘上雪梨的质量就 是这盒水果的价钱。把苹果雪梨配对分成总共n 盒水果后,你要把价格最高的一盒返还给 水果店总部,

1124

【JZOJ 4788】序列

Solution把题目抽象一下,就变成了求序列中,每个点可以上升4,要使下降的总和最小, 首先,每个点可以上升多次!!! 当一个区间整体上升的时候,影响的就只有开头和结尾,如果要使答案减小,就要符合: ai−1−ai>aj+4−aj+1a_{i-1}-a_i>a_j+4-a_{j+1} 于是我们可以贪心的做,用did_i表示不等式后面的值等于i的位置有多少个, 每次直

1119

【51NOD 1622】【51NOD 算法马拉松19】集合对

Description 定义集合xor操作 A xor B=A∪B-A∩B。 问有多少对(P,Q)满足 P∈A Q∈B 使得 (P xor A)xor(Q xor B)=A xor B其中P Q都是集合。 答案对1e9+7取模。例如:A ={1} ,B={1,2},A xor B = {2},枚举所有情况P Q有2种。Solution我们把两个集合想象成0,1的二进制状态, 首先这两个数值不存在

1083

【JZOJ 4939】平均值

DescriptionSolution首先了,除才逆元的情况下显然是可以合并的, 所以,当一个区间的mexmex值没有变化时,就可以吧mex值相同的r−l+1r-l+1一起结算, 设nxinx_i表示下一个与aia_i相同的数的位置,mximx_i表示mex(l,i)mex(l,i),l为枚举的左端点, 我们先枚举一个l为左端点, 那么现在,我需要吧l往右移一位,那么会对ll~(nxl−1)

1012

【JZOJ 4922】环

Description 小A有一个环,环上有n个正整数。他有特殊的能力,能将环切成k段,每段包含一个或者多个数字。对于一个切分方案,小A将以如下方式计算优美程度: 首先对于每一段,求出他们的数字和。然后对于每段的和,求出他们的最大公约数,即为优美程度。 他想通过合理地使用他的特殊能力,使得切分方案的优美程度最大。Solution设:sum=∑aisum=\sum a_i 很显然,最后的每个答案一

997
上一篇: 【JZOJ 5418】【NOIP2017提高A组集训10.24】合影
下一篇: 【JZOJ 5413】【NOIP2017提高A组集训10.22】清兰
HOWARLI
博客等级 码龄11年 109粉丝 378原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值