摘要:
比赛链接 本人太懒,详见强哥的题解 简单说下T3 T3是个博弈论题,有两个结论 1.n为奇数时,先手必胜 2.n为偶数时,先手如果不能一步制胜,则必败。 证明出第一个哪第二个就显然了,下面只证第一个,当n为奇数的情况。 博弈论中双方都是绝顶聪明的,聪明到什么程度呢,对于先手来说,他能做到:即使自己不 阅读全文
摘要:
有同学问我高精度怎么封装,结果我讲课的时候忘记讲了,抱歉抱歉(捂脸) 其实封装很简单 我们的结构体一般这样写,包含高精度计算时用的数组和记录数组长度的变量 struct gj { int len;//len:数组长度 int v[6000];//高精度计算时用的数组 }; 我们平时写高精度的时候传参 阅读全文
摘要:
挺有趣的一道题。 显然,我们如果知道某个位置的奇偶性,我们就能知道某个位置是否有小球(题目说明一个位置最多只有一个小球)。 我们有两种方法可以知道位置 \(i\) 的奇偶性,直接询问位置 \(i\) 的奇偶性或者间接询问。 所谓的间接询问就比如先问 \([i,j]\) 再问 \([i+1,j]\) 阅读全文
摘要:
1.考虑无解的情况 2.考虑输出样例 3.概率题用生成的随机数模拟 4.从dfs杀到模拟退火 5.找规律猜答案 6.打表+分段打表 7.剪枝! 最后奉上面对考试题时の奇技淫巧 阅读全文
摘要:
整体二分模板题 不会的这里 首先横跨m的陨石降落可以拆分为不跨过m的两段 我们考虑第L~R场陨石降落,设$mid=\frac{L+R}{2}$。 把mid及以前可以完成任务的国家,丢到左边继续二分,不能完成任务的丢到右边继续二分。 当L=R时,此时国家的询问的答案是L。 修改&求和 用树状数组维护就 阅读全文
摘要:
##前置芝士 整体二分就是二分的进阶版 类似于cdq分治(毕竟都是分治嘛) ##算法流程 对于一些问题,我们回答一个询问的时候,我们可以先O(n)预处理,然后二分回答。 但是如果有m个询问呢?我们不能对每个询问都做一遍预处理。 此时我们需要发扬一下懒人思想:预处理中的某些处理是否可以多次利用(也就是 阅读全文
摘要:
P5459 [BJOI2016]回转寿司 不会cdq的看这里:cdq分治:从分治到套娃 转化为求 j<i,L<=sum[i]-sum[j-1]<=R的对数的问题,其中sum为前缀和 经典的三维偏序,当然也可以分治后排序再用队列来维护。 你也可以试试直接用数据结构来做(话说cdq不就是把数据结构转成了 阅读全文
摘要:
P3810 【模板】三维偏序(陌上花开) 模板题而已 不会cdq的看这里:cdq分治:从分治到套娃 一维排序,二维cdq,三维树状数组 #include<algorithm> #include<iostream> #include<cstdio> using namespace std; int n 阅读全文
摘要:
感谢 mlystdcall 的透彻讲解 本文里没有的代码可以去这里查看 前置芝士 cdq分治可以用来解决多维偏序问题 优点:代替复杂数据结构,代码好写(类似归并排序),常数小 缺点:必须离线 重要优点:分治过程中区间的划分可以把数值的比较转化为看看是在左区间还是右区间,省去了一维比较的过程,实现了降 阅读全文
摘要:
这道题思路很巧妙。 我们从1到n处理每个数的时候同时维护好桶 $t[]$。 当我们处理到 $i$ 的时候,我们将 $t[a[i]]$ 赋值为 $1$。 如果这时候以 $a[i]$ 为中心的 $t$ 极大字符串并不是一个回文串,那么就说明存在一个 $j$ ,满足$t[a[i]-j]$ 不等于 $t[a 阅读全文