自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 个人2023FALL CS申请总结(PhD/MPhil/保研夏令营)

个人2023fall CS申请总结

2023-04-10 12:22:01 252

原创 十一月刷题记录3

树分块板子//// Created by Artist on 2021/11/9.//#include<bits/stdc++.h>using namespace std;typedef long long ll;#define mkp make_pair#define fi first#define se second#define pb push_back#define all(x) x.begin(),x.end()#define DB1(args...) d

2021-11-09 15:55:21 144

原创 十一月刷题记录2

Increasing Subsequence(期望dp)求期望轮数。期望dp都是推转移式先给个暴力O(n3)O(n^3)O(n3)的做法。dp[0][i][j]dp[0][i][j]dp[0][i][j]表示当前是Alice选,面临局面是Alice之前选到a[i]a[i]a[i],Bob选到a[j]a[j]a[j]。//// Created by Artist on 2021/11/4.//#include<bits/stdc++.h>using namespace std

2021-11-04 23:07:36 187

原创 十一月刷题记录

2019CCPC哈尔滨 L. LRU Algorithm(字符串)做法1:Trie//// Created by Artist on 2021/10/29.//#include<bits/stdc++.h>using namespace std;typedef long long ll;#define mkp make_pair#define fi first#define se second#define pb push_back#define all(x) x.b

2021-10-30 17:29:30 150

原创 九、十月刷题记录4

2018CCPC桂林 B. Array Modify题意:求m(1e9)m(1e9)m(1e9)轮操作:A[i]=(∑j=imin(i+L−1,n)A[j])mod  PA[i]=(\sum_{j=i}^{min(i+L-1,n)}A[j])\mod PA[i]=(∑j=imin(i+L−1,n)​A[j])modP后的数组。注意到新数组中A′A'A′的值由差值固定的一段AAA累计得来。于是每次操作都是一次多项式乘法,C[x]=∑i=0xA[i]∗B[x−i]C[x]=\sum_{i=0}^xA

2021-10-22 22:21:31 202

原创 九、十月刷题记录3

cf600E dsu on tree模板感觉就是树剖加强版。//// Created by Artist on 2021/10/16.//#include<bits/stdc++.h>using namespace std;typedef long long ll;#define mkp make_pair#define fi first#define se second#define pb push_back#define all(x) x.begin(),x.en

2021-10-16 20:00:03 130

原创 那些我还不太懂的题

NC14306 debug图论,没题解,还没懂#include <cstdio>#include <cstring>#include <iostream>#include <string>#include <map>using namespace std;const int MAXN = 260;const int MAXM = 11000;const int MAXS = 30;map<string, int&g

2021-10-15 19:28:38 70

原创 九、十月刷题记录2

C. Portal(矩阵dp,n^4优化)//// Created by artist on 2021/10/8.//#include<bits/stdc++.h>using namespace std;typedef long long ll;#define mkp make_pair#define fi first#define se second#define pb push_back#define all(x) x.begin(),x.end()#defin

2021-10-09 01:26:12 144

原创 九、十月刷题记录

天天爱跑步细节较多的一道。将树变成以1为根。首先是考虑路径如何对每个点做贡献。当问题简化为一个简单区间的问题,我们选择用桶(或者双指针)记录满足条件的路径数目,对每个点进行贡献。这里用了类似想法,不过是区间变成了树,那么就需要用到树上差分来处理桶。对于每个点,满足要求的路径有两种,一种是从其子树出发来到这个点(上行),一种是从其祖先出发来到这个点(下行)。观察发现,可以对观察者 jjj 做贡献的上行路径 iii 满足:dep[j]+w[j]=dep[s]dep[j]+w[j]=dep[s]dep[

2021-09-28 09:43:24 77

原创 CCPC+ICPC预备

CCPC 网络赛 Remove每个数,用线性筛+递推求他的最大质因子。O(n)O(n)O(n)单调队列优化转移:f[j]=min(f[j],f[i]) i+1<=j<=i+mxp[i]-1//// Created by artist on 2021/9/2.//#include<bits/stdc++.h>using namespace std;typedef long long ll;#define mkp make_pair#define fi fi

2021-09-02 13:58:11 367

原创 高精度板子

//// Created by Artist on 2021/8/30.//#include<bits/stdc++.h>using namespace std;typedef long long ll;#define mkp make_pair#define fi first#define se second#define pb push_back#define all(x) x.begin(),x.end()#define DB1(args...) do { cou

2021-08-30 15:12:03 63

原创 八月刷题记录3

牛客多校10 A Browser Games

2021-08-26 22:32:24 79

原创 八月刷题记录2

洛谷P4551 最长异或路径给定一棵 n 个点的带权树,结点下标从1开始到 n。寻找树中找两个结点,求最长的异或路径。异或路径指的是指两个结点之间唯一路径上的所有边权的异或。01trie板子任意指定一个点为根。建一棵01trie,这棵trie存所有点到根的路径的异或值。考虑到路径(u,v)的异或=路径(root,u)^(root,v),因此对于每一个点到根的异或值,我们都在01trie上找到另一个点到根的异或值,满足两者异或最大。维护这个最大值。如何找?高位往下找,能不同就贪心的取不同。因为这样

2021-08-17 13:31:59 95

原创 八月刷题记录

BZOJ3522. [Poi2014]Hotel给一棵树,问两两之间距离相等的点对有多少对。点数为5000。树形dp+统计满足条件的三元组(用差分来统计,即建立两个数组,表示一元组数目、二元组数目)枚举根节点,对每个子树跑一边dfs统计距离为x的点数。时间复杂度O(n2)O(n^2)O(n2)//// Created by artist on 2021/8/5.//#include<bits/stdc++.h>using namespace std;typedef l

2021-08-05 15:49:44 160

原创 计算几何板子

两球体积交const double pi = acos(-1);typedef struct { double x, y, z, r;}Point;Point a[5];//两点之间距离double dis(Point p, Point q) { double ans = sqrt((p.x - q.x)*(p.x - q.x) + (p.y - q.y)*(p.y - q.y) + (p.z - q.z)*(p.z - q.z)); return ans;}

2021-07-20 09:29:55 146

原创 上海理工大学第二届“联想杯”全国程序设计邀请赛补题

I - Identical days题意:给一个01字符串,连续的1会产生贡献n*(n+1)/2。操作:将一个1改为0。问降低贡献至不大于k,最少的操作数。思路:可以想到对于一个长为len的连续串。对他操作1次,二分降低地最多。如果对他操作了5次,6分降低地最多。即每次都是平均划分能够降低最多。优先队列维护⼀个⼆元组(len,cnt),len⻓的连续段从平均分成cnt-1段变成cnt段,减去unhappy值的改变量为多少。(有点像BFS?)贪⼼的拿最⼤。#include<bits/std

2021-06-17 15:28:01 346 1

原创 【图论:进阶】建模

全局最小割算法:stoer wagner一般图最大权匹配

2021-06-15 21:02:12 59

原创 2021山东省省赛补题

cf传送门前言在gym看到,知道山东省很nb所以写了。补题含大量借鉴大佬代码()F Birthday Cake题意:给定n个串,求有多少对串能拼出平方串(能够表示成两个相同的字符串连接在一起的,即AA)。思路:队友想出来了,就是少考虑了一个情况。考虑这样一个串:abcdyouareabcd。前后缀相同。我们可以计数有多少个串youare。这两个串可以拼接在一起。还有一种情况就是两个串一模一样。#include<bits/stdc++.h>using namespace s

2021-06-12 17:13:39 429

原创 后缀数组和自动机

后缀数组算法思路:倍增+基数排序数组:sa(第i小的后缀的下标),rk(i后缀是第几小)。时间复杂度:O(nlogn)O(nlogn)O(nlogn)JSOI2007 字符加密(排序循环移动位置)题意:给出一个串abcde。他有多个循环移动位置:abcde,bcdea,cdeab,…,ebacd。将这些排序。再按从小到大的顺序输出每个串的最后一个字母。思路:将字串复制为abcdeabcde后计算后缀数组。#include<bits/stdc++.h>using namespac

2021-06-03 15:12:45 142

原创 bitmask集合

SOS dp+randomizationD. Love-Hate题意:找一个最大的硬币集合,满足:n(1e5)个中至少n/2个人有全部这些硬币。(答案大小不超过15)思路:看到n/2:考虑randomization。随机选30个不重复的人,都不属于某个大小为n/2的集合的概率为1/{2^30}。于是我们可以随机选一个人。认为这个人在最优解中。那么最大的硬币集合肯定是这个人喜欢的硬币的子集。我们把这个人喜欢的硬币离散化(设为sz)。然后遍历所有sz的子集。找到{满足【n/2个人都有这子集】的集

2021-06-01 19:13:04 109

原创 莫比乌斯反演合集

P1829 [国家集训队]Crash的数字表格 / JZPTAB题意求∑i=1n∑j=1mlcm(i,j)\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)∑i=1n​∑j=1m​lcm(i,j)。答案模20211009,n,m<=1e7。推导其实就是有两次d的枚举。单开一个函数提出来(简化问题)考虑最后再合并进去就好。∑i=1n∑j=1mlcm(i,j)\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)∑i=1n​∑j=1m​lcm(i,j)=∑i=1n∑j=

2021-05-27 19:25:34 98

原创 【多项式】advanced+生成函数

前言没想到这个坑这么深,还有exp,ln,多点求值、FWT、分治fft。填完板子就堆题。整得差不多就能去肝mobius了,咕了巨久。

2021-05-20 14:44:48 202 2

原创 2021JNU校赛题解

F ght与dxt的博弈第三和第四种都挺nb的。有一些等价转换。#include <bits/stdc++.h>using namespace std;const int maxn = 104;int sg[maxn][maxn];int s[3*maxn]; // 后继的sg的集合int s4[100006];int main(){ int t;scanf("%d",&t); double gold = (1+sqrt(5))/2; for(

2021-05-11 21:21:49 113

原创 一文看懂博弈【全网最详细,包含所有证明】

摸鱼摸太久了没有那种什么都不想的肝劲了,导致变得很垃圾被人瞧不起了巴什博弈 bash game规则:有一堆n个石子。每次a和b可以取1~m个石子。不能取的输。结论:nmod  (m+1)=0n\mod (m+1) =0nmod(m+1)=0则先手必败。否则,先手必胜。证明:先手拿了x个(x∈[1,m]x\in [1,m]x∈[1,m]),那么后手必然可以使得该轮两者共拿了(m+1)(m+1)(m+1)个。最后必然是后手拿走最后一个石子。否则,先手可以拿nmod  (m+1)n \mod (m+1

2021-05-11 11:31:06 310

原创 【数学:进阶】原根&二次剩余&BSGS&卢卡斯定理

阶定义性质原根定义设m∈N∗m\in \mathbb{N}^{*}m∈N∗,a∈Za\in \mathbb{Z}a∈Z。若gcd(a,m)=1gcd(a,m)=1gcd(a,m)=1,且δm(a)=φ(m)\delta_m(a) = \varphi(m)δm​(a)=φ(m),则称aaa为模mmm的原根。性质

2021-04-24 16:19:09 164

原创 Codeforces Round #716 (Div. 2) D. Cut and Stick

题意一个数列,m次查询。每次询问一个区间。要把该区间拆成若干个出现次数最多的数出现次数小于等于ceil(n/2)ceil(n/2)ceil(n/2)的子序列,问最少拆成多少个子序列。思路若出现次数最多的数的出现次数小于等于ceil(n/2)ceil(n/2)ceil(n/2),答案显然是1。对于其他情况,有一种拆分方式:设出现最多的数是super,其出现次数为f。其他数一共有m-f个(m为区间长度)。拆成1+(f−(m−f+1))1+(f-(m-f+1))1+(f−(m−f+1))个,即m−f+1m

2021-04-20 21:28:41 84

原创 【数据结构:进阶】可持久化数据结构

珂朵莉树features暴力,实现简单本质思想是分块,相同值连在一起的算一块,用set维护适用于大区间赋值问题(若每次赋值的区间很小,则退化)容易被卡(codecf915E 动态开点/珂朵莉树注意要开快读快输#include<bits/stdc++.h>using namespace std;typedef long long ll;struct node{ ll l,r; mutable int v; node(ll l, ll r, in

2021-04-14 22:19:28 221 1

原创 Graph theory 0x06 【二分图】

二分图最大匹配匈牙利算法二分图最大权匹配KM(Hungarian Algorithm(Kuhn-Munkres Algorithm))算法魔改刘汝佳板子O(n3)O(n^3)O(n3)#include<bits/stdc++.h>using namespace std;const int maxn = 100;int W[maxn][maxn],n;int Lx[maxn],Ly[maxn];int _left[maxn];bool S[maxn],T[maxn];int

2021-03-02 23:03:14 81

原创 【codeforces上紫】杂题/数据结构

E. Correct Placement题意:每个人两个属性:高度和宽度。对于每个人,找另一个宽度和高度严格小于他(可以那个人的宽度和高度分别小于他的宽度和高度;也可以那个人的高度和宽度分别小于他的宽度和高度)的人的编号。数据范围2e5。思路:一开始看到有两个属性,想起二维偏序问题,但是树状数组等二维偏序问题是用来解决计数问题的。此题需要给出一个答案,则无法使用。后来想到有非常简单的方法,先按一个属性排序,然后遍历数组,维护当前之前的第二个属性的最小值及其编号。然而问题有两个情况,即宽度和高度互换又可以

2021-02-03 22:31:12 333

原创 Graph theory 0x05 【网络流】

最大流基本问题,基于有向图。流量守恒反对称性容量限制算法“增广路”算法。Edmonds-Karp、Dinic“预流推进”算法。ISAPFord-Fulkerson方法数据结构课讲的那个。重点在于residual network和其反向路径。Edmonds-Karp最简单,复杂度高,小图,因此直接邻接矩阵。O(VE2)O(VE^2)O(VE2)HDU 1532 Drainage Ditches Edmonds-Karp模板#include<bits/stdc++.h&

2021-02-03 13:36:24 104

原创 【数值方法&多项式】

二分和三分二分单调性(1) 单调性:左边成立,右边不成立。在成立者之中,找到最靠右的位置。其实就是找到分界点。int l=1,r=n,res=-1;while(l<=r){ int m=(l+r)>>1; if(check(m)) res=m,l=m+1; else r=m-1;}(2) 单调性:左边不成立,右边成立。在成立者之中,找到最靠左的位置。往外一格就是upper_bound,但这个不是内置lower_bound的位置(内置

2021-02-01 22:57:10 195

原创 【线性代数】

线性基一篇讲得很好的博文

2021-01-28 17:28:09 126

原创 2020-2021 ACM-ICPC, Asia Seoul Regional Contest

B - Commemorative Dice签到。暴力枚举C - Dessert Café读懂题意就好做了。。(一直没读懂题意所以一直WA)树。数有多少个点是在两个字母点之间的。# include <bits/stdc++.h># define fo(i,a,b) for(int i=(a);i<=(b);++i)# define pb push_backusing namespace std;const int maxn = 1e5+10;int n,k;vecto

2021-01-25 14:08:14 1593

原创 Graph theory 0x04 【SAT】

先续0x03的TarjanHDU 3836 Equivalent Sets 给有向图,至少添加多少边才成为强连通图?思路:tarjan缩点。对于强连通缩点图中的每一个点,一定至少有一个出度和一个入度。我们就求缩点图中有多少个点的入度为0,多少个点的出度为0.答案就是max(a1,a2)。#include<bits/stdc++.h>using namespace std;const int maxn = 20004;int low[maxn],num[maxn],dfn,cnt

2021-01-21 16:59:52 75

原创 【codeforces上紫】字符串

D2. Prefix-Suffix Palindrome (Hard version)题意:给一个字符串,求把他的前缀和后缀拼在一起得到的最长回文串。多个解则输出一解。Solution1:所以用hash函数解决(预处理从左到右和从右到左的字符串哈希。枚举对称中心O(n),O(1)计算子串哈希值,比较正着算的哈希是否等于反着算的哈希(O(1)))。(待补)Solution2:将开头与结尾相同的拿掉之后,直接用Manacher算法求最左和最右的最长回文串。Solution3:将开头与结尾相同的拿掉

2021-01-19 22:37:54 217

原创 动态规划贩卖机

树形dp树上背包洛谷2014 选课// 树上背包// 关系构成一个DAG图,又每个点只有一个父亲,构成一个森林// 每棵子树,要想选孩子,根节点是必须要选的。#include<bits/stdc++.h>using namespace std;int n,m;const int maxn = 305;vector<vector<int> >G;int dp[maxn][maxn]; // 到第i号为根的子树中,已经遍历了i号点的前j棵子树,选了k

2020-12-26 15:19:58 106

原创 【codeforces上紫】数学

cf691div2 E. Latin Square题意给一个方矩阵,每一行每一列都是一个1~n的permutation,有m次操作,输出操作后的矩阵。(模n下)R: 每个数右移一位L: 每个数左移一位D: 每个数下移一位U: 每个数上移一位I: replace the permutation read left to right in each row with its inverse.C: replace the permutation read top to bottom in ea

2020-12-23 13:50:50 116

原创 【codeforces上紫】图论

cfedu100 E. Plan of Lectures题意拓扑排序加强版。n个数,每个数指定一个祖先,这个祖先一定要出现在当前数之前。形成一颗树。然后有k个额外条件,每个条件给出x和y,要求给所有点进行拓扑排序,且x一定刚好在y之前一位。如果这样的拓扑排序不存在,输出0,否则输出排序。思路dsutoposorting(dfs)constructive algorithm先找一种可能解,再判断这个解是否成立。若这个解不成立,则排序不存在。找到一种改图的方式,使之能进行拓扑排序。把x与y

2020-12-19 17:30:18 174 1

原创 我要成为数论king!!!

唯一分解定理牛牛的幂运算/*设a = p^k1 c = p^k2(0)因为1的幂次永远是1,会使得代码错误,要特判 (1)k1==k2,此时a == c,那么必然有b == d。答案等于n*n (2)k1<k2, (2.1)p<=根号n 爆搜1~根号n 爆搜k1与k2 (2.1.1)k1与k2不互素,即gcd(k1,k2)!=1,那么在他们等于gcd(k1,k2)的时候 答案已经被贡献。 (2.1.1.1)答案怎么贡献?此时我们已经得到k1和k2了,就

2020-12-07 20:58:48 291 2

原创 2018-2019 ACM-ICPC, Asia Shenyang Regional Contest

状况David不在,我跟Fashion两个人打,只A了两题(。)J. How Much Memory Your Code Is Using?(签到)solver: Artist简单模拟,注意getline前有数字,要用getchar冲掉。#include<bits/stdc++.h>using namespace std;typedef long long ll;int check(string str,int len){ int unit; while(1){

2020-12-01 20:19:44 329

空空如也

空空如也

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

TA关注的人

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