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

牛客小白月赛122 E

https://ac.nowcoder.com/acm/contest/119664

E

计算f(l,r)需要判断[l,r]是否为[1,l-1]+[r+1,n]的子序列(对此我们可以用双指针实现);
如果每次枚举(l,r)时都去判断一次,得到时间复杂度为O(n3*logn)对于n=2000不够;
我们考虑如何预处理以达到快速判断的目的;

方法一

分析

显然对于一个确定的l,若r满足条件,那么显然r-1也满足条件。我们可以通过枚举l,然后从大到小枚举r,找到rmax,那么比r小的都不必进行双指针判断。

更进一步,对于符合条件的(l,r),l增加时,rmax不增;可以进一步减小枚举量 时间复杂度O(n2

代码实现

#include <bits/stdc++.h>
using namespace std;
int n;
int P[10000];
bool check (int l, int r)//返回f(i,j)的值
{int x = l;for (int i = 1; i <= n; i++){if (i == l){i = r;continue;}if (x <= r && P[x] == P[i]){x++;}}return x == r + 1;
};
int main()
{cin >> n;for (int i = 1; i <= n; i++){cin >> P[i];}int ans = 0;for (int i = 2; i < n; i++)//枚举l{int l = i - 1, r = n - 1;while (l < r)//二分查找最大的r{int mid = (l + r + 1) >> 1;if (check(i, mid)){l = mid;}else{r = mid - 1;}}ans += l - i + 1;}cout << ans << endl;return 0;
}

方法二

分析

考虑 ll[i] 和 rr[i] :
ll[i] 是满足[i,i+x-1]是[1,i-1]的子序列的x的最大值
rr[i] 是满足[i-x+1,i]是[i+1,n]的子序列的x的最大值

那么f(i,j)==1等价于ll[l]+rr[r]>r-l;
时间复杂度O(n2

代码实现

#include<bits/stdc++.h>
using namespace std;
int p[10000], ll[10000], rr[10000];
int n;
bool check1(int i, int x) //起点 长度
{int k = i;int t = 1;while (t <= i - 1 ){if (p[k] == p[t]){k++;if (k == i + x)return 1;}t++;}return 0;
}
bool check2(int i, int x) //终点 长度
{int k = i - x + 1;int t = i + 1;while (t <= n){if (p[k] == p[t]){k++;if (k == i + 1)return 1;}t++;}return 0;
}
int main()
{cin >> n;for (int i = 1; i <= n; i++)cin >> p[i];for (int i = 2; i < n; i++){int l = 0, r = n;int mid;while (r - l >= 0){if (r == l){ll[i] = l;break;}mid = (l + r + 1) / 2;if (check1(i, mid))l = mid;elser = mid-1;}}for (int i = 2; i < n; i++){int l = 0, r = n;int mid;while (r - l >= 0){if (r == l){rr[i] = l;break;}mid = (l + r + 1) / 2;if (check2(i, mid))l = mid;elser = mid-1;}}int sum = 0;for (int l = 2; l < n; l++)for (int r = l; r < n; r++)if (ll[l] + rr[r] >= r - l+1)sum++;cout << sum;return 0;
}
http://www.sczhlp.com/news/206615/

相关文章:

  • 深入解析:深度学习助力眼底疾病精准诊断:系统架构与设计思路解析
  • 深圳工业产品设计公司绍兴seo公司
  • 官方网站建设账务处理鞍山网站设计公司
  • ps怎么做网站首页界面国内各大网站
  • 制作网站团队如何从网站获取图片做全景图
  • 怎么用源代码做网站创意产品设计网站推荐
  • 天猫网站建设的优势有哪些湖南领企信息科技有限公司
  • 建行网站济南做网站需不需要服务器
  • 用三权重的网站做友链有好处没怎么做视频网站的seo
  • 江苏建设厅网站哈尔滨百度推广电话
  • 网站该怎么做链接毕设帮做网站
  • 安徽省住房城乡建设厅网站官网做一个网址需要什么
  • 佛山建网站永网江西省建设厅网站官网
  • 搜索服务公司淄博网站优化资讯
  • 做网站外包给淘宝好吗网络公司专业做网站
  • 模仿网站制作三网合一网站
  • 网站内网页标题对百度排名建设网站空间多少钱
  • 成都网站制作scgcwordpress搭建ctf
  • 镇江网站设计建设价格精品课程网站建设建议
  • 网站建设前期需要干嘛wordpress清理缓存
  • 做邀请函的网站网站 自定义表单
  • 出售手表的网站有哪些wordpress 块引用
  • 2025 年最新反应釜源头厂家排行榜:涵盖实验室 / 高压 / 加氢等类型设备,精选优质企业最新推荐
  • 2025年10月铝合金凉亭品牌推荐排行:深度评测五家主流厂商
  • PLAN(动态更新)
  • 工程公司网站模板下载做网站实名认证总是失败怎么回事
  • 江苏营销型网站公司上海金山网站建设公司
  • 上海网站搭建平台公司最热网络游戏排行
  • 专业做网站服务商目前最新的营销方式有哪些
  • phpstorm网站开发做的网站适应屏幕大小