自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 匈牙利算法

#include<bits/stdc++.h>using namespace std;const int maxn = 1005;const int mod= 1e9+7;#define ll long longint n,m,e,u,v;int match[maxn],vised[maxn];vector<int> g[maxn];bool dfs(int u,int tag){ if(vised[u] == tag) return false; v

2021-08-29 10:53:02 103

原创 c++魔法记录手册——关于clear()的黑魔法

众所周知在stl中clear()是用来清理内存的但是在c++说明中,clear并不保证会清理内存所以被分享了一个黑魔法void clear(vector* A){ vector B; A.swap(B);}下面开始技术总结首先 在函数中新建了一个B,此时B是一个干净的,什么都没有的容器将A与B进行交换这样A就完成了clear,变成了空的容器,而原来的内存现在就都属于B函数结束,B的作用域只在clear函数内部,所以B在这时被销毁,系统自动回收内存所以A既被clear ,原来的内存

2021-05-07 16:39:29 480

原创 伯努利求幂方和

快速求n次方的前缀和///#include<bits/stdc++.h>///#include<unordered_map>///#include<unordered_set>#include<iostream>#include<algorithm>#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#

2021-01-24 20:46:59 199

原创 杜教筛 求 莫比乌斯前缀和&欧拉函数前缀和

#include<bits/stdc++.h>using namespace std;#define ll long longconst int maxn = 5e6 +100;const int MOD =998244353;int p[maxn],vis[maxn],mu[maxn];ll phi[maxn];int cnt = 0 ;ll qpow(ll a,ll b){ ll e=1; while(b){ if(b%2)e=(e*a)%

2021-01-24 20:45:45 188

原创 C++实现LRU (leetcode146)

struct DLink{ int key,val; DLink* next; DLink* prev; DLink(): key(0),val(0),next(nullptr),prev(nullptr) {} DLink(int _key,int _val): key(_key),val(_val),next(nullptr),prev(nullptr) {}};class LRUCache {unordered_map<int,DLink* &g

2021-01-24 20:42:40 139

原创 手写堆

const int maxn = 1e6+7;int heap[maxn],cnt = 0;void pop(){ if(cnt == 1){ cnt =0 ;return ; } heap[1] =heap[cnt]; cnt--; int x = 1,d=x ; while(x*2<=cnt) { int a = x*2,b= x*2+1; if(b<=cnt &&

2020-12-05 11:13:46 84

原创 一天一个小算法——最小生成树(kru & Prm)

最小生成树 kruskal#include<bits/stdc++.h>using namespace std;#define ll long longconst int maxn = 2e5+7;const int INF = 0x3f3f3f;typedef pair<int,int>PII;vector<PII>g[maxn] ;int vis[maxn] ,fa[maxn];struct node{ int w,v,u;}p[maxn]

2020-09-04 14:49:47 355

原创 一天一个小算法——单源最短路径 (djk)

#include<bits/stdc++.h>using namespace std;#define ll long longconst int maxn = 1e5+7;const int INF = 0x3f3f3f;typedef pair<int,int>PII;vector<PII>g[maxn] ;int vis[maxn] ,dis[maxn];int n,m,u,v,w ;int main(){ int start ;

2020-08-30 13:50:41 354

原创 2020 Multi_University 1004Discovery of Cycles

题意:给n个点 m条边,q次询问 ,询问li和ri这段区间的边是否可以成环。题解:询问的操作强制在线 ,所以不能写莫队。先处理以i这条边作为结尾 ,往前面找到最早可以成环的位置,这样查询就是O(1)。然后考虑怎么处理这个东西 。首先对于一个位置i,最早成环位置对应位置为xi。那么加入下一条边,如果这条边加了之后就成环,那么就从i+1这个位置开始加边找到他对应的xi+1,如果不能成那xi+1 = xi .所以需要一种东西来完成两件事情,分别是加边之后判环,和删边。题解给的是LCT,但是我们想到..

2020-08-13 20:41:42 156

原创 Codeforces Round #636 (Div. 3)题解

1343D - Constant Palindrome Sum这里这里<3题意长度为N的数列所有元素都小于k,每次操作可以将A[i]变成[1,k]中任意个数,问最小操作数使得所有a[i]+a[n-i+1]相等。思路首先两个元素一组,对一组的元素进行一次操作就将范围变成【 a[i] + a[n-i+1]+1 -max( a[i] , a[n-i+1]),a[i] + a[n-i+1...

2020-04-22 22:27:46 221

原创 题解D. Same GCDs Educational Codeforces Round 81

题意 给定a,m 求x在[0,m)中有多少数字满足gcd(a,m) =gcd(a+x,m)思路:不管怎么样先化简一下, 令P = gcd(a,m), 于是就是求在[a/P,(a+m)/P)中和m/P互质的数字个数。在一个区间内求互质个数,很容易想到欧拉函数,但是原来的题面和欧拉函数的定义不同但是可以发现[a/P,(a+m)/P)的区间长度是m/P-1,所以我们想到在这一段区间内的数减...

2020-04-18 16:20:18 134

原创 题解D - MEX maximizing CF615

我一开始先想到的是数组会滚动,所以只要记录取模x后的最早出现的数字就可以了所以要维护一个最小出现次数dep,然后只要快速的找到最小出现的最早的数字就可以了如何快速的维护呢(毕竟4e5不可能每次都O(n)找一遍)我们设上一次的答案为before所以想到如果这次出现的不是before,那么就还是before。如果出现的是之前的数字,那么向后面找出现次数小于dep的数字,因为前面的数字一定大...

2020-04-17 23:08:26 140

原创 EOJ Monthly 2019.11 E. 数学题

E. 数学题单点时限: 4.0 sec内存限制: 256 MB“飞机已经降落虹桥机场,还将滑行一段时间,请保持安全带的状态。欢迎您再次乘坐东方航空公司的班机,下次旅途再见。”飞机还在跑道上滑行,到航站楼还有不少距离。Cuber QQ 开始思考他在银川没有做出来的题目。题目是这样的:统计 k 元组个数 (a1,…,ak),1≤ai≤n 使得 gcd(a1,…,ak,n)=1。显然当 k=...

2019-11-30 13:48:43 364

原创 莫队 &带修莫队

莫队算法使用分块的思想,可以解决一类离线区间询问问题。 对于序列上的区间询问问题,如果从 [l,r] 的答案能够 O(1) 扩展到[l−1,r],[l+1,r],[l,r+1],[l,r−1] 的答案,那么可以在 O(n√​n​​​) 的复杂度内求出所有询问的答案。将整个区间分为√​n个块,然后进行排序。L需要在对应的块中,而在上面的前提下R要递增。P1972 [SDOI2009]HH的...

2019-08-03 14:10:36 158

原创 权值线段树+ 主席树(区间第K大或子区间某原素出现次数)

首先先上一个主席树求区间第K小的板子#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define mid (l+r)/2using namespace std;const int N = 1e6+4;int L[N<<5],R[N...

2019-08-03 13:59:02 636

原创 牛客小白月赛15——I y大的字符串 解析

链接 :牛客小白月赛15——I y大的字符串给n个匹配串,在给m个字符串,求字符串的最大能被解释(解释:前缀串能被匹配串匹配)的长度和被解释长度的最大回文串长度。样例 :输入4 3ababbabbaabcabababababbbbbaccccccc输出8 73 20 0思路 :字典树+马拉车,用字典树找最长匹配串,再用马拉车来求最长回文串#include<i...

2019-07-01 09:54:35 111

原创 31游戏。(Geoffrey Mott-Smith(1954)) 分析

题目: 从一副扑克牌中拿出每种花色的A,2,3,4,5,6。这24张牌面朝上 放在桌子上。两个人轮流把扑克翻过去,翻过去的数字总和将被计算作为游戏的进展。每张A被计算为1.首先把数字总和超过31的人失败。这很有点像我们讲过的31筹码的游戏。但是这里有个条件限制。任意一张牌不能被抽出超过4次。(a) 如果你是第一个操作的人,如果你用之前我们讲过的策略,如果对手一直选择4会怎样?(b) 然而,先手...

2019-06-29 13:00:02 349

原创 英语文章自动挖空的小程序

期末考英语原文挖空考,在队友的启发下我顺手写了一个代码可以自动挖空。操作基本就是 复制 粘贴,输入单个x 后回车就会输出挖空完的文章再按x 出答案(比较粗糙,所以可能有的时候会有一些小bug#include<bits/stdc++.h>using namespace std;const int maxn = 1e5+7;string a[maxn];string ss[...

2019-06-28 10:09:11 1315 1

翻译 开始翻译博弈论啦~~~

原文章为 Game Thoery , Thomas S. Ferguson本博客只是做一个简单的翻译,如有错误或是侵权希望及时指正take-away game(取数游戏)组合游戏是一种双人的信息完整同时没有机会移动,只有赢或输两种结果的游戏。这种游戏是由包括初始状态的一组状态与玩家的轮流移动决定的。双方轮流移动,将一个状态转移到另一个状态,直到无法移动的最终位置。最终位置是无法再进行移动的...

2019-06-27 21:14:37 355

原创 博弈简单入门

基础nim博弈及sg函数

2019-05-30 08:50:10 217

原创 dijkstra+堆优化+链式前向星

P3371 【模板】单源最短路径(弱化版)本题是比较经典的最短路径,同时有需要堆优化和链式前向星dijkstra复杂度在nlogn有关链式前向星的内容在 :深度理解链式前向星堆优化的内容用优先队列来实现#include<bits/stdc++.h>using namespace std;const int maxn = 100000;const int ...

2019-05-22 22:50:45 708 2

原创 RMQ简述

RMQ主要用于区间内最值的多组查询,暴力枚举会超时的情况下(当然如果你会线段树当我没说)主要思想就是倍增+dp#include<bits/stdc++.h>using namespace std;const int N = 1e5+5;int dp[N][20];int a[N];void RMQ_build(int n){ for(int i=0; i&l...

2019-05-16 20:56:57 522

原创 树形背包

P2014 选课题目描述在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有N门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程a是课程b的先修课即只有学完了课程a,才能学习课程b)。一个学生要从这些课程里选择M门课程学习,问他能获得的最大学分是多少?简述: 有许多不同的课有...

2019-05-16 20:54:35 148

原创 树形DP入门——我也不想学但是队友都不想学只能我上啊

今天晚上我做了几题树形dp的题 给大家露一手POJ——Tree Cutting题意:一棵无向树,结点为n(<=10,000),删除哪些结点可以使得新图中每一棵树结点小于n/2。这不是一道搜索题!这不是一道搜索题!这不是一道搜索题!就是枚举每个点删去后的最大值。判断最大值的要求 1.childmax<n/2 最大的子树满足条件 2.n-sum <= n/...

2019-05-08 23:33:36 167

原创 牛客练习赛45 E—Pyramid

牛客练习赛E题意一个金字塔棋盘,从(1,1),(i,j)可到(i,j+1)(i+1,j)(i+1,j+1)某个点禁止后能否取胜先判断(1,1)点的状态为什么对于点(n,n)其状态为负(计为0)则(n,n-1),(n-1,n-1)为胜(计为1)可以推出所有的点(x, y)(x,y的奇偶性与n均相同时)为0。对于禁点(a,b) 判断其状态为胜 或负如果禁...

2019-05-04 12:17:48 139

原创 01字典树

01字典树和字典树的关系其实没有这么大,主要是建树的方式。01字典树在异或问题的查询上十分高效。01字典树是按位插入和查询的。因为如果一个数,它的高位值较大,那么这个数的值较大。所以我们插入和查询时是从最高位开始进行的。同时可以开val数组来保存每个值。建树/插入struct trie{ int binary[2];//0 或 1 int val;}t...

2019-04-30 19:58:06 158

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除