摘要:
一道$dp$题。。。 期望$40$分解法 预处理:离散化,然后让连续一段值相同的元素合并为一个元素。 正式$DP$: 显然有个最差策略为每个元素处都切一次,则切的次数为元素的个数$ 1$ 相对地来说就是假设全部元素之间就已经切开,要尽量多地合并元素 $DP$的第一维用来确认当前是合并了值为多少的两个 阅读全文
摘要:
建出最短路图之后$topsort$即可。 具体思路: 先用$dijkstra$算法在原图中跑出$1$号点到$i$号节点的最短距离$dist_1(i)$,将所有边反向后用$dijkstra$算法求出$i$号点到$2$号点的最短距离$dist_2(i)$; 再沿着最短路径找到从$1$号点到$i$号点的方 阅读全文
摘要:
良心题,暴力枚举即可。 代码: c++ include include include using namespace std; int n,m,ans=1; int main() { scanf("%d%d",&n,&m); for(int i=1;i 阅读全文
摘要:
T1:送分题啊,暴力$O(\sqrt{n})$就好了 链接: "gcd" T2:这个题有点小骚,看出最短路图了,看出$topsort$了,就是不会写,写到后面不会写了,唉,看了几眼代码就会写了。 链接: "route" T3:考场上看到一脸不可写。 链接: "seq" 阅读全文
摘要:
T1:我不知道这是什么鬼啊,学长们推出一个部分分的结论,我就直接写了,18分,结果题目还锅了,不费改。 T2:这题也锅了,改完数据后据说别校全场切了,听到学长说的差分序列后就想出标算的做法了,可惜学长他们写的不一样。 链接: "sequence" T3:状压大模拟,太恶心了,留坑。。。 阅读全文
摘要:
建出差分序列,可以发现最早出现的回文串就是答案,自己想想就懂了。 $O(N)$找出回文串就好了,字符串$hash$或者$manacher$都能在合法时间内得到答案。 c++ include include using namespace std; const int mod=1e9+7; int f 阅读全文