当前位置: 首页 > news >正文

笛卡尔树 (区间最小值)

笛卡尔树 (区间最小值)

https://codeforces.com/gym/105588/problem/M

#include<bits/stdc++.h>
using namespace std;#define vcoistnt ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 
#define int long long
#define vi vector<int>
#define vb vector<bool>
typedef pair<int,int> pll;const int N=2e5+10;
const int inf=1e18;
const int mod=998244353;int n,m;
vi a(N);
vi b(N);//构建笛卡尔树
vi ls(N),rs(N),sta(N);
void build(){int top=0;for(int i=1;i<=n;i++){int pos=top;while(pos>0 && b[sta[pos]]>b[i]){pos--;}if(pos>0){rs[sta[pos]] = i;}if(pos<top){ls[i]=sta[pos+1];}sta[++pos] =i;top=pos;}
}bool dfs(int l,int r,int x,int fa){if(fa && b[x]%b[fa]) return 0;if(l>=r) return 1;return dfs(l,x-1,ls[x],x)&&dfs(x+1,r,rs[x],x);
}bool check(int x){for(int i=1;i<=n;i++) b[i]=a[i]+x;for(int i=1;i<=n;i++) ls[i]=rs[i]=0;    //重置笛卡尔树build();return dfs(1,n,sta[1],0);}void solve(){cin>>n>>m;int mn=inf;for(int i=1;i<=n;i++){cin>>a[i];mn=min(mn,a[i]);}int g=0;for(int i=1;i<n;i++){g=__gcd(g,abs(a[i]-a[i+1]));}  //求最大公约数做差之后即使+x最大公约数也不会受到影响if(g==0){   //只有一个数以及所有数都相等的情况cout<<m<<" "<<m*(m+1)/2<<"\n";return;}vi d;   //统计因子d.push_back(0);     //我习惯从下标1开始for(int i=1;i*i<=g;i++){    //求最大公约数的因子if(g%i==0){d.push_back(i);if(i*i!=g) d.push_back(g/i);}}int id=d.size()-1;int cnt=0,sum=0;for(int t=1;t<=id;t++){     //检查所有合法的因子int x=d[t]-mn;if(x<1 || x>m) continue;int ret=check(x);if(ret) cnt++,sum+=x;}cout<<cnt<<" "<<sum<<"\n";}
signed main() {vcoistntcout<<fixed<<setprecision(2);int _=1;cin>>_;while(_--) solve();return 0;
}
http://www.hskmm.com/?act=detail&tid=21729

相关文章:

  • CF2003F. Turtle and Three Sequences
  • 【Rust GUI开发入门】编写一个本地音乐播放器(11. 支持动态明暗主题切换) - Jordan
  • 利用接口中的静态虚拟成员实现自定义配置节
  • 天线增益与有源接收面积之间的关系
  • 2025CSP-S晋级和英才计划入围后:我走过了哪些路
  • 流量分析
  • fdsaf -
  • 【J+S 二十连测】-- 第十二套爆炸记
  • 2025-2026-1 CS3311 软件工程 个人项目第一版已发布
  • Python浅拷贝、深拷贝
  • 破解 Pycharm
  • 阿里业务身份建模
  • 实用指南:矩阵结构体 图片绘制 超级玛丽demo6
  • 5分钟理清:Session、JWT、Token、SSO、OAuth 2.0 认证逻辑
  • 2025年10.1~10.6日信息竞赛计划安排表
  • 【Rust GUI开发入门】编写一个本地音乐播放器(10. 拼装UI组件) - Jordan
  • 国产数据库-达梦docker镜像安装
  • CAP 8.4 版本发布通告
  • 【Leetcode】随笔 - 详解
  • DevEco Studio 编辑器的使用 - 实践
  • docker安装MySQL8.0.25的坑
  • WPF 深入系列.2.布局系统.尺寸属性 - 指南
  • 实训
  • Kosaraju算法
  • bat批处理设置临时PATH路径不能访问
  • 10. Spring AI + RAG - Rainbow
  • 《AI智能体实战研发教程(从0到企业级项目落地)》全网上线|CSDN B站同步首发
  • 9. Spring AI 当中对应 MCP 的操作 - Rainbow
  • 9/30
  • rhel8无法输入中文问题(红帽8安装中文输入法)