大暴力 Function

ICPC2019银川区域赛F. Function! big-small 阅读详情
  

问题 C: Function

时间限制: 2 Sec   内存限制: 512 MB
提交: 76   解决: 49
[ 提交][ 状态][ 讨论版]

题目描述

        正解是估值线段树。。我不会。。。QAQ,我只会打暴力,而且这道题成功虐了出题人智商,优化一下暴力就能A。 思路就是求解多于范围。所以记录每个访问点的值,如果再访问,直接输出就行。注意会卡常数。
       我联考时还是打了点有思维含量的东西的。就是3~6这三个点,只是一次函数,单调的。求每个交点,更新每条直线是总体最大值的区间。两个优化。1,左端点大于右端点过掉。2,交点不一定是整数,所以要调整交点的值。(这个貌似不是优化)记录询问区间里每个点对应的最大值函数的下标。。
       联考时被卡常了QAQAQAQ
     
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define inf 1000000000
using namespace std;
inline ll read()
{
  ll x=0,f=1;char ch=getchar();
  while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
  while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
  return x*f;
}
struct qj
{
    int l,r;
} f[1005];
int n,q,p=0,v[1005];
ll a[1005],b[1005],c[1005];
ll hz[200204],cun[200205];
inline ll get(int i,int x)
{
    return a[i]*x*x+b[i]*x+c[i];
}
void init()//唯一不是暴力的地方。。。
{
    for(int i=1;i<=n;i++){f[i].l=-100000;f[i].r=100000;}
    for(int i=1;i<=n;i++)
       for(int j=i+1;j<=n;j++)
           if(!v[i]&&!v[j])
           {
                if(b[i]==b[j])
                {
                    if(c[i]>=c[j])v[j]=1;
                    else v[i]=1;
                    continue;
                }
                if(b[i]>b[j])
                {
                    int x=(c[j]-c[i])/(b[i]-b[j]);
                    int a1=get(i,x),a2=get(j,x);
                    if(a1==a2)
                    {
                        if(x>f[i].l)f[i].l=x;if(x>f[i].r)v[i]=1;
                        if(f[j].r>x)f[j].r=x;if(x<f[j].l)v[j]=1;
                    }
                    else
                    {
                         int x1=x,x2=x;
                         if(a1<a2)x1++;
                         else x2--;
                         if(x1>f[i].l)f[i].l=x1;if(x1>f[i].r)v[i]=1;
                        if(f[j].r>x2)f[j].r=x2;if(x2<f[j].l)v[j]=1;
                    }
                }
                else
                {
                    int x=(c[j]-c[i])/(b[i]-b[j]);
                    int a1=get(i,x),a2=get(j,x);
                    if(a1==a2)
                    {
                        if(x>f[j].l)f[j].l=x;if(x>f[j].r)v[j]=1;
                        if(f[i].r>x)f[i].r=x;if(x<f[i].l)v[i]=1;
                    }
                    else
                    {
                         int x1=x,x2=x;
                         if(a1<a2)x1--;
                         else x2++;
                         if(x2>f[j].l)f[j].l=x2;if(x2>f[j].r)v[j]=1;
                         if(f[i].r>x1)f[i].r=x1;if(x1<f[i].l)v[i]=1;
                    }
                }
           }
    for(int i=1;i<=n;i++)
       if(!v[i])
       {
         for(int j=f[i].l;j<=f[i].r;j++)
             cun[j+100005]=i;
        }
}
int main()
{
    //freopen("function.in","r",stdin);
    //freopen("function.out","w",stdout);
    n=read();q=read();
    for(int i=1;i<=n;i++)
    {
        a[i]=read();if(a[i]!=0)p=1;
        b[i]=read();
        c[i]=read();
    }
    int x;ll sum=-inf;
    if(!p)
    {
        init();
        while(q--)
        {
            x=read();
            int i=cun[x+100005];
            sum=a[i]*x*x+b[i]*x+c[i];
            printf("%lld\n",sum);
        }
    }
    else
    {
        while(q--)
        {
            x=read();sum=-inf;
            if(hz[x+100005])
                printf("%lld\n",hz[x+100005]);
            else
            {
                for(int i=1;i<=n;i++)
                {
                    ll k=a[i]*x*x+b[i]*x+c[i];
                    if(sum<k)sum=k;
                }
                hz[x+100005]=sum;
                printf("%lld\n",sum);
            }
             
        }
    }
}

实战指南:用Python实现ONVIF WS-Discovery设备发现(附完整代码) 本文提供了一份详细的实战指南,介绍如何使用Python实现基于ONVIF标准的WS-Discovery设备发现协议。文章深入解析了协议原理、网络通信模型,并提供了完整的代码实现,帮助开发者快速构建智能安防和物联网应用中的设备自动发现工具,有效提升网络设备集成与管理的效率。 阅读详情

相关推荐

删除win10电脑U盘使用记录

手工删除:和查看的方法类似,分三步,缺一不可,顺序也不能反! 第一步 设置环境变量,变量名为“devmgr_show_nonpresent_devices”,值为“1”。 第二步 打开设备管理器,勾上“查看”菜单中的“显示隐藏设备”。如果之前已经打开设备管理器,则要关了,重新打开。 第三步 清除“磁盘驱动器”、“存储卷”、“通用串行总线控制器”3个栏目下所有的灰色的图标,注意是所有!右键点击灰色图标,然后选择“卸载”。 成功 :结果USBSTOR 没有了 ...

qq_40544338的博客 2万+

ABAP常用function2

RS_VARIANT_CONTENTS – 获得程序变式的信息RS_CHANGE_CREATED_VARIANT – 修改程序变式的信息RZL_SLEEP – 将当前程序挂起 ENQUE_SLEEP – 在继续处理之前等待一个指定的时间。 ENQUEUE_ESFUNCTION – 锁定一个ABAP程序使它不可以被执行: 注意不要用SY-REPID来传递你的报表名字,当把SY-REPID作为参数传递

Edwin的专栏 1183

VFIO框架源码分析(二十一)- IOMMUFD 模式下的 DMA 映射机制

在虚拟化 I/O 的世界里,无论上层管理面(如对象模型、设备绑定)如何重构,数据面最核心的任务始终未变——DMA 映射(DMA Mapping)。即如何建立 Guest Physical Address (GPA) 到 Host Physical Address (HPA) 的映射关系,并将其填入 IOMMU 的硬件页表中,使得直通设备能够正确访问虚拟机内存。在 Legacy VFIO (Type1) 时代,这一职责由承担,它通过ioctl 操作 Container。

qq_36071928的博客 1007

URAL 1010 Discrete Function【简单暴力】

链接:  http://acm.timus.ru/problem.aspx?space=1&num=1010 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=26732#problem/E E - Discrete Function Time Limit:1000MS     Memory Limi

free斩 2304

保姆级教程:在CentOS 8上用libvirt + QEMU/KVM搭建ARM64虚拟机(含UEFI配置与常见坑点)

本文提供在CentOS 8上使用libvirt + QEMU/KVM搭建ARM64虚拟机的详细教程,涵盖UEFI配置与常见问题解决方案。通过环境准备、特殊配置要点、UEFI固件安装等步骤,帮助用户在x86架构服务器上高效运行ARM64虚拟化环境,特别适合开发测试与跨平台应用场景。

weixin_30292745的博客 129

手把手调试Altera FPGA远程升级:从ASMI扇区擦除到Remote Update IP配置的避坑实录

本文详细解析了Altera FPGA远程升级的全流程,重点介绍了Cyclone IV系列FPGA的ASMI扇区擦除和Remote Update IP配置的实战技巧。通过双镜像架构设计、ASMI IP核优化配置及Remote Update IP的隐藏参数设置,帮助开发者避免常见陷阱,提升远程升级的可靠性和效率。

weixin_30872499的博客 447

HDU-5875——Function

传送门:HDU-5875——Function 思路:我一开始看到3500ms的时候,就暴力莽。。。。。因为最多可以用两for嘛。。。然后T了之后。。。原来可以先标记最右端比a[l]小的数。。。。。。。。。。因为mod运算你最多能mod的数不会很多。。。 //#include<bits/stdc++.h> #include <stdio.h> #include <i...

浦柳人的博客 197

常见卫星图源下载教程

上面列出的8个常见的亚米级别数据源都可以通过xyz协议或者wmts/wms协议进行下载。这些协议是什么?地理信息数据为了方便网络传输,制定了一系列的地理数据传输标准(wms/wmts/xyz等)。协议特点优点缺点栅格数据支持矢量数据支持WMS通过HTTP请求获取GIS数据,服务器会将数据渲染成图像高度定制的地图;交互性强服务器渲染图像,响应时间较长支持有限支持WMTS提供预渲染的地图瓦片速度快,因为地图瓦片可以预先生成并在请求时快速提供瓦片的内容是预先确定的,无法进行定制支持。

锐多宝的地理空间 1万+

Function HDU - 5875(暴力+思维)

Function HDU - 5875 The shorter, the simpler. With this problem, you should be convinced of this truth. You are given an array A of N postive integers, and M queries in the form (l,r). A function F(...

codeswarrior的博客 346

YOLOv8改进 | Neck篇 | Slim-Neck替换特征融合层实现超级涨点 (又轻量又超级涨点)

本文给大家带来的改进机制是Slim-neck提出的Neck部分,Slim-neck是一种设计用于优化卷积神经网络中neck部分的结构。在我们YOLOv8中,neck是连接主干网络(backbone)和头部网络(head)的部分,负责特征融合和处理,以便提高检测的准确性和效率。亲测在小目标检测和大尺度目标检测的数据集上都有大幅度的涨点效果(mAP直接涨了大概有0.4左右。同时本文对Slim-Neck的框架原理进行了详细的分析,不光让大家会添加到自己的模型在写论文的时候也能够有一定的参照。

Snu77的博客 1万+

17.6 LangSmith 私有化部署实战指南:企业级AI应用的安全基石

LangSmith 私有化部署, 企业级AI开发平台, 数据隐私合规, 混合云架构, 模型监控与审计。

yonggeit的博客 3777

codeforce 429D. Tricky Function (思维暴力过)

题目描述 Iahub and Sorin are the best competitive programmers in their town. However, they can't both qualify to an important contest. The selection will be made with the help of a single proble...

dengguan2720的博客 329

北斗导航 | 卡尔曼滤波与因子图优化对比(附图优化matlab代码)

- 历史数据利用:因子图通过滑动窗口保留历史状态,优化时联合多帧数据;卡尔曼滤波仅依赖当前和上一帧状态 。 - 迭代优化:因子图通过多次迭代逼近最优解,卡尔曼滤波仅单次更新 。 - 误差抑制:因子图的多次线性化可有效抑制非线性误差(如GNSS伪距观测的非线性) 。

尘世冰封的专栏 1300

[luogu] CF243A The Brand New Function 或二进制,剪枝暴力

前言 传送门: 思路 题意 : 给你一个数组,询问有多少个区间[l,r]或出来的值,不同于给的值 本来看上区间问题就没想到使用暴力的,而是想到了线性基 但是没想到还是可以使用暴力过的 而且我们可以使用a[j]∣a[i]=a[j]a[j]|a[i] = a[j]a[j]∣a[i]=a[j] 剪枝 这样子在我们倒序枚举jjj的时候,如果出现了这个既能保证不出现又可以保证… Mycode 'const int N = 1e6+10; int a[N]; void solve() { int n;cin&g

qq_34364611的博客 1849

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Calculating Function

文章目录一、Calculating Function总结 一、Calculating Function 本题链接:Calculating Function 题目: A. Calculating Function time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output For a positive integer n let’s define a fun.

佛系更新 755

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

HDU 5875 Function (单调栈+暴力)

Function Time Limit: 7000/3500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 2669    Accepted Submission(s): 922 Problem Description The shorter, the

Mr_Treeeee的博客 373

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

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

Discrete Function(timus1010,暴力)

http://acm.timus.ru/problem.aspx?space=1&num=1010 1010. Discrete Function Time limit: 1.0 second Memory limit: 64 MB There is a discrete function. It is specified for integer arguments from 1 to N

JHC23的专栏 1269

[LeetCode Python3] 396. Rotate Function + 暴力 + 错位相减

396. Rotate Function 暴力 时间复杂度O(n*n) 按照计算规则,一步一步来 class Solution: def maxRotateFunction(self, nums: List[int]) -> int: size, res = len(nums), -float('inf') for i in range(size): tmp = 0 for j in range(size):

xvrixingkong的博客 200

hdu 5875 Function 单调栈 + 暴力

// hdu 5875 Function 单调栈 + 暴力 // // 题目链接: // // http://acm.split.hdu.edu.cn/showproblem.php?pid=5875 // // 题目大意: // // 一数组,给定区间[l,r],求a[l] % a[l + 1] % ... % a[r] // // 解题思路: // //

TIMELIMITE的专栏 1268

C. Strange Function「思维 + 数论」

C. Strange Function 题目描述: 定义f(i)为最小的不能被 i 整除的正整数 求∑i=1nf(i)\sum_{i=1}^{n}f(i)∑i=1n​f(i),1<=n<=1e16 思路: 打表发现根本找不到规律 暴力算肯定不行,毕竟n巨大 这个时候就该想想在n这么大的情况下不能暴力,也没有规律该怎么办 对于f(i) = x,我们分析一下会发现,因为 x 是最小的不能被 i 整除的最小正数,就说明其实 i 能整除 1 到 i - 1中的任何一个,也就是能整除lcm(1, 2

Suryxin's blogs 990

Ural 1353 Milliard Vasya's Function

题意:统计1-1e9中数位和为S的数的个数 链接:http://acm.timus.ru/problem.aspx?space=1&num=1353 思路:解法一、暴力打表,直接输出表            解法二、数位dp,dp[i][j]表示放到第i个数,和为j的个数 注意点:无 以下为AC代码: ID Date Author Problem Lan

luminous11的专栏 689

思维+暴力(Function HDU - 5875 )

The shorter, the simpler. With this problem, you should be convinced of this truth. You are given an array A of N postive integers, and M queries in the form (l,r). A function F(l,r) (1≤l≤r≤N) is defi...

goto_1600的博客 353

HDU - 5875 Function 二分+RMQ||线段树||暴力

题目链接 题意: 给出长度为n的正整数序列,q个询问[l,r] f(l,r) = f(l,r-1)%a[r] l f(l,r) = a[r] l=r 对于每个询问[l,r],输出f(l,r)的值 思路: 可以推出f(l,r)=a[l]%a[l+1]%...%a[r] 然后我们知道,因为是%,所以只有遇见第一个比a[l]

Marcus-Bao的个人主页 538

HDU - 5875 Function(暴力 / 线段树)

The shorter, the simpler. With this problem, you should be convinced of this truth. You are given an array AA of NN postive integers, and MM queries in the form (l,r)(l,r). A function F(l,r) (1≤l≤r≤N)...

smilng的博客 263
上一篇: 分块 公主的朋友
下一篇: 二维spfa [JLOI2011]飞行路线
QTY_
博客等级 码龄9年 13粉丝 211原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值