zbyQIN

 

2024年11月10日

单调栈基础模板与分析

摘要: #include<bits/stdc++.h> using namespace std; const int N=1000005; int n,ansl[N],ansr[N],a[N]; int f[N],r,x; int main() { cin>>n; for(int i=0;i<n;i++)c 阅读全文

posted @ 2024-11-10 20:20 秦風 阅读(0) 评论(0) 推荐(0) 编辑

2024年10月29日

差分(一维与二维)与等差数列问题

摘要: 利用差分的思想解决 多次对数组区间加相同数,或者加一个等差数列 最好思路:从目标数列往前推两次前缀和,反推差分数组应该怎么加 #include<bits/stdc++.h> #define int long long using namespace std; int n,m,l,r,s,e,d,ma 阅读全文

posted @ 2024-10-29 21:45 秦風 阅读(4) 评论(0) 推荐(0) 编辑

2024年10月21日

快速幂

摘要: 算法讲解090【必备】贪心经典题目专题2_哔哩哔哩_bilibili 第一部分讲解快速幂 #include<bits/stdc++.h> #define int long long using namespace std; int a,b,mod; int qpow(int x,int n) { i 阅读全文

posted @ 2024-10-21 22:40 秦風 阅读(2) 评论(0) 推荐(0) 编辑

2024年10月20日

dij算法与小根堆

摘要: dij即利用一个小根堆 每次取出队头元素,利用队头元素对其他点进行松弛 每当一个点出队,说明他已经是被最小元素松弛过,那么不可能有更优解,那么便打上标记 松弛时注意目标点是否已经出队,如果出队说明不能再被松弛 注意:dij只能用于没有负边的图内 复杂度为O(mlogm) struct node { 阅读全文

posted @ 2024-10-20 22:36 秦風 阅读(5) 评论(0) 推荐(0) 编辑

A*,spfa,和如何利用spfa判断负环

摘要: A*即是在dij的思路上加上预估函数 注意:此处的欧式距离即为max(|x1-x2|,|y1-y2|); spfa算法 每个点至多被松弛n-1次; 我们利用队列来记录哪些点被松弛过(因为被松弛过说明距离变的更小,就有机会更新别人),一个点一旦出队,即取消标记 那么我们又该如何判断负环呢? 我们有一种 阅读全文

posted @ 2024-10-20 22:27 秦風 阅读(2) 评论(0) 推荐(0) 编辑

2022年11月19日

洛谷P3917 异或序列

摘要: 题意: 给出一个大小为n的序列a[n],求∑1≤i≤j≤n Ai​⨁Ai+1​⨁⋯⨁Aj的值​分析: 根据异或的性质我们很容易想到一个O(n*n)的做法,即进行一个异或前缀和。 for (int i = 1;i=< n;i ++) for (int j = 1;j <= i;j ++) ans += 阅读全文

posted @ 2022-11-19 20:27 秦風 阅读(63) 评论(0) 推荐(0) 编辑

导航