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

2024ICPC成都I题好分割Good Partitions

Problem - I - Codeforces

由于支持单点修改,我们的目标则是每次单点修改后高效求出gcd(S)因数个数

#include<bits/stdc++.h>
using namespace std;
const int MAX_N=200005;
int a[MAX_N],n,q;//存储原始序列S0
vector<int>e[MAX_N];//e[i]包含i的所有因数
set<int>s;//所有“下降”位置的集合
int d[MAX_N];//d[factor]表示factor是当前多少个“下降”位置的因数
int calculate_answer(){if(s.empty())return n;//没有“下降”位置,所有k都合法,答案是nint min_element=*s.begin();//找到最小“下降”位置//因为所有“下降”位置的最大公因数gcd(S)一定是最小“下降”位置的因数//而我们要找的gcd(S)的因数也一定是最小“下降”位置的因数//所以我们只需要从最小“下降”位置的因数中筛选即可int count=0;for(auto factor:e[min_element])//遍历最小“下降”位置的所有因数if(d[factor]==s.size())count++;//如果其中一个因数factor是S中所有“下降”位置的因数,它就是gcd(S)的因数return count;
}
void insert_element(int i){s.insert(i);//插入新的“下降”位置i到集合Sfor(auto factor:e[i])d[factor]++;//新的“下降”位置i存储在e[i]中的所有因数对应的d[factor]值+1
}
void delete_element(int i){s.erase(i);//删除集合S中的“下降”位置ifor(auto factor:e[i])d[factor]--;//删除的“下降”位置i存储在e[i]中的所有因数对应的d[factor]值-1
}
void solve(){cin>>n>>q;fill(d+1,d+n+1,0);s.clear();//清空(预处理)for(int i=1;i<=n;i++){cin>>a[i];if(i>1&&a[i-1]>a[i])insert_element(i-1);}cout<<calculate_answer()<<endl;while(q--){int p,v;cin>>p>>v;//删除可能受影响的“下降”位置if(p>1&&a[p-1]>a[p])delete_element(p-1);if(p<n&&a[p]>a[p+1])delete_element(p);a[p]=v;//修改//插入可能新产生的“下降”位置if(p>1&&a[p-1]>a[p])insert_element(p-1);if(p<n&&a[p]>a[p+1])insert_element(p);cout<<calculate_answer()<<endl;}
}
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int t;cin>>t;for(int i=1;i<MAX_N;i++)for(int j=i;j<MAX_N;j+=i)e[j].push_back(i);//埃氏筛法思想,e[j]中包含了j的所有因子while(t--)solve();return 0;
}

http://www.dtcms.com/a/450396.html

相关文章:

  • 字节跳动2025面试专业问题集锦
  • 前端设计与布局常用术语(前端术语中英对照速查表)
  • Typescript return type
  • 做网站关键词必须要中文网址pc做网站服务器
  • MySQL包安装 -- RHEL系列(离线RPM包安装MySQL)
  • 计算机组成原理:多核处理机实例
  • wordpress 内置tag外贸网站优化哪家好
  • 机器学习算法部分demo
  • 网站的电子画册怎么做网络营销软文范例500字
  • 做司考题的网站广东网站备案时间
  • 东莞网站优化关键词推广网站开发合肥
  • 微博网站建设免费做网站广告
  • 怎样做网站平叿营销咨询公司排名前十
  • 做营销策划要用到哪些网站一般纳税人网站建设多少税率
  • 第3章:数据结构化输出-让 AI 返回 Java 对象
  • WGCLOUD一款优秀的运维监控软件
  • 03三大支柱:指标(Metrics)、日志(Logs)、追踪(Tracing)
  • 怎么帮客户做网站建站太仓住房与城乡建设部网站
  • Tableau:数据可视化领域的“艺术家”
  • 免费建立网站教程门户网站wordpress哪个比较好
  • 网站特色怎么写logo设计公司成都
  • 描述一下网站建设的基本流程2015年友情链接网站源代码下载
  • 生成式人工智能赋能高中化学教学的创新路径研究
  • 合肥做淘宝网站建设印尼网站建设费用
  • 优化学校网站建设方案火币网站怎么做空
  • 珠海企业网站推广服务哪个网站可以领手工回家做
  • DLL服务注册
  • 光电二极管放大器噪声分析与设计Checklist
  • 静安微信手机网站制作搜索引擎 网站推广 举例
  • 批量图片加水印工具