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

长春模板建站系统海外aso优化

长春模板建站系统,海外aso优化,手机免费自助建站系统,企业公司网站建设方案2025年大一ACM训练-尺取 ​​尺取法(Sliding Window): ​​1. 基本概念​​   尺取法(又称滑动窗口法)是一种​​通过维护窗口的左右边界来高效解决子区间问题​​的算法技巧,常用于:   1…

2025年大一ACM训练-尺取

​​尺取法(Sliding Window):

​​1. 基本概念​​
  尺取法(又称滑动窗口法)是一种​​通过维护窗口的左右边界来高效解决子区间问题​​的算法技巧,常用于:
  1.寻找满足条件的​​最短/最长连续子数组​​
  2.统计满足某些性质的子区间数量
时间复杂度通常从暴力 O(n²) 优化到 O(n)
​​2. 算法框架​

int left = 0, right = 0;  // 初始化窗口边界
while (right < n) {// 1. 扩大右边界,将a[right]加入窗口update(window, a[right]);right++;// 2. 满足条件时,收缩左边界while (is_valid(window)) {// 更新答案(如最小长度)ans = min(ans, right - left);// 移除a[left]并移动左边界remove(window, a[left]);left++;}
}

  视频讲解见下方

尺取法

Problem A:尺取Language
和 Problem G:尺取 Jessica Reading Problem
Problem F:林大实验林场–尺取法
是同一个
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
int a[1000005];
int main()
{int t,n,s,i,j=0,k=0,sum=0,c;unordered_set<int>set;scanf("%d",&n);for(i=0;i<n; i++){scanf("%d",&a[i]);set.insert(a[i]);}j=set.size();unordered_map<int,int>map;   //不能使用std::mapint l=0,r=0,ans=1000005;while(r<n){if(map[a[r]]==0) sum++;map[a[r]]++;r++;while(sum==j){ans=min(ans,r-l);map[a[l]]--;if(map[a[l]]==0) sum--;l++;}}printf("%d\n",ans);return 0;
}

  标准尺取法的应用(寻找最短区间问题),但本题要注意使用std::unordered_map。以下是二者区别:
  为什么 std::map 比 std::unordered_map 慢?​​
std::map 和 std::unordered_map 都是 C++ STL 提供的关联容器,用于存储键值对(key-value),但它们的底层实现不同,导致时间复杂度不同:
在这里插入图片描述

Problem B:尺取-Graveyard Design
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
vector <pair<ll,ll> > ans;
bool compare(const pair<ll,ll>& a,const pair<ll,ll>& b)
{return (a.second - a.first) > (b.second - b.first);
}
int main()
{ll n;scanf("%lld",&n);ll l=1,r=1,sum=0;while(1){while(sum<n){sum+=r*r;r++;}if(sum<n) break;if(sum==n) ans.push_back(make_pair(l,r-1));sum-=l*l;l++;if(l*l>n) break;}sort(ans.begin(),ans.end(),compare);printf("%lld\n",ans.size());for(ll i=0;i<ans.size();i++){printf("%lld ",ans[i].second-ans[i].first+1);for(ll j=ans[i].first;j<=ans[i].second;j++){printf("%lld ",j);  //每一个都要加空格 }printf("\n");}return 0;
}

Problem C:尺取-Sum of Consecutive Prime Numbers
在这里插入图片描述

  先用埃氏筛求出素数队列,然后在素数队列下进行尺取法

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL maxn = 1e4+10;
int primeNum[maxn];
bool isPrime[maxn];
void getPrime(int n)
{for(int i=0;i<maxn;i++) isPrime[i]=true;for(int i=2;i<=n;i++)if(isPrime[i])for(int j=2;i*j<=n;j++) isPrime[i*j]=false;for(int i=2,j=1;i<=n;i++)if(isPrime[i]) primeNum[j++] = i;
}
int main()
{int n;getPrime(maxn-10);while(cin >> n && n){int cnt=0,i=1,j=1,sum=0;if(isPrime[n]) cnt++;while(1){while(sum<n && primeNum[j]<n) sum+=primeNum[j++];if(sum<n) break;if(sum==n) cnt++;sum-=primeNum[i++];}cout<<cnt<<endl;}return 0;
}

Problem D:尺取-序列
在这里插入图片描述

  标准尺取题

#include<bits/stdc++.h>
using namespace std;
int m,n,s;
int q[100005];
int main()
{scanf("%d",&m);while(m--){scanf("%d%d",&n,&s);for(int i=0;i<n;i++) scanf("%d",&q[i]);int l=0,r=0,ans=n+1,sum=0;while(1){while(r<n && sum<s) sum+=q[r++];if(sum<s) break;ans=min(ans,r-l);sum-=q[l++];}if(ans==n+1) printf("0\n");else printf("%d\n",ans);}return 0;
}

Problem E:尺取-字符串
在这里插入图片描述

#include <bits/stdc++.h>
using namespace std; 
const int N = 1e6 + 5;
char s[N];
int cnt[255];
int main()
{int i, j, n, m, tot = 0, ans = 1e9;scanf("%s",s+1);n = strlen(s+1);j = 1; cnt[s[1]]++; tot = 1;for(i = 2; i <= n; i++){if(!cnt[s[i]]) tot++;cnt[s[i]]++;while(cnt[s[j]]>1){cnt[s[j]]--;j++;}if(tot==26) ans=min(ans,i-j+1);}printf("%d",ans);return 0;
}

  尺取法相关问题均与上述模板相似
                                —ending

http://www.dtcms.com/wzjs/446601.html

相关文章:

  • 做网站seo赚钱吗站长工具百科
  • 专门做2手手机的网站青岛seo排名公司
  • 做游戏的外包网站昆明网络营销公司哪家比较好
  • 建设专业网站哪家更专业品牌建设
  • 昆山网站建设机构武汉网站seo
  • 自学网站开发设计关于华大18年专注seo服务网站制作应用开发
  • 深圳龙华汽车网站建设自己的网站怎么推广
  • java语言怎么做网站主要推广手段免费
  • 网站建立好了自己怎么做优化百度安装下载
  • 郑州做网站的公司网店代运营靠谱吗
  • 网站推广与营销知识百度搜索链接
  • 网站建设售后服务内容网络服务商
  • 采集类淘宝客网站怎么做快速建站平台
  • 网站搭建就来徐州百度网络非常好seo收费低
  • 怎么判断一个网站做的好新媒体平台
  • 论坛类网站如何备案谷歌搜索入口手机版
  • 加强网站党建频道建设seo技术专员招聘
  • 策划公司组织结构图南昌seo优化公司
  • 做sns网站需要什么广州白云区今天的消息
  • 营销型网站知识上海抖音推广
  • 所有爱做网站近期网络营销的热点事件
  • vs2010网站开发登录代码市场调研报告最佳范文
  • 想做一个静态网页网站不需要有后台数据库seo关键词排名优化方法
  • 设计日本网站长沙百度快速优化
  • 石家庄网站建设石家庄seo点击软件哪个好用
  • 手机上怎么做网站百度官网进入
  • 网站上怎么做动画广告视频在线观看电商还有发展前景吗
  • 国际军事新闻头条郑州专业seo首选
  • 公司转让流程seo规范培训
  • 网站突然消失了视频网站推广