ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CF930C Teodor is not a liar! 结论

2022-04-16 09:04:04  阅读:152  来源: 互联网

标签:cnt liar 线段 所有 整数 Sasha Teodor CF930C


看了看没有人写详细的证明……可能觉得太简单了?

另外,我不觉得题面上的翻译是给人类阅读的……

万老爷翻的题意:

Teodor 有 \(n\) 条线段,端点都是正整数且在 \([1,m]\) 之间.他发现 没有一个整点满足在所有线段上。他把这个事实告诉 Sasha 然而她不信. Sasha 可以向 Teodor 询问若干个整点 \(x_i\) ,Teodor会回答 \(cnt(x_i)\) 表示 \(x_i\) 在多少条线段上.

提醒:Sasha 不知道 \(n\) 的大小。Sasha 很聪明,所以 \(x_i\) 互不相同。


\(cnt_x\) : 整数点 \(x\) 出现在 \(cnt_x\) 条线段上(题面中的定义),可以 \(O(n)\) 差分预处理。

所有整数点都不同时存在于所有线段上 其实就说明有至少两条线段不相交。不相交那就有一个点在“分界“上。那么或许 【能证明某点是分界点】 就说明有 【至少两条线段不相交】?

我们有结论:能判断出所有整数点都不同时存在于所有线段上 \(\Leftrightarrow \exists x_1<x_2<x_3\),满足 \(cnt_{x_2}<cnt_{x_1},cnt_{x_2}<cnt_{x,3}\)

LJmATx.md.png

Proof

必要性:

有至多 \(cnt_{x_2}\) 条线段(红色)同时经过 \(x_1,x_3\),那么还有 \(cnt_{x_1}-cnt_{x_2}\) 条(橙色)无法到达 \(x_2\),\(cnt_{x_3}-cnt_{x_2}\) 条(蓝色)无法到达 \(x_2\),那么 \(x_2\) 就成为了橙色和蓝色的分界线,每个整数点会“属于”橙色 或 “属于”蓝色 或 都不属于。

充分性:
如果当前还没有问出来这么一个 \(x_2\),那么根据当前问出来的信息,是一个单峰的序列,肯定能构造出一种 【存在一个整数点同时存在于所有线段上】 的情况。(例如一层层叠上去,峰点会存在于所有线段上)

那么我们不能满足这一条件的最大问题数,其实就是 单峰的最长序列。

树状数组正着和反着求两遍最长上升子序列即可。

虽然但是,这种结论到底是怎么想出来的啊/ll

标签:cnt,liar,线段,所有,整数,Sasha,Teodor,CF930C
来源: https://www.cnblogs.com/zdsrs060330/p/16151793.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有