[题解](更新中)MX-X6 A~B

news/2024/10/4 12:56:11/文章来源:https://www.cnblogs.com/Sinktank/p/18446512

Portal:https://www.luogu.com.cn/contest/200833

A - もしも

容易发现可以构造\(1,x\)\(x,1\)让序列如\(\dots,1,x,1,x,1,x,\dots\)这样循环。只需要关注\(n\)的奇偶性即可。

点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,n,an;
signed main(){cin>>t;while(t--){cin>>n>>an;if(n&1) cout<<an<<" "<<1<<"\n";else cout<<1<<" "<<an<<"\n";}return 0;
}

B - さよならワンダーランド

根据题意,我们找到的\(j\)需要满足:

  • \(j\ge 1-i\)
  • \(j\le n-i\)
  • \(j\ge a_i\)
  • \(j\le a_{i+j}\)

其中前\(3\)项都是静态的,与\(j\)无关的,所以我们在前\(3\)项限制的范围\([l,r]\)内寻找\(j\)使得\(j\le a_{i+j}\)即可,这也是此题的关键点。

我们记\(b_i=a_i-i\),那么
\(a_{i+j}\ge j\)
\(\iff [\max\limits_{j\in [l,r]}a_{i+j}-j]\ge 0\)
\(\iff [\max\limits_{j\in [l,r]}a_{i+j}-(i+j)]\ge (-i)\)
\(\iff \max\limits_{j\in [l,r]}b_{i+j} \ge (-i)\)

因此我们仅需用ST表维护出\(b\)的区间最大值,然后查找是否存在就直接看最后那个式子是否成立;查找具体位置我直接用的二分,如果\([l,mid]\)成立,那么左边一定存在合法的\(j\)(不是说右边没有),否则\(j\)一定在右边。

点击查看代码
#include<bits/stdc++.h>
#define int long long
#define N 300010
using namespace std;
int n,a[N],f[N][30],lg[N];
void init(){lg[0]=-1;for(int i=1;i<=n;i++) lg[i]=lg[i/2]+1;for(int i=1;i<=lg[n];i++){for(int j=1;j+(1<<i)-1<=n;j++){f[j][i]=max(f[j][i-1],f[j+(1<<(i-1))][i-1]);}}
}
int query(int l,int r){if(r<l) return LLONG_MIN;int len=lg[r-l+1];return max(f[l][len],f[r-(1<<len)+1][len]);
}
int modi(int a){return min(max(1ll,a),n);
}
signed main(){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];f[i][0]=a[i]-i;}init();for(int i=1;i<=n;i++){int l=max(a[i],1-i),r=n-i;if(query(i+l,i+r)>=-i){while(l<r){int mid=(l+r)>>1;if(query(i+l,i+mid)>=-i) r=mid;else l=mid+1;}cout<<"1 "<<l<<"\n";}else cout<<"0\n";}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/807883.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卸载时报错:‘’系统找不到指定的驱动器‘’问题处理

操作系统:win11 问题描述:wegame,英雄联盟我早就卸载过了,今天在 设置/应用/安装的应用 这里又看见了,在此处点击卸载,报如下错误:解决办法: 查了一下网上的做法,大多数是删除注册表,我也试了几个,结果还是没有用。 最后灵机一动,记得控制面板那边也有卸载应用的位置…

[leetcode 25]. K 个一组翻转链表

题目描述: https://leetcode.cn/problems/reverse-nodes-in-k-group 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是…

高三鲜花 #1

flower #1国庆假期,好像因为教育厅进行了一些非常厉害的操作,导致衡中强制放了一周的假。当然有不少人是自愿留校,也有不少人是在家里歇两天就回学校的,我嘛比较摆了就,直接过一整个国庆( 已经经历了一个月的高三生活了。和我之前想象的一样,进入高三后每天晚上我的脑中…

Maven的下载安装(2024最新详细版~)

1. 1、进入Maven的官网地址,下载: Maven – Download Apache Maven2. 解压安装包到自己的安装目录3. 配置环境变量3.1配置到系统Path中3.2验证安装mvn -version 4. 本地仓库和Settings文件配置 4.1、创建自定义仓库,修改settings文件5. AI大模型手册

java 反序列化 cc6 复现

cc6复现环境:common-collections版本<=3.2.1,java版本随意. 我们观察java高于8u71的版本会发现sun.reflect.annotation.AnnotationInvocationHandler类被进行了修改,其中的readObject不去调用setvalue方法,而是创建了一个LinkedHashMap var7去重新进行操作,使我们之前的利用…

20241003

公交车(bus) 显然的题目,答案就是所有连通块的大小减一之和 #include <bits/stdc++.h>using namespace std;#define int long longconst int N = 1e7 + 5;int n, m, fa[N], sz[N], ans;int find(int x) {if (fa[x] == x) {return x;}return fa[x] = find(fa[x]); }void m…

C语言中对象式宏

001、不使用对象式宏[root@localhost test]# ls test.c [root@localhost test]# cat test.c ## 测试程序 #include <stdio.h>int main(void) {int i, sum = 0;int v[5] = {3, 8, 2, 4, 6}; ## 定义int【5】 型数组for(i = 0; i < 5; i…

helm学习

引用案例: 学习连接:https://www.bilibili.com/video/BV12D4y1Y7Z7/?p=7&vd_source=e03131cedc959fdee0d1ea092e73fb24 (时间:06:16)helm新建一个chart,然后删除templates里面的文件,重新编写一个,最后完成发布,更新,回滚动作1,创建一个模版的chart包,删除原来的…

R语言中gene symbol 转换为ENTREZID, clusterprofile富集分析

001、genes <- read.table("genes.txt") ## 读取基因symbol head(genes) tail(genes) genes <- genes[genes != "NA_NA" & genes != "unknow",, drop = FALSE] ## 去除无效信息(可选) genes_list <…

折半查找法的平均查找长度(成功/失败)

转载:https://blog.csdn.net/qq_73966979/article/details/131354005

Leetcode 1498. 满足条件的子序列数目

1.题目基本信息 1.1.题目描述 给你一个整数数组 nums 和一个整数 target 。 请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目。 由于答案可能很大,请将结果对 109 + 7 取余后返回。 1.2.题目地址 https://leetcode.cn/problem…

Nuxt.js 应用中的 app:beforeMount 钩子详解

title: Nuxt.js 应用中的 app:beforeMount 钩子详解 date: 2024/10/4 updated: 2024/10/4 author: cmdragon excerpt: app:beforeMount 是一个强大的钩子,允许开发者在用户界面挂载前控制应用的初始化过程。通过有效利用这一钩子,我们可以优化应用的用户体验,保持状态一致…