摘要: $spfa$判负环裸题 const int N=510; vector<PII> g[N]; int dist[N]; bool vis[N]; int cnt[N]; int n,m,w; bool spfa() { memset(dist,0x3f,sizeof dist); memset(cn 阅读全文
posted @ 2020-12-13 20:45 Dazzling! 阅读(99) 评论(0) 推荐(0) 编辑
摘要: KMP简单变形,不能重复用字段,所以要进行一点小修改。 很自然的想到,原本在文本串中找到了模式串之后,单纯ans++,下一次循环必然是j=Next[j],就是j回溯到Next[j]位置;那么,这个时候就相当于用了一些重复字段(Next[j]位置前的那些字符,都是被重复使用了),那么显然,在ans++ 阅读全文
posted @ 2020-12-13 18:30 Dazzling! 阅读(73) 评论(0) 推荐(0) 编辑
摘要: $0-1$背包解法 适用数据范围:\(N≤40,M≤10^6\) 状态表示:\(f(i,j)\):从前$i$个物品中选,花费不超过(小于等于)$j$的方案数。 最后累加$f(n,0~m)$即可。 const int N=45,M=1e6+10; LL price[N]; LL f[M]; LL n, 阅读全文
posted @ 2020-12-13 15:18 Dazzling! 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 折半搜索,$O(n)$型枚举,二分查找相反数个数,时间复杂度(\(O(n^2logn)\)) const int N=4010; int a[N],b[N],c[N],d[N]; int ab[N*N]; int n; int main() { cin>>n; for(int i=0;i<n;i++ 阅读全文
posted @ 2020-12-13 11:15 Dazzling! 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 字体 Markdown 可以使用以下几种字体: *斜体文本* _斜体文本_ **粗体文本** __粗体文本__ ***粗斜体文本*** ___粗斜体文本___ 分隔线 你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可 阅读全文
posted @ 2020-12-13 09:29 Dazzling! 阅读(79) 评论(0) 推荐(0) 编辑