自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

On the way

blog

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

原创 Educational Codeforces Round 70

Educational Codeforces Round 70E:题意是给定 nnn 个字符串 sis_isi​ ,对于任意组合 si+sjs_i+s_jsi​+sj​ ,求所有组合在 ttt 中的出现次数之和。因为 sis_isi​ 和 sjs_jsj​ 是相连的,因此可以在 ttt 上枚举连接点,然后求出以连接点右边第一个点为起始点有多少个 sss,然后求出连接点左边第一个点为结束点有多...

2019-08-13 21:44:59 201

原创 Codeforces Round #576 (Div. 1)

Codeforces Round #576 (Div. 2)E:给 3n3n3n 个点和 mmm 条边,打印出一个 nnn 条边的边独立集或者 nnn 个点的点独立集。可以贪心地枚举每一条边,构成边独立集,如果最后得到的边独立集大于 nnn ,那么打印边独立集。否则不包含在边独立集中的点肯定是点独立集,且至少数量为 nnn ,此时打印点独立集即可。#include <bits/stdc...

2019-08-04 00:14:12 294 3

原创 The 13th Chinese Northeast Collegiate Programming Contest

The 13th Chinese Northeast Collegiate Programming Contest题解C:算出斜率和截距sort一下就行,每次要减去的贡献是平行的直线数-重叠的直线数。#include <bits/stdc++.h>using namespace std;using ll = long long;using ld = long double...

2019-07-19 21:59:42 437

原创 Codeforces Round #572 (Div. 1)

Codeforces Round #572 (Div. 1) A1:观察发现,只要有度为2的点,就会导致这个点关联的两条边的权重相等,此时为NO,否则是YES。#include <bits/stdc++.h>using namespace std;const int N = 1e5+7;vector<int> adj[N];int n;bool ok;vo...

2019-07-14 23:27:15 149

原创 Codeforces Round #569 (Div. 1)

Codeforces Round #569 (Div. 1)A:首先模拟一段,等最大值到第一个的时候会开始循环。#include <bits/stdc++.h>using namespace std;const int N = 3e5+7;int a[N];int ansx[N], ansy[N];using ll = long long;int main() { ...

2019-07-14 00:57:22 117

原创 2015-2016 Petrozavodsk Winter Training Camp, Moscow SU Trinity Contest

2015-2016 Petrozavodsk Winter Training Camp, Moscow SU Trinity Contest大佬题解E:这题是阅读题。。。首先找到LCA,把a和b每次向上提时,将其父亲的另一个儿子加入到集合中。把a和b都提到LCA后,把LCA往上提,做同样的操作。#include <bits/stdc++.h>using namespace s...

2019-07-09 19:31:03 908

原创 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest

2016-2017 ACM-ICPC, NEERC, Southern Subregional ContestA:求出数组中的最大值对应的下标 iii ,当 r[i]−R≤∑j≠ir[j]−Rr[i]-R \leq \sum_{j \neq i} r[j]-Rr[i]−R≤j̸​=i∑​r[j]−R 时,这个R才有效。然后通过每次取两个最大的出来分别减1就行。对于 R=0R=0R=0 的情况...

2019-07-08 01:14:28 142

原创 Educational Codeforces Round 67 (Rated for Div. 2)

Hackforces…D:题意是可以进行任意次操作,每次操作将一个子数组进行排序。问能否将数组a变为数组b。通过交换相邻两个元素(当前一个大于后一个)使得一个子数组有序是冒泡排序的算法。这就是说题目中的每一次操作可以看成若干次交换相邻两次元素的操作,且交换相邻两个元素是满足题目操作的要求的。因此问题转化为每次操作是排序一个长度为2的子数组。那么对b从左到右遍历。对于一个元素 b1b_1b...

2019-07-03 21:23:31 119

原创 Codeforces Round #567 (Div. 2)

Codeforces Round #567 (Div. 2)D:题意是在树中确定一个根,使得相同深度的点度数相同。稍微画一下可以知道,根要么在直径上,要么在直径终点延伸出的一条链的端点上。因此只需要处理直径的两个端点、直径的中点、直径延伸出的最短的链的端点这几个点就行。如果这几个点都不满足要求,则输出-1。#include <bits/stdc++.h>using name...

2019-06-13 16:21:22 260

原创 Codeforces Global Round 3

Codeforces Global Round 3F:题意是给定 nnn 个物品,每个物品有一个权值和一个掩码。这些权值之和不为0 。需要求出一个 sss ,最终求和为:将 sss 与掩码按位与,如果结果有奇数个1,那么将这个物品的权值取反。求出这个 sss 。考虑将所有物品按掩码的最高位 kkk 进行分类。很容易知道,第 kkk 位是否置1不会影响掩码最高位小于 kkk 的物品对求和的贡献...

2019-06-10 21:50:03 152

原创 莫比乌斯反演

莫比乌斯反演-OIWiki数论分块:对于 ⌊ni⌋\lfloor \frac{n}{i} \rfloor⌊in​⌋ ,要找一个最大的值 jjj ,使得 j=⌊ni⌋j=\lfloor \frac{n}{i} \rfloorj=⌊in​⌋ 。这个 j=⌊n⌊ni⌋⌋j=\lfloor \frac{n}{\lfloor \frac{n}{i} \rfloor} \rfloorj=⌊⌊in​⌋n​⌋ ...

2019-06-10 15:28:11 245

原创 Codeforces Round #564 (Div. 1)

Codeforces Round #564 (Div. 1)本场本菜鸡喜提倒数第10,菜的真实。A:首先看能不能在牌底为1开始的升序时,通过打牌连上这个升序。如果不能的话,考虑先用手上的0兑换牌顶的k张牌,然后再开始打1升序,这部分满足二分性质。#include <bits/stdc++.h>using namespace std;const int N = 2e5+7;...

2019-06-09 23:42:32 178

原创 Codeforces-716E-Digit Tree(点分治)

Codeforces-716E-Digit Tree题意是求出树上有多少条路径满足路径上权值连起来组成的数字是 MMM 的倍数。看到树上路径计数就应该知道是点分治。。。设 aua_uau​ 为从 uuu 到根的数字表示, bub_ubu​ 是从根到 uuu 的数字表示,dud_udu​ 为 uuu 的深度。定义根的深度为 000 。对于一个始于 uuu ,终于 vvv 的路径,可以得到如下...

2019-06-09 16:57:58 402

原创 Codeforces-914E-Palindromes in a Tree(点分治)

Codeforces-914E-Palindromes in a Tree题意是给定一棵树,每个节点有一个字母权值,对于每个点 uuu ,求出 ans[u] ,ans[u] 的含义为有多少条穿过 uuu 的路径,使得路径上的权值能凑出一个回文串。很显然,每个权值可以表示为一个二进制位。当一条路径的权值的异或和为 000 (所有字母出现次数都为偶数) 或只有一位置111 (只有一个字母的出现次数...

2019-06-07 19:17:53 176

原创 Educational Codeforces Round 66

Educational Codeforces Round 66E:题意是给定 nnn 个区间,再给定 mmm 个区间,问这 mmm 个区间中的每一个至少需要多少个从 nnn 个区间内取出来的区间使得完全覆盖所有点。设 dp[i][j] 为从 iii 左边的任意位置,经过 2j2^j2j 个区间最远可以跳到的位置。转移就是 dp[i][j+1]=dp[dp[i][j]][j] 。那么对于每一...

2019-06-06 14:20:23 131

原创 Codeforces Round #563 (Div. 2)

Codeforces Round #563 (Div. 2)D:题意是给定 nnn 和 xxx ,构建这样最长的数组 aaa 满足:1≤ai≤2n1\leq a_i \leq 2^n1≤ai​≤2n 且任意一个连续区间的异或和不等于 000 或 xxx 。一个区间[l, r]的异或和可以由l-1的异或前缀和和r的异或前缀和异或起来表示。连续区间异或和不为0则说明构造出的数组中,没有任何一...

2019-06-05 16:50:14 134

原创 The 2019 ACM-ICPC China Shannxi Provincial Programming Contest

The 2019 ACM-ICPC China Shannxi Provincial Programming ContestC:题意差不多就是求点到圆的切线的切点。#include <bits/stdc++.h>using namespace std;const double PI= atan((double)1)*4;int main() { int T; ...

2019-06-01 23:05:08 550

原创 Codeforces Round #562 (Div. 1)

Codeforces Round #562 (Div. 1)A:题意是给定一个数组,每次可以对数组中的任意一个子集中的元素自增1,求最少需要多少次操作使得这个数组非降序。显然可以看出操作次数对这个问题满足二分性质的,二分一下就行了。#include <bits/stdc++.h>using namespace std;const int N = 3e5+7;int a[N...

2019-06-01 16:39:52 247

原创 Educational Codeforces Round 65

Educational Codeforces Round 65E:f(l,r)f(l,r)f(l,r) 的定义为从 aaa 中删除所有 l≤ai≤rl \leq a_i \leq rl≤ai​≤r 得到的数列,题意是要求出有多少对 (l,r)(l,r)(l,r) 满足 f(l,r)f(l,r)f(l,r) 非递减。设 G(p)G(p)G(p) 为删除 ai&lt;pa_i &...

2019-05-24 00:40:31 139

原创 MapReduce阅读笔记

MapReduce是什么? MapReduce是一个分布式编程模型,用户只需实现map和reduce两个函数,就可以完成分布式的任务处理。 map函数将原始数据转换成中间KV对,Reduce函数将中间KV对根据K分组,相同的K对应一组V,最后生成最终文件。MapReduce的具体流程: 1. MapReduce将输入文件分割成M个小文件。 2. 一共有M个map任务,R个reduce任...

2018-07-30 16:03:54 257

原创 红黑树的理解

红黑树的五条性质每个结点要么是红的,要么是黑的。根节点是黑的。每个叶节点是黑的(NIL指针)。如果一个结点是红的,那么它的两个子节点是黑的。任取一个点,它到所有它的子树上的NIL结点的路径上黑结点数目是相等的。由性质5可以保证红黑树上的查找是 O(logn)O(logn)O(logn) 的。红黑树的插入红黑树的插入参考了这篇文章。 假设插入的新结点的初始颜色是红色...

2018-04-24 23:17:00 210

原创 求a[gcd(i,j)]之和

给定长度为 NNN 的数组 aaa ,求 ∑1≤i≤n,1≤j≤ma[gcd(i,j)]∑1≤i≤n,1≤j≤ma[gcd(i,j)]\sum_{1 \leq i\leq n, 1 \leq j\leq m} a[gcd(i,j)] 数据范围: 1≤n,m≤N≤1051≤n,m≤N≤1051 \leq n,m \leq N \leq 10^5 。 设 f(n,m)=∑i=1n∑j=1ma[g...

2018-04-22 00:35:23 835

原创 链表排序

链表排序使用并归排序。。。 时间复杂度 O(nlogn)O(nlogn)O(nlogn) ,空间复杂度 O(1)O(1)O(1) 。 如果是双向链表应该也能用快排。class Solution {public: ListNode* sortList(ListNode* head) { ListNode* end; int n = getList...

2018-03-01 15:36:12 341

原创 Leetcode - Single Number II

Leetcode - Single Number II 一个数组,只有一个数出现一次,其他数都出现三次,线性复杂度找这个数。方法1: 线性复杂度,可以用哈希表。。时间快于32%的解法。。。class Solution {public: int singleNumber(vector&lt;int&gt;&amp; nums) { unordered_map&l...

2018-02-28 17:28:45 154

原创 生成排列的三种方法

leetcode.permutations 1. 递归,若初始数组有序,则生成的排列字典序有序class Solution {public: // recursion method vector&lt;vector&lt;int&gt;&gt; permute(vector&lt;int&gt;&amp; nums) { vis = vector&lt;in...

2018-02-24 21:47:00 3184 1

原创 求两个有序数组的中位数

求两个有序数组的中位数 设用 iii 分割数组定义从在数组的第 iii 个元素的左边将数组分割成两个子数组。如 i=2i=2i=2 时,[1,2,3,4]→[1,2]和[3,4][1,2,3,4]→[1,2]和[3,4][1,2,3,4]→[1,2]和[3,4] 。 那么为了找两个有序数组的中位数,假设两个数组长度之和为偶数,我们用 iii 分割第一个数组, jjj 分割第二个数组,那么 i+...

2018-02-22 15:57:23 228

原创 求给定数是斐波拉契数列中的第几项

题意是求给定的数是 Ak(1≤k≤105)" role="presentation" style="position: relative;">Ak(1≤k≤105)Ak(1≤k≤105)A_k (1 \leq k \leq 10^5) 中的第几项。 可以通过先计算出 Ak" role="presentation" style="position: relative;

2018-02-05 19:30:09 1510

原创 Codeforces - 920G - List Of Integers

Codeforces - 920G - List Of Integers题意是求大于x且与p互质的第k个数。 不大于num且与p互质的数的个数=num-不大于num且与p有公因子的数的个数,这样就可以用容斥求了:如p有素因子ABC 有公因子A的个数+有公因子B的个数+有公因子C的个数-有公因子AB-有公因子BC-有公因子AC+有公因子ABC由于p最多有7个公因子,容斥的复杂度是 O(7

2018-02-03 14:50:32 196

原创 Codeforces - 920E - Connected Components?

Codeforces - 920E - Connected Components?bfs,不过要维护一个剩余点的链表,每次从链表里找有边的点然后push。 复杂度比较玄学。。#include using namespace std;const int N = 2e5+7;vectorint> no[N];int nxt[N],pre[N],noe[N];bool vis[N

2018-02-03 13:58:56 676

原创 Codeforces - 919E - Congruence Equation

Codeforces - 919E - Congruence Equation可以发现 P=p×(p−1)P = p\times(p-1) 是 n×an(mod p)n\times a^n(mod \ p) 的循环节 但 p×(p−1)p\times (p-1) 太大,考虑到 ap−1≡1(mod p)a^{p-1} \equiv 1(mod \ p),令 n=i×(p−1)+jn=i\times

2018-02-01 15:56:52 601

原创 Codeforces-918C-The Monster

Codeforces-918C-The Monster题意是给一个仅有’(‘,’)’,’?’的字符串,问有多少个子串是美丽的。一个字符串是美丽的当且仅当能替换’?’为’(‘或’)’使得替换后的字符串非空且括号匹配。先考虑检测一个字符串是否美丽的情况: 从左向右遍历串, 设置变量 qmark" role="presentation" style="position: relative;"

2018-01-31 15:39:24 209

原创 HDU - 6252 - Subway Chasing(差分约束)

HDU - 6252 - Subway Chasing 题意是S比P先上车 XX 分钟,然后两个人之间有多次通话,给出每次通话时S和P所处的区间(即位于哪两个站点之间),然后求所有相邻站点之间的距离。差分约束就是利用最短路算法求解形如 di−dj≤+Cd_i-d_j\leq +C 这样的不等式,其中 CC 为常数,套到最短路中即 di−dj≤cost(i,j)d_i - d_j \leq cost

2017-12-14 22:56:37 1132

原创 Codeforces Round #450 (Div. 2)

Codeforces Round #450 (Div. 2)A:水#include <bits/stdc++.h>using namespace std;int main(){ int a=0,b=0; int n; cin >> n; while(n--) { int x,y; cin >> x >> y;

2017-12-14 11:11:45 195

原创 后缀数组题集

POJ - 3261可重叠出现至少 kk 次的最大子串。取height数组上长度为 k−1k-1 区间的最值就行了。#include<cstdio>#include<algorithm>using namespace std;const int N = 2e4+7,M=1e6+7;int sa[N],c[M],t1[N],t2[N],rk[N],h[N],dp[N][20],mm[N];i

2017-10-18 22:23:05 276

原创 线段树题集

POJ-2528线段树的区间染色。如果直接离散化染色肯定会WA。反例:[1,10],[1,3],[3,10][1,10],[1,3],[3,10] 。因此新增左端点左边一个点和右端点右边一个点,然后再离散化,可以避免这种情况。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=1

2017-10-18 22:22:14 325

原创 并查集题集

POJ-1182将所有有关系的动物放到并查集中。维护一个带权并查集。每个点带的权值是 off[u]off[u] ,表示它与它父亲的偏移量,这个值可以在路径压缩中更新。偏移量为0表示同类,为1表示它吃它父亲,为2表示它父亲吃它,这样当偏移量不对的时候就可以判定是假话了。#include<cstdio>using namespace std;const int N=50007;int fa[N],

2017-10-18 22:21:32 645

原创 KMP题集

HDU - 1711模板题。。#include<bits/stdc++.h>using namespace std;const int N=1e6+7;int a[N],b[N],n,m,nxt[N];void getNext(int s[],int n,int nxt[]){ int i=0,j=nxt[0]=-1; while(i<n) { wh

2017-10-18 22:20:44 356

原创 Nordic Collegiate Programming Contest 2016题解

Nordic Collegiate Programming Contest 2016A: 从前往后记录每次操作后变化的点。 然后从后往前维护并查集。#include<bits/stdc++.h>using namespace std;const int N = 1000 ,Q = 1e4+7;int G[N][N],fa[N*N];int dir[4][2]={ {1,0},{-1,0}

2017-10-03 23:23:44 285

原创 POJ-1741-Tree (点分治)

POJ-1741-Tree点分治第一题。点分治主要用于统计满足某一性质的链或其数量。其主要思想是找重心->删重心->迭代子树。每次迭代可以将子树分成近似相等两部分,这样就能处理两种类型的链:横跨重心和在子树内。这样就可以在O(nlogn)O(nlogn)的时间内找出所有的链,并进行处理。这题统计和,所以要排序,因此这题的复杂度是 O(nlog2n)O(nlog^2n) 。#include<algor

2017-09-20 18:07:18 161

原创 Codeforces - 848C - Goodbye Souvenir(CDQ分治)

Codeforces - 848C - Goodbye Souvenir

2017-09-19 20:58:38 448

空空如也

空空如也

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

TA关注的人

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