自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2020ccpc秦皇岛E

每个人有两个数字a和b,选择其中一个再组成一个大小为n的序列,问其中最大值*p%最多能大于多少个人可以尺取,也可优先队列这个是学姐的代码,优先队列写的。#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<cmath>#include<queue>using namespace std;#define inf 0x

2020-10-22 20:10:28 332

原创 Multiples of Length CodeForces - 1397C(思维)

题意:给出一个序列,每次操作可以使某一段的数变化这一段的长度的倍数,可以证明三步可以使这个序列变成0,问这三步操作分别是什么思路:先想一下如何使这一段的变化是一个数的倍数,首先我们可以先让所有数变成-(n-1)a[i],即先把所有数都减去na[i],这样n-1个数都是(n-1)的倍数,最后变化最后一个数。#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#in

2020-09-03 16:47:19 187

原创 2020牛客暑期多校训练营(第九场)The Flee Plan of Groundhog

题目题意:给一棵树,两点之间距离为1,G从1出发到n,速度为1,t秒后O从n出发,速度为2,问最迟何时遇到。先以n为根节点求出每个点的深度和父亲节点,开始追逐时,两点之间的距离每秒缩短1,所以如果能追上,要使用t2秒,如果G逃到叶子结点,不动是最好的选择,长度是最深。#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int N=100005;int fi

2020-08-09 13:06:27 198

原创 2020牛客暑期多校训练营(第九场)Groundhog Looking Dowdy(尺取)

题目题意:给出n行数据,从其中选择m行,每行选一个数,问最大值与最小值之差是多少。先将所有数排序,记录每个数在第几行,然后尺取,因为区间长度m固定,只需要更新答案#include<iostream>#include<cstdio>#include<algorithm>#include<map>#define ll long longusing namespace std;const int N=2000005;const ll inf=0x

2020-08-08 22:38:57 153

原创 2020牛客暑期多校训练营(第八场)Kabaleo Lite(思维)

题目题意:给出n个物品的利润a和数量b,每个人从第一个物品开始连续的选择物品,问最多可供多少人选择,在这种情况下的利润是多少。由题意,最多可供a[1]个人选择,因为是选择连续的物品,我们先求出前缀和,先用一个栈记录一下比只选第一个的利润大的点,保持栈中的单调递增,然后从栈顶开始计算,每次更新ans后要减去相应的物品,因为到这个点一定会用到前面的点。#include<iostream>#include<cstdio>#include<cstring>#inclu

2020-08-08 21:32:45 193

原创 2020牛客暑期多校训练营(第八场)Interesting Computer Game(并查集+离散化 或者 网络流)

题目题意:给出n个二元组,每组只能选一个数,问最多选几个数。可以先进行并查集将这些数分成很多树或者圈,相当于一条边连接两个点,我们只能选择其中一点,树可以选n-1个点,圈可以选n个点。数大n小,可以离散化。#include<iostream>#include<cstdio>#include<cstring>#include<unordered_map>using namespace std;typedef long long ll;cons

2020-08-07 01:00:33 122

原创 2020牛客暑期多校训练营(第七场)Dividing(整除分块)

题目由题意包括的二元组只有(1+k+…+k,k)和(k的倍数,k)因为k不同,n固定,然后套用整除分块的模板就可以了。#include<iostream>#include<cstdio>#include<cstring>using namespace std;typedef long long ll;const ll mod=1e9+7; int main(){ ll n,k; scanf("%lld%lld",&n,&k); ll

2020-08-07 00:14:05 126

原创 2020杭电多校 Divisibility(数学)

题目题意:给出一个命题:在b进制下,都有一个数的数位和可以整除x,则这个数可以整除x。给出b和x,问在这种情况下命题是否成立。#include<iostream>#include<cstdio>#include<string>#include<ctime>#include<cmath>#include<cstring>#include<algorithm>#include<stack>#in

2020-08-07 00:06:54 167

原创 2020杭电多校A Very Easy Graph Problem(图论)

题目题意:给定N和K,满足二元组(n,k) 1≤n≤N,1≤k≤K.(1,k)是特殊二元组,如果(n,k)是特殊二元组,①(n + k, k)也是特殊二元组, ②(nk, k) 也是特殊二元组。问在给定的N和K中有多少个特殊二元组。由题意,所有特殊二元组都是从(1,k)出发的。如果先进行第二步,则后面所有的二元组是(k,k), (k^2,k) ,(k+k,k)…可见后面的数都是(k的倍数,k)包括了所有k的倍数。如果先进行第一步,这里因为如果再进行第二步会跟第一个思路重合,所以只操作第一步(1+k,

2020-08-06 19:26:22 200

原创 Codeforces1305D Kuroni and the Celebration(交互+拓扑排序+lca)

链接题意:给一棵树n个点,你可以询问最多n/2次:x和y的lca是什么。问这颗树的根节点是什么?思路1:先给询问的点排个序,询问一定从入度最少,即叶节点开始询问,进行拓扑排序。先用以1为根节点建树,因为之后求lca啥的都需要一棵树,x和y到lca上面的点一定不是根节点,删掉,直到只剩下一个点。思路2:依旧是拓扑排序,但我们发现,排完序后当x和y的lca是x或y的时候,找到根节点。#incl...

2020-03-04 16:36:54 210

原创 牛客寒假训练题目复习

一、1.maki和tree链接题目描述有一天,maki拿到了一颗树。所谓树,即没有自环、重边和回路的无向连通图。这个树有 个顶点, 条边。每个顶点被染成了白色或者黑色。maki想知道,取两个不同的点,它们的简单路径上有且仅有一个黑色点的取法有多少?注:①树上两点简单路径指连接两点的最短路。② <p,q>和<q,p> 的取法视为同一种。第一行一个正整...

2020-02-29 14:46:08 268

原创 AcWing 141. 周期(kmp求循环节)

一个字符串的前缀是从第一个字符开始的连续若干个字符,例如”abaab”共有5个前缀,分别是a, ab, aba, abaa, abaab。我们希望知道一个N位字符串S的前缀是否具有循环节。换言之,对于每一个从头开始的长度为 i (i>1)的前缀,是否由重复出现的子串A组成,即 AAA…A (A重复出现K次,K>1)。如果存在,请找出最短的循环节对应的K值(也就是这个前缀串的所有可...

2019-10-30 21:39:38 159

原创 第K短路(A*)

给定一张N个点(编号1,2…N),M条边的有向图,求从起点S到终点T的第K短路的长度,路径允许重复经过点或边。注意: 每条最短路中至少要包含一条边。输入格式第一行包含两个整数N和M。接下来M行,每行包含三个整数A,B和L,表示点A与点B之间存在有向边,且边长为L。最后一行包含三个整数S,T和K,分别表示起点S,终点T和第K短路。输出格式输出占一行,包含一个整数,表示第K短路的长度,如...

2019-10-27 22:46:44 475

原创 acwing164. 可达性统计(拓扑排序+bitset)

给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量。输入格式第一行两个整数N,M,接下来M行每行两个整数x,y,表示从x到y的一条有向边。输出格式输出共N行,表示每个点能够到达的点的数量。数据范围1≤N,M≤30000思路:先排好序,我们知道排完序越靠后的数是由前面的数转移过来的,这里用到bitset,可以计算1的个数。注意++tot#include<...

2019-10-21 18:07:52 235

原创 K-th Number HDU - 6231(二分+尺取)

题意:给你数列A,对于A的每一个区间,求第K大,插入到数列B中,最后再求数列B的第M大!思路:二分答案,尺取。如果到i找到了k个大于等于x的数,再向i的后面找,即在区间[1,i+1],[1,i+2],[1,i+3]…[i,n],所以这些区间都可以找到第K大的数大于等于x,这些数都要入数列B,此时尺取的r就不用向后找了,直接相加就可以,l要向前挪,要是挪的数小于x,继续挪,不然num–,因为此时j...

2019-10-09 19:18:44 191

原创 P3178 [HAOI2015]树上操作(树链剖分)

有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个操作,分为三种:操作 1 :把某个节点 x 的点权增加 a 。操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。操作 3 :询问某个节点 x 到根的路径中所有点的点权和。#include<iostream>#include<cstdio>#include<cstring&g...

2019-10-07 13:06:13 193

原创 Two Buttons CodeForces - 520B(思维)

题意:给出n和m,可以对进行两种操作,对n减1和对n乘2,问最少进行多少种操作可以让n变到m。思路:嗯…有点像bfs,但数据有点大。先分类思考一下,当n大于m时,只能进行减操作n-m次。n小于m时呢,我们可以倒过来,看m如何变成n,进行加和除的操作。只有m是偶数时才能除,所以只需要判断一下几步可以小于等于n就可以了。#include<iostream>#include<cs...

2019-10-06 21:36:42 208

原创 Relay Race CodeForces - 213C(多维dp)

Relay Race题意:一个人从左上出发,一个人从右下走,规则与传纸条那道题差不多,就是路可以重复,但重复只能加一次分,问最多的分数。思路:乍一看就按传纸条那个做呗,但发现n有点大,四维会爆,就三维了。dp[i][j][k]表示两人都走了i步后,第一个人走到第j行,第二个人走到第k行的最大值。因为每个人一共走2*n-1步,第一个人的列是i-j+1,第二个人的列是i-k+1.#inclu...

2019-10-06 21:10:30 245

原创 Game CodeForces - 213A(BFS+贪心)

题意:有三台电脑,n个游戏,给出每个游戏在哪台电脑上完,并且给出哪些游戏必须在另外一些游戏之前玩,玩一个游戏要花1小时,换电脑也要花1小时,而且换电脑必须按1-2-3-1的顺序换,问如何才能花最少的时间玩完所有的游戏。链接思路:乍一看好像拓扑排序,但是又加了一个条件,每个游戏只能在指定的电脑玩,那就把这些电脑枚举一遍哪一个先开始选最少的就好了。#include<iostream>...

2019-10-06 15:43:39 143

原创 树链剖分【模板】

P2590 [ZJOI2008]树的统计题目描述一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作:I. CHANGE u t : 把结点u的权值改为tII. QMAX u v: 询问从点u到点v的路径上的节点的最大权值III. QSUM u v: 询问从点u到点v的路径上的节点的权值和注意:从点u到点v的路径上的节点包括u和...

2019-10-06 14:46:41 126

原创 点分治模板+例题

1.找到树的重心,更新以重心为根节点的子树大小。2.分治,从重心开始,dfs找每个点到根节点的距离,看是否存在题意路径。3.把根节点删去,重复1 2 步骤例题:1.P3806 【模板】点分治1链接给定一棵有n个点的树询问树上距离为k的点对是否存在。#include<iostream>#include<cstdio>#include<queue>...

2019-10-05 16:19:00 226

原创 网络最大流【模板】

题意链接讲解链接求最大流问题可以转换为不断求解增广路的问题,并且,显然当图中不存在增广路(没有路从s到t)时就达到了最大流。EK算法:1.正向反向建图2.bfs判断有无增广路,有则更新。#include<iostream>#include<cstdio>#include<cstring>#include<queue>using n...

2019-10-04 20:55:46 132

原创 状压dp总结+例题

f[i][st]表示前i行,第i行的放置状态为st的方案数。例题:1.Mondriaan’s Dream POJ - 2411题意:给出两个数 n、m,现在有 12、21 两种类型的方块,要求将 n*m 的区域填满,问一共有多少种方案思路:木块有两种放置方法,横放或竖放,我们按行dp,横为11,竖为01(竖)。1.确定第一行的放置方式。2.从第二行开始dp,两行一起check。3.确...

2019-10-04 11:37:44 442

原创 K-th Number POJ - 2104(主席树)

You are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would be able to return quic...

2019-10-04 11:36:39 197 1

原创 You Are Given a Decimal String... CodeForces - 1202B(最短路)

这个题比较巧妙,竟然是最短路,可怕…链接题意:给你一串字符串,按照x-y counter的方式组成,问对于每一个0到9的x-y counter,需要多少步组成,不能组成输出-1.For example, a 4-2-counter can act as follows:it prints 0, and adds 4 to its value, so the current value is...

2019-10-04 10:42:31 162

原创 The Phone Number CodeForces - 1017C(思维)

链接题意:用1—n构造一个序列,使它的最长上升子序列与最长下降子序列之和最小思路:将n分成m块,满足每块中数字递增,块与块递减,当块的长度为sqrt(n)时结果最优。#include<iostream>#include<cstdio>#include<cmath>#include<cstring>using namespace std;...

2019-10-03 19:22:52 149

原创 Elections CodeForces - 1019A(枚举/二分+贪心)

链接题意:有n个选民,m个备选人。给出n个选民要选的人和多少钱可以让他们改变心意,求让备选人1获胜需要花多少钱。思路:先按照钱的从大到小进行排序,可以对1最后得到的选票进行枚举或二分。就是把这些选票看成两堆,1的和不是1的,确定好1的之后,从大到小往各自的备选人里面加。#include<iostream>#include<cstdio>#include<al...

2019-10-03 18:13:14 172

原创 Bear and Prime 100 CodeForces - 679A(交互题)

第一次接触交互题链接交互题就是人与机交互一下,原本机器的输入改成我的输出。一般都有多次输入,这里要用到fflush(stdout) 在每次printf后清理一下输出缓存区,或者直接用cout<<" "<<endl; 貌似endl有自动清除缓存区的功能。本题样例ExamplesInputyesnoyesOutput2805composite#i...

2019-10-03 18:03:17 151

原创 最近公共祖先(LCA)总结+例题

有三种算法:1.tarjan:dfs+并查集 离线操作2.转化为RMQ问题,这里用到dfs序。3.树上倍增f[i][j]表示i点开始向上2^j层的点f[i][0]=fa[i]f[i][1]=fa[fa[i]]f[i][2]=f[f[i][1]][1]例题1.P3379 【模板】最近公共祖先(LCA)树上倍增法从根节点开始,预处理出走2^st的点。求lca时,先把x处理到与y...

2019-09-24 21:28:58 346

原创 Codeforces 437E The Child and Polygon(区间DP+计算几何)

要明白叉乘向量的性质。计算连续两个点的叉乘,包括第一个和最后一个,求他们的和,大于0为顺时针,小于0为逆时针。这里用到记忆化搜索,先把这些点都顺时针表示,看i与j点构成的三角形方式,区间dp。//#include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<cstring&g...

2019-09-24 11:37:09 157

原创 The Child and Zoo CodeForces - 438B(最小生成树+贪心)

题意:给出n个点的点权,给出m条边,问这个图中的每条路经过的点权最小的一个的所有路的平均值(两个点之间最多有一条边)思路:贪心。首先每条边只有它更小的点权有用,把它设为这条边的边权。边权从大到小排序,边权越小的边用的次数越多,实际上是每个点合并到最小生成树的过程,这样这个树的所有的边是(n*(n-1))/2条。#include<iostream>#include<cstdi...

2019-09-24 10:47:17 170

原创 ST表总结+例题

解决RMQ(查询区间最大/最小值问题)复杂度:O(nlogn)f[i][st]表示将作为区间左界,长度为2^st的区间的最大值。st的最大值为 log2(n)查询上会比线段树快例题:1.P3865 【模板】ST表#include<iostream>#include<cstdio>#include<cstring>#include<alg...

2019-09-21 12:31:03 575

原创 最小表示法总结+例题

给一个字符串,如果这个字符串是环状的,它的字典序最小的表示方法是什么。O(n)算法与kmp相似,都是相同的不再比较。i和j为两个不同的起点引领的长度为k的字符串int n=strlen(s+1);for(int i=1;i<=n;i++){ s[n+i]=s[i];}int i=1,j=2,k;while(i<=n&&j<=n){...

2019-09-20 21:31:25 608

原创 Prefix Sum Primes CodeForces - 1150C(思维)

We’re giving away nice huge bags containing number tiles! A bag we want to present to you contains nn tiles. Each of them has a single number written on it — either 11 or 22.However, there is one con...

2019-09-20 18:03:56 182

原创 Best Reward HDU - 3613(扩展KMP)

要把原串反转一下进行比较。扩展kmp求t与s的最长前缀的长度,用extend[i]记录。背。#include <iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>using namespace std;const int...

2019-09-17 17:07:50 89

原创 2019上海网络赛Digit sum(数位dp)

题意:给出n和k,求1到n在k进制下的每位数的和的总和。#include<bits/stdc++.h>using namespace std;typedef long long LL;LL sum1(int pre,int n,int k){ LL ret=0; LL pw=1; for(int i=0;i<n;i++) pw*=k; ...

2019-09-15 20:07:22 265

原创 2019沈阳网络赛Honk's pool(二分)

题意:有n个数,进行k次操作,每次找到最大的减1,然后最小的加1,求k次后最大值与最小值之差。#include<bits/stdc++.h>#define ll long longusing namespace std;const int maxn=5e5+10;int n,k;int num[maxn];bool check1(int x){ ll ret=0;...

2019-09-15 19:51:41 128

原创 2019沈阳网络赛Guanguan's Happy water(逆元)

根据f求出概率再*(n-k)*num就行,但求出的数可能是个小数,所以求概率时要用到逆元。#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll mod = 1e9+7;map<long long,int> mp;map<long long,int> mp2;...

2019-09-15 18:58:08 345

原创 2019沈阳网络赛Dawn-K's water(背包)

题意:有n件物品,给出每件物品的价格跟重量,要用最少的钱a买不少于m重量的物品。输出a和确切的重量b。1≤n≤1e3,1≤m≤1e4,1≤p≤1e9,1≤c≤1e4完全背包,根据题意确定上界。#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll inf = 0x3f3f3f3f3f...

2019-09-15 18:46:07 158

原创 Can you answer these queries III SPOJ - GSS3(查询区间最大连续子段和)

You are given a sequence A of N (N <= 50000) integers between -10000 and 10000. On this sequence you have to apply M (M <= 50000) operations:modify the i-th element in the sequence or for given...

2019-09-13 14:27:53 174

空空如也

空空如也

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

TA关注的人

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