首页 > 其他分享 >梦熊 NOIP 13连测 #13

梦熊 NOIP 13连测 #13

时间:2024-10-24 19:00:08浏览次数:1  
标签:13 int 枚举 连测 sm ans 梦熊 now

赛时 100+75+30+0

A.

求对于区间 \([l, r]\) 的答案,转换成 $ans(R) - ans(L - 1) \(,\)ans(i)$ 表示小于等于 \(i\) 的元素个数。

对于 \(x\),二分小于等于 \(x\) 的个数,可以直接对于二分的这个数 q 次操作判断,因为如果它可以小于它的一定也可以。时间复杂度 \(O(Q\log n)\)

B.

75pts

设当前的中间的数为 \(now\),枚举左端点,向右枚举每次相当于插入两个数,如果两个数都大于 \(now\),那 \(now\) 变为小于它的第一个数,若两个数都小于 \(now\),那 \(now\) 变成大于它的第一个数,否则就不变,依次更新答案即可,时间复杂度 \(O(n^2 \log n)\)

100pts

枚举中位数,令小于它的数为-1,大于它的数为1,向左向右枚举分别做前缀/后缀和,一个区间满足当且仅当这个区间的和为0,记录一下统计答案即可。

#include<bits/stdc++.h>
#define int long long
using namespace std;

const int N = 1e6 + 7;
int p[N], a[N], f[N], sum1[N], sum2[N];
int sm[N];
int mp[N];
signed main() {
    freopen("book.in", "r", stdin);
    freopen("book.out", "w", stdout);
    int n;
    cin >> n;
    for(int i = 1; i <= n; i ++) {
        cin >> a[i];
        a[p[i]] = i;
    }
    int ans = 0;
    for(int i = 1; i <= n; i ++) {
        for(int j = 1; j <= n * 2; j ++) mp[j] = 0;
        int now = 0;
        sm[a[i]] = 0;
        for(int j = a[i] - 1; j >= 1; j --) {
            if(p[j] < i) sm[j] = sm[j + 1] - 1;
            else sm[j] = sm[j + 1] + 1;
        }
        for(int j = a[i] + 1; j <= n; j ++) {
            if(p[j] < i) sm[j] = sm[j - 1] - 1;
            else sm[j] = sm[j - 1] + 1;
        }
        for(int j = 1; j <= a[i]; j ++) mp[n + sm[j]] += j;
        for(int j = a[i]; j <= n; j ++) ans += j * i * mp[n - sm[j]];
    }
    cout << ans << endl;
}

C.

标签:13,int,枚举,连测,sm,ans,梦熊,now
From: https://www.cnblogs.com/wyyqwq/p/18500238

相关文章

  • Android 13.0 系统framework修改低电量关机值为2%
    1.前言在13.0的系统rom产品定制化开发中,在系统关于低电量关机的值,每个平台都不同,根据实际开发底层硬件的要求看实际情况来调整这个值,所以需要分析相关的电量变化执行的代码流程,来实现这个功能,接下来看具体怎么实现2.系统framework修改低电量关机值为2%的核心类frameworks\b......
  • 处理异常的13条军规
    前言在我们日常工作中,经常会遇到一些异常,比如:NullPointerException、NumberFormatException、ClassCastException等等。那么问题来了,我们该如何处理异常,让代码变得更优雅呢?1不要忽略异常不知道你有没有遇到过下面这段代码:反例:Longid=null;try{id=Long.parseLon......
  • CF1139C. Edgy Trees 题解 并查集
    题目链接:https://codeforces.com/problemset/problem/1139/C视频讲解:https://www.bilibili.com/video/BV1tZ1FYPELp?p=3我们可以求总方案数-不满足条件的方案数。设一个不包含黑色边的极大连通块的大小为\(sz_i\)。则答案为\[n^k-\sum\{sz_i^k\}\]示例程序:#include......
  • MT1371-MT1380 码题集 (c 语言详解)
    目录        MT1371·所有路径        MT1372·矩阵清零        MT1373·亲和数         MT1374·Pronic数         MT1375·4和7的序列        MT1376·小码哥的数学        MT1377·模乘逆元      ......
  • 蓝桥杯EDA赛道经验分享(一)&12、13、14届省赛客观题知识点
    一、经验分享1.文件提取离线模式——>文件——>(大压缩包)导入专业版——>导入文件;(小压缩包)提取库文件。2.布线规则先根据参赛文件改布线规则(间距,线宽)。3.PCBlayout注意事项(1)避免重叠:确保元件间无物理重叠,为布线留出足够空间。(2)元件放置:大功率元件及发热元件应分散布局......
  • 0基础学java之Day13
    static理解:静态的作用:1.修饰属性类加载到方法区时,JVM会扫描该类的所有属性并把静态属性加载到静态区中,静态属性属于类属性,该类所有的对象都共享该属性静态属性直到项目结束时才会被回收2.修饰方法属于类方法,直接用类名调用应用场景:工具类3.修饰代码块静态代......
  • P3547 [POI2013] CEN-Price List
    很不错的图论题。考虑对\(a,2a,b\)大小进行讨论。\(2a\leb\),这种情况是简单的,根本不会走\(b\)边,直接bfs即可,此时答案为\(d*a\)。\(a\leb<2a\),这种情况下能走两条\(a\)边就会用\(b\)边替换掉,同时不用担心三元环的情况(因为三元环会出现三个点最短路都是\(1......
  • 计算机毕业设计项目推荐,基于协同过滤算法的短视频推荐系统设计与实现30213(开题答辩+程
    摘 要现阶段,社会的发展和科技的进步,以及大数据时代下纷繁数据信息的融合,使得人们在生产及生活过程中,都将会接收到各种类型的数据信息,而通过计算机技术与网络技术,则能够将众多人们所不了解或不常用的信息,以简单的模式转化并传递给人们,使得人们的生产及生活质量得以显著提升......
  • 牛客练习赛130
    A-xtoy可以把与操作理解为减,把或操作理解为加。先减掉多的,再加上少的。因此至多两次即可。#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;usingui32=unsignedint;usingpii=pair<int,int>;voidsolve(){ i64......
  • 腾讯地图web端请求报错113.该功能未授权
    问题描述:请求地址:https://apis.map.qq.com/jsapi?qt=geoc&addr=%2C%2C%2C&key=你的key&output=jsonp&pf=jsapi&ref=jsapi&cb=qq.maps._svcb3.geocoder0报错:qq.maps._svcb3.geocoder0&&qq.maps._svcb3.geocoder0({"status":113,"me......