自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦之城

梦想开始的地方

  • 博客(70)
  • 收藏
  • 关注

原创 总结 - 网络流建图技巧

上下界问题 无源汇上下界求有无可行流 另取两个附加汇点xx,附件源点yy. u->v限制[L,R][L,R][L,R] <=> add_edge(u,xx,L),add_edge(yy,v,L),add_edge(u,v,R-L) 最后只需跑一遍 max_flow(yy,xx)检验与yy相连接的边是否满流即可 有源汇上下界求有无可行流时,只需在无源基础上加上 add_edge...

2018-09-18 21:47:24 963

原创 CF - Nastya Is Buying Lunch (DP/想法)

题目链接:Codeforces Round #546 (Div. 2) D. Nastya Is Buying Lunch 题意 给出一个长度为n的置换,再给出m组(ui,vi)(u_i,v_i)(ui​,vi​) 代表如果ui在vi前面并且相邻时,两者可以交换。问置换中最后一个元素 P[n] 可以最多向前移动几格。 数据范围: n≤3∗105,m≤5∗105n \le 3*10^5,m \le ...

2019-03-14 16:00:32 325

原创 CF - Magic Gems (DP+矩阵快速幂优化)

CF - Magic Gems 题目链接: Educational Codeforces Round 60 (Rated for Div. 2) Magic Gems 题意 有两种宝石,第一种是普通宝石,第二种是魔法宝石,每个魔法宝石可以分成m个连续的普通宝石,这两种宝石所占格子都是一个,给你一个N个连续的格子,求能够填满这个格子的最初排列情况 数据范围: 2≤M≤1002 \le M \le ...

2019-02-28 12:57:50 362

原创 CF - Magic Ship (二分)

CF - Magic Ship (二分) 题目链接: Educational Codeforces Round 60 (Rated for Div. 2) Magic Ship 题意 给你一个起始点(sx,sy),要求到达(ex,ey),再给你一个长度为n字符串s1,s1中包含四个字母,U,D,L,R,分别代表上下左右,代表每个时刻的风向,并且这个风向是循环的(也就是字符串到达末尾时回到第一个字符...

2019-02-28 11:13:46 399

原创 HELLO 2019 - Makoto and a Blackboard (积性函数+DP期望)

Makoto and a Blackboard 题目链接: D - Makoto and a Blackboard 题意 给你一个N,定义一个操作:将N替换为他的一个因子(包括1和N) 现在重复K次以上操作,问最后期望的值是多少? 数据范围: $ N <= 10^{15}, K <= 10^4 $ 思路 我的思路 求期望的有两种做法, DP存的是概率,直接是最后所有可能的结果乘以他...

2019-01-06 17:22:29 354

转载 积性函数与线性筛

积性函数与线性筛 积性函数 若一个定义在正整数域上的函数f(x)f(x)f(x) 对于任意满足gcd⁡(x,y)==1\gcd(x,y)==1gcd(x,y)==1 的x,yx,yx,y都有f(xy)=f(x)∗f(y)f(xy)=f(x)*f(y)f(xy)=f(x)∗f(y),则f(x)f(x)f(x)是积性函数。 常见积性函数 μ(n)\mu(n)μ(n):莫比乌斯函数 φ(n)\varph...

2019-01-06 10:15:58 422 2

原创 CodeForce Multidimensional Queries (多维曼哈顿距离)

CodeForce Multidimensional Queries 题目链接: http://codeforces.com/contest/1093/problem/G 题意 在一个K维空间中给出N个点,M个询问,每次询问一段区间的点中相距最远的距离 数据范围: N,M<2∗105.K<=5N ,M< 2*10^5 .K < =5N,M&l...

2018-12-16 16:46:14 419

原创 VOJ - Longest Chain (CDQ分治三维偏序)

Longest Chain 题目链接: Longest Chain Gym - 102014G 题意 给你一个N个三元组,定义三元组 T1>T2T_1 > T_2T1​>T2​ 为 $x_1 > x_2 $ and y1>y2y_1 > y_2y1​>y2​ and z1>z2z_1 > z_2...

2018-12-05 16:25:16 400

原创 POJ - 2975 Nim(Nim博弈)

Nim **题目链接:**http://poj.org/problem?id=2975 题意: 给你N堆石头,让你和另一个人进行Nim博弈,每个人可以拿任意一堆中不少于一的石子,当谁无法石子拿时将失败。问你先手必胜有几种拿法。 思路: 参考一位大神的想法 Nim博弈的本质是始终维持各个堆的异或为零的状态,这样我们只许对每一堆进行判断,判断先拿这一堆能否维持异或为零 那么我们需要将除了这一堆以外的...

2018-11-23 15:18:23 191

原创 笔记 - 关于SG值

最近看了许多关于SG函数的帖子,来简单谈谈我所了解的SG 博弈论所对应的状态转移,我们都可以用一个有向无环图来表示 SG[x]所代表就是点x,到所有能转移子节点的mex 这里的本质仍然是我们最熟悉的那种巴氏博弈(每个人可以拿1到N个东西,谁拿不了东西时,谁将失败) 当前的值为x代表着的就是无论对手取得是什么数字,我都可以跟他凑成x,而转移到了子节点以后,同样可以以此来互相凑。从而保证每个结点都是存...

2018-11-23 15:02:59 434

原创 洛谷 - P1250种树(差分约束)

P1250种树 题目链接:P1250 种树 题意 给你一条街,街由N个点构成,每个点上可以种一棵树,给你K个要求,每个要求由B,E,T组成,分别表示从点B开始到点E中间至少有T棵树,现在问这条街上最少有几颗树? 数据范围:0<N<=3∗104,0<K<=5000,0<B<=E<=300000&...

2018-11-08 13:33:04 422

原创 洛谷 - P4012 深海机器人问题 (费用流优先度)

P4012 深海机器人问题 题目链接: P4012 题意 在一个网格中给你一些机器人,要求只能向上走,或向左走,每一条边都有一个宝藏,每个宝藏只能被拿一次。机器人只能在一些指定点开始放,在一些指定点收回来。问最多可以获得多少财富? 思路 我一开始想的也是费用流,不过那个只能走一次的问题,我一直想不好。 其实只需要再建一条边就好了,除了add_edge(u,v,1,-val) 再建一条边add_e...

2018-10-29 18:40:55 343

原创 笔记 - css

css 引入css 1.行间样式 <div style=" width: 100px; height: 100px; background-color: red; "></div> 2.页面级 在head中加入代码style <style type="text/css"> div{ width: 100px; h...

2018-10-18 12:41:39 166

原创 笔记 - 常用HTML标签

常用HTML标签 <html lang = "en"> <!-- 告诉搜索引擎,我们网站的内容 --> <head> <!--//思想:编辑给浏览器的 --> <meta cahrset = "utf-8"> <!-- 万国语言 --> <title>淘宝网,淘! &am

2018-10-15 15:12:09 197

原创 POJ-3469 Dual Core CPU (最小割)

Dual Core CPU 题目链接:Dual Core CPU 题意 思路 照书上的话来说,用最小的费用将对象分成两个集合的问题,常常可以转换成最小割问题,这道题就是一道典型的例子。 具体的还需要证明 记在核A上执行的模块集合是S,而在核B上执行的模块集合为T。考虑以模块为顶点,并且还有额外的源点s和汇点t的图。我们也记图s-t割所对应的包含s的顶点集合为S,包含t的集合为T,然后来考察他们...

2018-09-19 12:44:16 761

原创 P2764 最小路径覆盖问题 (网络流)

最小路径覆盖问题 题目链接: P2764 最小路径覆盖问题 题意 给你一个DAG,也就是有向无环图,现在要求里面最小路径覆盖。 数据范围: 1<=n<=150,1<=m<=60001<=n<=150,1<=m<=60001<=n&a

2018-09-18 21:40:17 335

原创 tex数学公式和字符表示方法

tex数学公式和字符表示方法 上下标 (1)上标符号为**“^”、下标符号为“_”** , 例如 : 2^r , a_5 (2)可同时输入上下标(注意要先下标再上标) 例如 : C_n^m 分式 (1)简单的可以用单斜杠 / 表示分数线, 例如 : 2/3,a/b,a/{b+c},a2/(b_2+c)2 (2)使用 \frac{}{} 第一个{}内放分子,第二个{}内放分母。 例如:\frac...

2018-09-18 21:28:02 1337

原创 VOJ 字符加密Cipher (后缀数组)

字符加密Cipher 题目链接:字符加密Cipher HYSBZ - 1031 题意 给你一个长度为N的字符串,让你输出一个字符串,要求,这个字符串是原字符串循环(即每次将第一个字符移至最后一个位置),总共会用N个这样的字符串,然后将这些字符串按照字典序排列,按照顺序每次输出这些串的最后一个字符,这样就形成了一个加密过的字符串。 数据范围: N<105N < 10^5N...

2018-09-18 11:54:36 230

原创 P3355 骑士共存问题 (最大独立集).md

P3355 骑士共存问题 (最大独立集) 题目链接: 骑士共存问题 题意 给你一个N * N的棋盘,你需要在里面放置尽可能多的骑士,(骑士走1 * 2)来使得任意两个骑士都无法消灭对方,并且有M个点已经被障碍物挡住了。 数据范围: N<200;M<N2N < 200;M < N^2N<200;M<N2 思路 题目经过稍加分析可.

2018-09-17 18:31:50 456

原创 模板 - 二维树状数组 (单点修改,区间查询)

#include <bits/stdc++.h> using namespace std; #define rep(i,j,k) for(int i = (int)j;i <= (int)k;i ++) #define per(i,j,k) for(int i = (int)j;i >= (int)k;i --) #define debug(x) cerr<&

2018-09-11 21:00:54 345

原创 模板 - 网络流的上下界

无汇源有上下界可行流 int main() { scanf("%d %d",&N,&M); int xx = N+1; int yy = N+2; N += 2; rep(i,1,M) { int x,y,l,r; scanf("%d %d %d %d",&x,&a

2018-09-11 18:03:05 196

原创 HDU-3974 Assign the task (DFS序+线段树)

Assign the task 题目链接: J - Assign the task HDU - 3974 题意 有一个公司,一共有N个员工,每个员工有一个直接上司(董事长没有),每个上司可以管理自己手下以及自己手下的所有手下。关系为N-1个,有两个操作。 C 查询x员工正在干的事 T 让x员工及其手下干y事 数据范围:N<5∗105,y<109N<5∗105,y&...

2018-09-06 13:56:49 399

原创 HDU-4037 Can you answer these queries?(线段树)

Can you answer these queries? 题目链接: H - Can you answer these queries? HDU - 4027 题意 给你N个数A[i],给你M个操作,每次操作一个区间[l,r][l,r][l,r],有两种操作。 将区间内的数都变成自己的根号,取整 求区间[l,r][l,r][l,r] 的和 数据范围:N,M<105N,M&lt...

2018-09-03 18:40:21 319

原创 VOJ - Robots at Warehouse (图论找规律)

Robots at Warehouse 题目链接: J - Robots at Warehouse Gym - 100971J 题意 在一个N*M的图中,’.’ 代表可以走的路,’1’代表第一个物体,’2’代表第二个物体,’#’代表墙,问你两个物体能不能交换地方。 思路 我原先想的是在两种之间找一条路,判断路上会不会出现度为三的点,只要有度为三的点,那么是一定可以到达的,但其实...

2018-07-22 18:51:36 276

原创 VOJ - Turing Tree (莫队/离线线段树)

Turing Tree 题意 思路 代码一 思路二 代码二 Turing Tree 题目链接: Turing Tree HDU - 3333 题意 给你一N个数字,有Q个询问,每次询问一个区间,求这个区间中不同的数字之和 (N < 3e4,Q < 1e5) 思路 首先,最简单想到的肯定是暴力算法,但是暴力算法一定会T,复杂度为O(N*Q) ...

2018-07-22 16:15:39 2123 1

原创 HDU - Cow Sorting (树状数组)

Cow Sorting 题目链接: Cow Sorting 题意 给定一个大小为N的数组,数组为1~N的全排列,为使数组形成单调递增,需多次交换相邻的两个数,设Cost为交换x,y时的x+y。求最小Cost。 思路 首先,我们看到了逆序对,这样想到的肯定时树状数组了,树状数组可是解决逆序对的好手。 这里还有一个问题,就每次交换都需要消耗,如果是普通的逆序对显然不行,因为通常做的...

2018-06-10 19:34:15 474

原创 模板 - 凸包

模板 - 凸包 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 300005; // 存储二维平面点 struct ip { int x, y, i; ip(int x = 0, int y = 0) : x(x), y(y), i(0) { }...

2018-06-10 15:40:31 170

原创 笔记 - BM 算法

如果,你的人生,在未来的某一段路上会遇到多个非常大的教训,那么我们应该趋向于寻找最后的 这两个坎,能够让我们前进的大小,明显是不同的,先考虑后面的点能让我们省下更多的弯路。 以终为始 对优先从最后的一个字符开始比对,如果不相等,就跳到自己串中前一个出现的位置。 - 建立BC串 //简易代码 int* buildBC (char * P) { int * bc = new int ...

2018-06-07 16:40:40 194

转载 BM算法详解

原帖链接: BM算法详解 来源 在没有BM算法时,其原始算法是从后往前进行匹配,需要两层循环,判断以某个字符为结尾的子串是否和模式串相等,这种算法也称作暴搜; 贴上代码: void BLS(string s, string p) { int s_len = s.size(), p_len = p.size(); int j = 0, i = 0; while ...

2018-06-07 16:39:49 2967

原创 笔记 - 计算几何一 (convex Hull)

计算几何一 (convex Hull) B.Extreme Points Extremity 当一个点存在一条经过它的直线,并且无法将图形分为两块时,极点。 判断极点的方法,判断这个极点是否存在于一个三角形的内部 Make all points of S as EXTRMEE For each triangle ▲ (p,q,r) ​ For each s ∈...

2018-06-07 14:57:57 691

原创 TSOJ - 回文串 (Manachar变种)

回文串 (Manachar变种) 题目链接: 回文串 题意 输入一个字符串。 输出子串是回文串的个数。 思路 普通的Manacher算法求的是最长回文串 其中的关键步骤就是res = max(res,p[i]-1) 现在要求的是总共的回文子串,那么我们就只需将以每个字符为中心的回文串长度/2即可。 代码 #include <bits/stdc++.h&gt...

2018-06-05 19:28:24 350

转载 Trie树(字典树)

Trie树(字典树) 原帖链接: 浅谈Trie树(字典树) 一、引入 字典是干啥的?查找字的。 字典树自然也是起查找作用的。查找的是啥?单词。 看以下几个题: 给出n个单词和m个询问,每次询问一个单词,回答这个单词是否在单词表中出现过。 答:简单!map,短小精悍。 好。下一个 给出n个单词和m个询问,每次询问一个前缀,回答询问是多少个单词的前缀。 答:map,把每...

2018-06-05 13:07:26 852

原创 归并排序

归并排序 很久没打了,现在发现思路跟线段树差不多 #include <bits/stdc++.h> using namespace std; const int MAXN = (int) 1e6+7; int N; int A [MAXN]; int Tmp[MAXN]; void Merge(int l,int r){ if (l == r) { ...

2018-05-24 20:03:23 146

转载 欧拉回路(转载)

欧拉回路 作为广大OIer的朋(gong)友(di)的欧拉,在图论中也贡(zuo)献(e)良(duo)多(duan),尤其是萌新经常会遇到以下两个恶心玩意。 欧拉路径:在一个图中,由i点出发,将每个边遍历一次最终到达j点的一条路径。 欧拉回路:i=j时的欧拉路径。 于是,如何确定一个图是否存在欧拉路径/回路,并找到这条路经,成为了出题人虐待萌新的法宝。 无向图 首先,在无向图...

2018-05-24 18:51:01 200

原创 ZOJ - 2852 - Deck of Cards (三维DP)

Deck of Cards 题目链接: D - Deck of Cards ZOJ - 2852 题意 按顺序给你很多的牌,牌的价值从1到10不等,有一张特殊的牌Joker可以代表尽可能大的值; 然后给你三个插槽,从他们有自己的序号1,2,3. 我们可以把多张牌插入插槽,但是其值不能大于21; 当插槽里面的牌值总和等于21时,可以将这里的牌都拿走。 每成功插入一张牌就奖励50元 如果操作...

2018-05-24 15:54:52 254

原创 总结 - 易错点

易错点 ONE 题目要求是 “##” 结尾,我使用了str[1] == ‘#’ && str[2] == ‘#’; single line containing only “##” marks the end of a test case. TWO 题目给的是 f1 := 1 f2 := 2 fn := fn-1 + ...

2018-05-24 15:53:53 203

原创 模板 - 欧拉函数

模板 - 欧拉函数 int euler (int n){ //返回euler(n) int res = n,a = n; for (int i = 2;i*i <= a;i ++){ if (a%i == 0){ res = res/i*(i-1);//先进行除法是为了防止中间数据的溢出 ...

2018-05-24 15:52:50 228

原创 模板 - 负环(Djs改进)

负环(Djs改进) /* Time : 47 Mem : 780 */ #include <iomanip> #include <cstring> #include <cstdlib> #include <cctype> #include <cstdio> #include <string> #include <st...

2018-05-24 15:51:15 219

原创 模板 - 二分图(匈牙利算法)

二分图(匈牙利算法) #include <bits/stdc++.h> using namespace std; using namespace std; const int MAXN = 510; int line[MAXN][MAXN]; int used[MAXN]; //在男生的某次访问里,女生能不能匹配到 int nxt[MAXN]; //如果匹配到的话,这个男生是谁...

2018-05-24 15:41:36 162

原创 VOJ - Ran and the Lock Code (规律+二分)

Ran and the Lock Code 题目链接: Ran and the Lock Code Gym - 101778B 题意 给你一个n和a要你构造一个含n个正数的序列,并满足这个序列里所有数的平均数是a,现在要求这个序列里最多能有多少不同的数字。 思路 因为这些数字的平均数是a嘛,所以就非常容易的想到另外的数字在a的左右两侧平均分布,如果是偶数,就在a左右取相等个数的...

2018-05-22 17:10:50 392

空空如也

空空如也

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

TA关注的人

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