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

网站托管服务是什么特色软件app推荐

网站托管服务是什么,特色软件app推荐,无锡网站排名优化公司哪家好,wordpress 自定义 sql题目大意 请点击 这里 查看原题面。 有一个长度为 2 ⋅ N 2\cdot N 2⋅N 的序列 A A A,其中 1 , 2 , … , N 1,2,\dots,N 1,2,…,N 各出现了两次。现在要找满足如下条件的数对 ( a , b ) (a,b) (a,b) 的个数: a a a 的两次出现不相邻。 b b b 的两…

题目大意

请点击 这里 查看原题面。

有一个长度为 2 ⋅ N 2\cdot N 2N 的序列 A A A,其中 1 , 2 , … , N 1,2,\dots,N 1,2,,N 各出现了两次。现在要找满足如下条件的数对 ( a , b ) (a,b) (a,b) 的个数:

  • a a a 的两次出现不相邻。
  • b b b 的两次出现不相邻。
  • 交换一个 a a a 和一个 b b b 的位置任意多次之后,可以使两个 a a a 和 两个 b b b 相邻。

有多测,且 1 ≤ N ≤ 2 ⋅ 1 0 5 1\le N\le 2\cdot 10^5 1N2105

思路

N N N 的值很大,对于每组数据,我们需要一个时间复杂度为 O ( N ) O(N) O(N),总时间复杂度 O ( ∑ 1 T N ) O(\sum_1^T N) O(1TN)。考虑只枚举二元组中的一个数,通过计算得到第二个数并验证。为了更高效、更方便,我们不妨记录一下 1 1 1 N N N 在数组中两次出现的位置。实际上,直接开两个数组就可以维护,我使用了 vector,一个动态数组,虽然浪费空间,但是代码难度不高。

我们可以发现,如果想要满足第三条要求,那么 a a a b b b 需要满足以下条件:

  • a a a 的第一次出现位置和 b b b 的第一次出现位置相邻。
  • a a a 的第二次出现位置和 b b b 的第二次出现位置相邻。

我们需要规定一个“限制”或者“顺序”来避免重复统计。每次只统计第一次出现在 a a a 后面且相邻的 b b b,然后判断第二次是否相邻。但是还有一个小细节:当数据中出现形容 1 2 1 2 的时候,程序遍历到 1 1 1,统计了一次,然后遍历到 2 2 2,又会统计一次。但这是错误的,因为这相当于是调用了两次 1 1 1 的第二个位置。所以我们要小心这个问题。

代码

// 评测记录:https://atcoder.jp/contests/abc399/submissions/64303061
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;int t, n, a[400010]; // 注意数组大小
vector<int> p[200010]; // p 记录位置bool check(int x, int y) // 判断两个位置是否相邻
{return abs(x - y) == 1;
}int main()
{cin >> t;while (t--){cin >> n;for (int i = 1; i <= n; i++)p[i].clear(); // 多测初始化for (int i = 1; i <= n * 2; i++){cin >> a[i];p[a[i]].push_back(i);}long long ans = 0;for (int i = 1; i <= n; i++){if (check(p[i][0], p[i][1]))continue; // 两个 a 相邻int j = a[p[i][0] + 1];if (p[j][0] != p[i][0] + 1)continue; // 细节处理if (check(p[j][0], p[j][1]))continue; // 两个 b 相邻if (check(p[i][1], p[j][1]))ans++; // 第二次出现的位置相邻就统计答案}cout << ans << endl;}return 0;
}

总结

这道题难度不大,个人感觉是 普及 / 提高 − \color{gold}普及/提高- 普及/提高 左右。最后,希望这篇题解对你有帮助,如有想法欢迎评论或私信提出!


文章转载自:

http://Q80IvI62.cwgpL.cn
http://97xZQrg7.cwgpL.cn
http://1zhFH0UU.cwgpL.cn
http://xEKHYAUi.cwgpL.cn
http://ODRO4sIJ.cwgpL.cn
http://AVthOcw1.cwgpL.cn
http://Fp9ae3vF.cwgpL.cn
http://a0mvqsKv.cwgpL.cn
http://Qw08SCRG.cwgpL.cn
http://DcxXFbaW.cwgpL.cn
http://GioUi61X.cwgpL.cn
http://po3mGg0z.cwgpL.cn
http://oiGaMahG.cwgpL.cn
http://bsXf5W5k.cwgpL.cn
http://ibXj0WOP.cwgpL.cn
http://P4mKzbyS.cwgpL.cn
http://5bBxAprF.cwgpL.cn
http://P9yjLUgH.cwgpL.cn
http://KOvQOw8k.cwgpL.cn
http://oRHdpCll.cwgpL.cn
http://Vu7GdkMc.cwgpL.cn
http://IhqVuT8H.cwgpL.cn
http://FBWSs04D.cwgpL.cn
http://0MvLqG3C.cwgpL.cn
http://WfjmcwOS.cwgpL.cn
http://MOeaRpK9.cwgpL.cn
http://yeFLXUoD.cwgpL.cn
http://YwHBYZqq.cwgpL.cn
http://yEQWcPT2.cwgpL.cn
http://JSekcwxZ.cwgpL.cn
http://www.dtcms.com/wzjs/763344.html

相关文章:

  • 谷歌外贸网站seo怎么做哈尔滨有多少家网站建设公司
  • 怎样做网络推广才能有效果广州seo学徒
  • 网站建设gon重网站建设
  • 个人网站名可以和别人一样吗网站会员后台
  • 湖北民族建设集团网站首页泰安seo排名
  • 山东大禹建设集团网站wordpress 主题 中国风
  • 网站建设认证试题免费网站的app
  • 做实验用哪些国外网站打开上海发布
  • 163手机移动网站网上商城网站设计
  • 工厂怎么做网站wordpress崩了
  • 深圳专业网站设计公司哪家好2022房地产行业现状及前景
  • 如何做网站后台管理flash xml网站模板
  • 网页设计怎么分析网站啊基于wordpress做的
  • 用illustrator做网站专门做外贸机械的网站
  • 丹徒区建设局网站代做毕网站
  • 陕西seo公司沧浪seo网站优化软件
  • 成都 商业网站建设定制wordpress后台
  • 浙江省2011年1月高等教育自学考试 网站建设与管理试题与答案网站空间运行挂机宝
  • 简洁企业网站源码python基础教程第3版
  • 网站怎么做动态切图网站代码 公告栏 php
  • 成都产品网站建设建设网站后怎么发布
  • 自助建站网站程序源码有哪个网站教人做美食
  • 搜狗seo网站搜索引擎优化方案的案例
  • 网站开发的进度表怎样创建一个网站
  • 新建网站做优化flarum和wordpress
  • 网站空间带宽wordpress登录搜索
  • 做店标 做店招的网站免费工程信息网
  • 装修公司企业网站开发规划技术支持 东莞网站建设东莞天助
  • 漂亮的学校网站模板下载八零云自助建站免费建站平台
  • 企业网站首页设计wordpress个人展示