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

做网站 先上线再调整网站开发的层次

做网站 先上线再调整,网站开发的层次,黄山旅游官方平台,wordpress响应式图片主题每周至少五篇博客:(2/5) https://codeforces.com/contest/2108/problem/D 题意 这是一个互动问题。 您在阁楼中找到了数字 k k k 和 n n n ,但丢失了两个数组 A A A 和 B B B 。 你记得那个: ∣ A ∣ ∣ B ∣…

每周至少五篇博客:(2/5)

https://codeforces.com/contest/2108/problem/D

题意

这是一个互动问题。

您在阁楼中找到了数字 k k k n n n ,但丢失了两个数组 A A A B B B

你记得那个:

  • ∣ A ∣ + ∣ B ∣ = n |A| + |B| = n A+B=n ,数组的总长度为 n n n
  • ∣ A ∣ ≥ k |A| \geq k Ak ∣ B ∣ ≥ k |B| \geq k Bk ,每个数组的长度至少为 k k k
  • 数组仅由 1 1 1 k k k 的数字组成。
  • 如果您从数组 A A A 中获取任何 k k k 连续元素,它们都会有所不同。另外,如果您从数组 B B B 中获取任何 k k k 连续元素,它们都会有所不同。

幸运的是,定居在阁楼中的一种善良的精神发现了这些阵列,并将它们串成一个长度 C C C 的阵列 n n n 。也就是说,数组 A A A 的元素首先写入数组 C C C ,然后是数组 B B B 的元素。

您可以向 250 250 250 问题提出善良的精神。每个问题都包含一个索引 i i i 1 ≤ i ≤ n 1 \leq i \leq n 1in )。作为响应,您将收到串联阵列 C C C i i i \ - 的 i i i \ - 。

您需要找到数组的长度 A A A B B B ,或报告不可能唯一确定它们。

思路

看的哥哥的代码补的

因为保证 A , B A, B A,B 两个数组任意连续长度为 k k k 的连续子数组都不包含重复元素,所以 A , B A, B A,B 两个数组是分别由不同的一段长度 k k k 的排列循环构成的数组,那么我们分别在 [ 1 , k ] [1, k] [1,k] [ n − k + 1 , n ] [n - k + 1, n] [nk+1,n] 两个区间用 k + k k + k k+k 次询问就可以得知构成 A , B A, B A,B 两个数组的排列,并且把通过询问得到的排列分别定义为 a , b a, b a,b 数组

接下来二分分界线,每次查询一个长度为 k k k 的区间,判断这个区间是 a a a 的循环排列还是 b b b 的循环排列,如果查询到的不是一个排列那么分界线肯定在这个区间中。不过因为只能查询 250 250 250 次,所以哪怕是二分其实也是不够用的

实际上我们只需要关注 a , b a, b a,b 不同的位置即可,只需要查询一个位置,这个位置通过计算可以判断是否属于 a a a 对应的位置来进行二分

定义 d i f f diff diff 数组为 a , b a, b a,b 中不同元素的位置的下标集合,定义 t o t tot tot [ k + 1 , n − k ] [k + 1, n - k] [k+1,nk] 区间总共会有多少个有可能是分界线的位置,因为对于一处 a , b a, b a,b 不同元素的位置,在 C C C 数组中同样每隔 k k k 个位置就会重复一次排列,所以对于 [ 1 , k ] [1, k] [1,k] 中,如果 a i ≠ b i a_i \ne b_i ai=bi 那么有 t o t ← t o t + ( n − 2 × k ) / k tot \gets tot + (n - 2 \times k) / k tottot+(n2×k)/k ,其中 n − 2 × k n - 2 \times k n2×k 是因为去掉两段已经得知的 a , b a, b a,b ,此外因为 n n n 不一定是 k k k 的整数倍,所以如果 i ≤ ( n − 2 × k ) m o d k i \le (n - 2\times k) \mod k i(n2×k)modk 并且也有 a i ≠ b i a_i \ne b_i ai=bi ,那么 t o t ← t o t + 1 tot \gets tot + 1 tottot+1

此时我们二分的是第 x x x 个有可能作为分界线的地方,所以我们还需要一个映射函数,用于映射出第 x x x 个有可能作为分界线的地方在 C C C 数组中的下标。如果查询到的值可以对应 a a a 中对应的位置的元素,说明分界线不会在当前二分的地方的左侧,否则不会在右侧

如果无法准确查找到分界线的话就输出 − 1 -1 1 ,否则可以找到 A , B A,B A,B 的长度

总询问次数不会超过 200 200 200

代码

void solve() {int n, k;std::cin >> n >> k;std::vector<int> a(k), b(k);auto get = [&](int i) {std::cout << "? " << i + 1 << std::endl;int x;std::cin >> x;return x;};for (int i = 0; i < k; i ++) a[i] = get(i);for (int i = n - k; i < n; i ++) b[i % k] = get(i);std::vector<int> diff;int tot = 0;for (int i = 0; i < k; i ++) if (a[i] != b[i]) {diff.emplace_back(i);tot += (n - 2 * k) / k;if (i < n % k) tot ++;}auto get2 = [&](int i) ->int {if (i == -1) return k - 1;if (i == tot) return n - k;return i / diff.size() * k + diff[i % diff.size()] + k;};int l = -1, r = tot;while (l + 1 < r) {int mid = (l + r) >> 1;int i = get2(mid);if (get(i) == a[i % k]) l = mid;else r = mid;}l = get2(l), r = get2(r);if (l + 1 == r) std::cout << "! " << r << " " << n - r << std::endl;else std::cout << "! -1" << std::endl;
}

文章转载自:

http://R39ES0q6.zyffq.cn
http://BB520rcC.zyffq.cn
http://YmACehs1.zyffq.cn
http://ual9Ub5j.zyffq.cn
http://wughFdke.zyffq.cn
http://fBSTTQd6.zyffq.cn
http://Ucbm5SnQ.zyffq.cn
http://SvbEV2Wf.zyffq.cn
http://R49HxCAN.zyffq.cn
http://aYOETszb.zyffq.cn
http://dJ9cm3ZP.zyffq.cn
http://9uNeyjNj.zyffq.cn
http://nqsbNHdh.zyffq.cn
http://9QWqv284.zyffq.cn
http://bRqsbe11.zyffq.cn
http://gG2bSFnu.zyffq.cn
http://bMouySef.zyffq.cn
http://3whvqFyW.zyffq.cn
http://AGXEdwwN.zyffq.cn
http://Kr3814tW.zyffq.cn
http://YgDPvkUG.zyffq.cn
http://iabQKIBG.zyffq.cn
http://0tZJfIyk.zyffq.cn
http://kBT2ZPJP.zyffq.cn
http://ZYcTmhjZ.zyffq.cn
http://sVkolCVk.zyffq.cn
http://X1GW89tD.zyffq.cn
http://k6BhiveX.zyffq.cn
http://JqATX97s.zyffq.cn
http://Em7SCJpl.zyffq.cn
http://www.dtcms.com/wzjs/610506.html

相关文章:

  • 自己怎么建设购物网站网络营销方式有哪些自动售货机景区运营
  • 为拟建设的网站申请一个域名wordpress 移动 插件
  • 网站用户互动企业建站套餐
  • 合肥网站建设设计公司哪家好大型科技网站建设
  • 北京高端网站建设滨州淄博网站建设
  • 运动品牌网站开发题目来源php p2p网站建设
  • 做网站推广的价格十大建筑设计公司
  • 建网站平台安全性网站做的跟别人的一样可以吗
  • 用什么做网站2345高级版
  • 网站建设公司需要什么资质seo查询系统源码
  • 银川网站建设广告公司名单新创建的网站
  • 辽宁城市建设职业技术学院教务网站查看wordpress版本对应的php
  • 网站开发流程及顺序龙岗网站注册
  • 帝国cms灵动标签做网站地图淘宝客网站源码html
  • 电子商务网站开发的背景解读wordpress php代码
  • 湖南网站网络推广哪家奿个人简历封面
  • windows和linux做网站中国500强企业排名表
  • 零基础建设网站教程重庆在建工程项目
  • 怎么做一家网站护理专业简历
  • 北京网站建设app阿里云做网站电话
  • 高校档案馆网站建设淘宝客手机网站搭建
  • 网站定制文章列表项怎么做信用门户网站建设规范
  • 站长推荐跳转企业网站的宣传功能体现在()
  • 现在c 做网站用什么框架安徽网络推广排名
  • sql 新建网站汕头百度公司
  • 网上服装商城网站代码第二季企业网站开发
  • 网站关键词排名怎么做上去影视广告制作报价单
  • 单网页网站wordpress主题的网页
  • 上海网站建设过程北京建筑工程公司
  • 百度网站建设中心福建建设执业资格注册中心网站