自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Consult_

笔记专用,有错误请指正

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

原创 237. 程序自动分析 (离散化+并查集)

链接题目描述: 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设x1,x2,x3,…代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。例如,一个问题中的约束条件为:x1=x2,x2=x3,x3=x4,x1≠x4,这些约束条件...

2020-04-28 12:27:28 163

原创 238. 银河英雄传说 (带权并查集)

P1196 [NOI2002]银河英雄传说基本上还是带权并查集的模板,主要在于画图模拟理解本质思想。#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int N = 3e4+7;int p[N];int d[N]; // d[x] 是...

2020-04-28 09:55:13 171

原创 239. 奇偶游戏(带权并查集)

POJ (貌似不支持c++11和万能头)AcWing (都支持)奇偶游戏1、当区间 [a,b] 内有奇数个1,那么前缀和S[b] - S[a-1] 为奇数,意味着S[b]与S[a-1]奇偶性不同。(可用其坐标代替前缀和表示相对关系)2、当区间 [a,b] 内有偶数个1,那么前缀和S[b] - S[a-1] 为偶数,意味着S[b] 与S[a-1] 奇偶性相同。前缀和分为两类——奇数、偶数...

2020-04-28 01:05:24 459

原创 1250. 格子游戏 (降维并查集)

格子游戏裸并查集二维坐标一维化 :x*n + y (x,y均从0开始,即从0开始给每个点编号)当开始的点与下一个点在同一个集合内,就是已经形成环。#include<iostream>using namespace std;int p[40010];int n,m;int find(int x){ if(p[x] !=x) p[x] = find(p[x]); re...

2020-04-27 14:01:01 229

原创 P2024 [NOI2001]食物链 (带权并查集)

食物链带权并查集,通过维护结点与根节点的距离 (代表相对关系),查询集合内点的关系;#include<iostream>using namespace std;int p[50010];int d[50010]; //到当前集合的根节点的距离int find(int x){ if(p[x] !=x) { int r = find(p[x]); d[x] +=...

2020-04-27 12:48:43 243

原创 K-th Number (二分答案)

K-th Number **感觉题意不太好懂QAQ,这里的第k大是从大到小排序后第k个位置的数。题意: 从A数组中挑出每个区间内第k大的数放到B数组中,然后输出B中第m大的数;思路: 首先我们看看暴力怎么做,枚举A中的数 x ,然后怎么去判断这个x是不是A中某一个区间内第k大的数,如果是我们就把x加入到B中,至于如何判断:可以记录每个x出现的位置,然后双指针从x往两边判断是否有k个数&gt...

2020-04-26 00:12:43 299

原创 糖糖别胡说 (差分) + 华华给月月准备礼物 (二分)

糖糖别胡说 (模拟 差分 )题意描述的不是很友好,数据范围描述的也不友好,是一个学校的校赛题目。思路:先发功(对区间整体加一),使用差分数组维护,然后再倒叙消灭。#include<bits/stdc++.h>using namespace std;#define fi first#define se second#define IO ios::sync_with_std...

2020-04-25 17:23:50 196

原创 逆序对(组合数)+Treepath(思维)

逆序对题目描述求所有长度为n的01串中满足如下条件的二元组个数:设第i位和第j位分别位ai和aj(i<j),则ai=1,aj=0。答案对1e9+7取模。n <= 1e18一般的逆序对都可以用归并排序、树状数组(O(nlogn))等,但显然此题是一个公式题。首先公式里应该有与2^n有关的项,长度为n的串总共有2 ^ n个;n = 1, ans = 0;n = 2, ...

2020-04-25 17:03:36 243

原创 Codeforces Round #636 (Div. 3)

链接A. Candies (等比数列)1 + 2 ^ 1 + 2 ^ 2 + ……+2 ^ n = 2 ^(n+1) -1;#include<bits/stdc++.h>using namespace std;int main(){ int T; cin>>T; while(T--){ int n; cin>>n; for(int i=2...

2020-04-25 01:13:11 129

原创 最小生成树 (kruskal + prim)

kruskal复杂度 O(mlogm) (m为边数,适用于稀疏图)总体思想是把边以 边权从小到大排序 ,再依次加入到集合中;#include<bits/stdc++.h>using namespace std;const int INF = 0x3f3f3f3f;const int N = 1e5+7;struct node{ int a,b,w;}edge[N...

2020-04-24 15:25:07 121

原创 Codeforces Round #634 (Div. 3)

题目入口A. Candies and Two Sisters#include<bits/stdc++.h>using namespace std;int main(){ int T; cin>>T; while(T--){ int n; cin>>n; n--; cout<<n/2<<endl; }...

2020-04-22 23:25:45 100

原创 Xorto (异或和)

Xorto当两个区间异或和相同时,则他们的异或值为零,map记录左边区间异或和出现的次数,枚举右边区间异或和,计数即可;复杂度O(n^2)Code:#include<bits/stdc++.h>using namespace std;int a[1010];int sum[1010];int main(){ int n; cin>>n; for...

2020-04-17 11:20:35 420

原创 树学 +Accumulation Degree (换根DP)

树学很明显地可以使用换根思想简化暴力,先dfs求出以1为根的dpeth和,作为ans的初始值,然后再dfs2换根操作,当孩子和父亲身份互换时,我们可以由父亲的信息推出孩子作为根时的depth和。由此我们便可以避免每次换不同的根去暴力。depth[j] = depth[s] - num[j] + (n - num[j] ) , 其中 j 是s的孩子,num[j] 为以 j 为根的树的大小。...

2020-04-17 00:57:56 278

原创 牛客练习赛61

比赛入口A 打怪模拟一下即可;#include<bits/stdc++.h>using namespace std;int main(){ int T; cin>>T; while(T--){ int h,a,H,A; cin>>h>>a>>H>>A; int t = ceil((doubl...

2020-04-16 10:03:47 124

原创 哈希

模板题一般hash根据映射时对冲突的不同处理方式分为两种方法:开放寻址法 (常用) :Code:#include<iostream>#include<cstring>using namespace std;const int N = 200003; //数据个数的2~3倍后最近的一个素数,尽量避免冲突 const int null = 0x3f3f3f3...

2020-04-15 18:56:11 97

原创 Running Median (中位数)

Running Median问题:给奇数个数( int范围内),依次输出1~ i (1<=i<=n)内的中位数,i 为奇数。思路:经典题目?,据说什么主席树(可持久化线段树),红黑树,平衡树 ……都可以解?,不会。这里用对顶堆解法:开一个大根堆,一个小根堆,依次将数插入两个堆,同时维护大根堆里放的是较小的一半数,小根堆里放的是较大的一半数,当到奇数位置时大根堆堆顶就是中位数。#...

2020-04-14 14:57:06 414

原创 竞码编程-蓝桥杯模拟赛5

H. 试题H:友好搭档 21’ ** 对于100%100%的数据,1≤n≤8000080000里差不多有7837个素数,直接n^2枚举的话,还得判重,那肯定会T;一开始我想的是直接STL暴力判重,但分析了一下复杂度,发现过不去。然后仔细分析枚举的过程,发现了不仅可以优化枚举,还可以不重复计数的方法:我们可以非递减地枚举这三个因子,这样就可以避免重复计数了,还可以优化枚举的过程,复...

2020-04-12 17:34:20 304

原创 城市网络 (树上倍增)

城市网络题目描述: 一颗以1为根的树,每个结点放有珠宝,给出q个询问,每次一对(u , v),v在u到根节点的路径上,一个商人从u到v,初始他有价值为c的珠宝,当结点的珠宝都比商人手中的大时,商人会买入它,问每次行程买入多少次。n , q (2 ≤ n ≤ 10^5 , 1 ≤ q ≤ 10^5)。a_i (1 ≤ a_i ≤ 10^5) 描述每个城市售卖的珠宝的价值。Solution...

2020-04-10 14:19:44 157

原创 LCA (倍增 + tarjan)

祖孙询问倍增求LCA:这里的倍增函数 fa[ i ][ j ] :代表 i 结点往上走2^j 步是哪个结点,很显然边界就是 i 往上走一步是父亲结点,剩下的就可以倍增初始化了。复杂度:预处理:O(nlogn),m个查询:O(mlogn);#include<iostream>#include<cmath>#include<cstring>#inclu...

2020-04-10 13:43:56 177

原创 黑白树 (树形 贪心)

黑白树 题目描述:一棵n个点的有根树,1号点为根,相邻的两个节点之间的距离为1。树上每个节点i对应一个值k[i]。每个点都有一个颜色,初始的时候所有点都是白色的。你需要通过一系列操作使得最终每个点变成黑色。每次操作需要选择一个节点i,i必须是白色的,然后i到根的链上(包括节点i与根)所有与节点i距离小于k[i]的点都会变黑,已经是黑的点保持为黑。问最少使用几次操作能把整棵树变黑。Solu...

2020-04-08 18:35:49 939

原创 树 (dp)

树题目描述:shy有一颗树,树有n个结点。有k种不同颜色的染料给树染色。一个染色方案是合法的,当且仅当对于所有相同颜色的点对(x,y),x到y的路径上的所有点的颜色都要与x和y相同。请统计方案数。输出一个整数表示方案数(mod 1e9+7)。对于30%的数据,n≤10, k≤3;对于100%的数据,n,k≤300。Solution:按以往的经验,一般这种计数的而且还要mod的,要...

2020-04-08 11:28:01 286

原创 二分图(判定+无权最大匹配)

染色法判定二分图之所以能用染色法判定,是因为一个图是二分图当且仅当图中不存在奇数环,而染色法能判定一个图中是否存在奇数环。Code:#include<iostream>#include<cstring>#include<cstdio>using namespace std;const int N = 1e5+7;int h[N],e[N*2],...

2020-04-07 21:38:13 151

原创 Codeforces Round #629 (Div. 3) (A~F)

传送 A. Divisibility Problem (求余)B. K-th Beautiful String (模拟 规律)C. Ternary XOR (构造)D. Carousel (构造)E. Tree Queries(树链)F. Make k Equal(贪心+思维)A. Divisibility Problem#include<iostream>#in...

2020-04-07 19:08:17 166

原创 Shortest Path(树形DFS 思维)

Shortest Path题目大意: 给你一颗带权树,保证有偶数个节点n,把这n个节点分成 n/2 对儿,每对儿两点之间的权值为 len,即为原来两点之间路径的边权和,求这 n/2 对儿的 len和 的最小值。题解: 即为树,那几乎又离不开递归求解,维护答案。此题的关键在于对题目求解问题的转换和分类简化。很显然若要总和最小,那么在分对儿时 两点之间的经过边数不会超过两条 ,所以我们考虑一个...

2020-04-04 19:34:03 155

原创 月月查华华的手机 (字符串匹配 枚举优化 预处理)

月月查华华的手机题意 : q个询问 , 问其是否是主串的子序列 ;题解 : 很显然暴力是O(n^2) 的, 所以需要优化 , 通过观察我们发现 , 子序列中字母的相对位置是不变的,所以可以维护一个数组 next[ i ][ j ], 表示第 i 个位置之后距离其最近的字母 j 所在的位置。由此数组我们便可以提高匹配效率到O(n) ;维护方法 : 先O(n) 记录字符串中每个字符出现的...

2020-04-02 15:57:22 112

原创 Rinne Loves Edges (树形DP)

Rinne Loves Edges题目描述: Rinne 最近了解了如何快速维护可支持插入边删除边的图,并且高效的回答一下奇妙的询问。她现在拿到了一个 n 个节点 m 条边的无向连通图,每条边有一个边权 wi 现在她想玩一个游戏:选取一个 “重要点” S,然后选择性删除一些边,使得原图中所有除 S 之外度为 1 的点都不能到达 S。定义删除一条边的代价为这条边的边权,现在 Rinne 想知...

2020-04-01 21:50:10 207

原创 天才的记忆 (ST表)

模板题 ST表 使用了 动态规划 和 倍增 的思想对区间预处理,可以O(1) 解决区间最值查询问题,又称 RMQ,缺点是不支持像线段树那样的点的修改。f[ i ][ j ] : 代表以 i 为起点,长度为 2^j 的区间的最值转移方程 : f[ i ][ j ] = max( f[ i ][ j - 1] , f[ i + (1<< (j-1) ) ] [j - 1]) ;#...

2020-04-01 19:30:07 205

原创 UCF Local Programming Contest 2016 (前9题)

题目链接A. Majestic 10 (签到)B. Phoneme Palindromes (签到)C. Don’t Break the Ice (阅读理解,签到)D. Wildest Dreams (巧妙模拟)E. Loopy Word Search (暴力模拟)F. Dot the i’s and Cross the T’s (直线问题)G. Jedi and the G...

2020-04-01 17:54:12 314

空空如也

空空如也

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

TA关注的人

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