首页 > 其他分享 >10.19

10.19

时间:2024-10-19 18:31:58浏览次数:1  
标签:le 原根 测试点 pmod 短路 10.19 equiv

别样的 \(\text{NOI}\) 模拟赛。
\(A\) 十几分钟能写完的随机化都放过去了,\(B\) 题面的代码 \(CE\) 了,\(C\) 边分治的思路仅闪过一瞬就忘了。

A.离散猜数

你说得对,但是

若答案正确,且你的代码使用的询问次数为 \(x\),std 使用的询问次数为 \(y\),计算 \(c=\dfrac{x}{y}\)。
若 \(c\le 1\),得到该测试点 100% 的分数。
否则若 \(c\le 5\),得到该测试点 75% 的分数。
否则若 \(c\le 20\),得到该测试点 50% 的分数。
否则,得到该测试点 25% 的分数。

所以我怎么知道 $std$ 用了几次?

本地随了一下,平均最多随四个数后 \(\gcd\) 就变成 \(1\) 了,写个 \(\text{exgcd}\) 期望得分 \(75\) ,实际得分 \(100\) 。
不会原根,但看到大家基本都是随机过的,悬着的心终于似了。

摆个题解,感觉说的很对啊。

我们希望找到一个 \(x\) 使得 \(v^x\equiv g\pmod p\),也即 \(g^{tx}\equiv g\pmod p\iff tx\equiv 1\pmod {p-1}\)。于是,我们希望找到的 \(v\) 使得 \(t\) 与 \(p-1\) 互质即可。
由原根的相关知识我们知道,这样的 \(v\) 就是 \(\pmod p\) 意义下的原根。于是找到 \(\pmod p\) 意义下的最小原根后,即可在一次询问内解决问题。

所以明明一次就能解决,随机为什么要给满分。

C.多边形

发现边分治最难的是怎么找到合适的边。

我们选定一条端点为 \((s,t)\) 的边后,由于图是一个凸多边形的三角剖分图,所以位于这条边两侧的点的最短路一定经过 \(s\) 或 \(t\),以这两个端点为源点分别跑一边最短路,对一个点 \(u\),记它到两端点最短路为 \(a_u,b_u\),那么左边一个点 \(u\) 到右边一个点 \(v\) 的最短路为 \(\min(a_u+a_v,b_u+b_v)\)。而 \(a_u+a_v\le b_u+b_v\iff a_u-b_u\le b_v-a_v\),于是容易在一次排序后统计跨过左右两边的最短路对答案的贡献。

现在唯一的问题是找到合适的边,显然要尽量选把点集均分的边。

总时间复杂度 \(O(n\log^2n)\) 。

标签:le,原根,测试点,pmod,短路,10.19,equiv
From: https://www.cnblogs.com/ZepX-D/p/18478103

相关文章

  • 10.19补题记录
    https://codeforces.com/gym/104821/problem/F交换操作顺序我们来想想什么那些操作不能交换操作顺序每个点最后的数值只和最后一次改变这个点的大小有关所以如果我们要保证一个点的数值不变的话我们只要保证最后一操作后不再改变这个点的数值就ok那么我们先找出那些是某些点的......
  • 2024.10.19 1152版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......
  • c语言语法(76-79)10.19
    一.定义数组1.数组定义:2.数组的特点:补:数组内部的特点:左值是读,右值是写3.数组的下标:从0开始计数4.有效的下标范围:从0开始到数组的大小-1的范围当出现以下标志表示数组的下标越界:eg.此代码中的10超过了有效下标9,所以无效会报错二.数组的例子1.eg题目:代码:三.......
  • 10.19
    一.多选题(共6题,46.1分)(多选题)以下数据Java字节流操作的基础类是:A.WriterB.OutputStreamC.InputStreamD.Reader我的答案:BC:OutputStream;InputStream;正确答案:BC:OutputStream;InputStream;7.6分(多选题)表驱动编程中,表象查询的方法包括:A.直接访问B.阶梯......
  • 修改微信(3.9.10.19版本)系统托盘图标(傻瓜教程)
    微信版本:进行以下操作先退出微信1.iconfontLogo下载一个图标png,大小为256像素,前面颜色自己看着弄2.png转ico,转化链接(转化的网站很多不一定非要是这个)3.下载后续所需程序(ResHacker和IconWorkshopPortable)备用下载链接4.找到右击微信快捷键点击属性,打开所在位置,在文......
  • 10.19
    继承 publicclassParentChildTest{publicstaticvoidmain(String[]args){Parentparent=newParent();parent.printValue();Childchild=newChild();child.printValue();parent=child;parent.printValue();......
  • 10.19随笔
    SELECT语句用于从数据库中选取数据。SQLSELECT语句SELECT语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。SQLSELECT语法SELECTcolumn1,column2,...FROMtable_name;与SELECT*FROMtable_name;参数说明:column1,column2,...:要选择的字......
  • 10.19
    今日学习代码增加课程<%--CreatedbyIntelliJIDEA.TochangethistemplateuseFile|Settings|FileTemplates.--%><%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>Title&l......
  • 10.19
    昨天晚上,uml把自己的设计的系统按照老师的要求修改了,今天老师没评价新改的系统怎么样,等着他后续发布体育课,又是新学似的一节课数据结构,今天学了数和森林,把森林和二叉树之间的相互转换学会了,还有哈夫曼树的一点点内容,离散里面就学过离散数学,今天的课不难,但是感觉课上老师发的练习题......
  • 10.19
    动手动脑运行示例并了解Java中实现异常处理的基础知识Java提供了一套异常处理机制,通过使用try-catch-finally语句块来捕获和处理异常。try语句块包含可能发生异常的代码,catch语句块用于捕获特定类型的异常并进行处理,finally语句块用于无论是否发生异常都要执行的代码,例如释放资......