自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 E - Gardener and Tree

自认为这是这道题最简单的代码了。实在不理解为什么一个拓扑排序有的题解都要写上百行,还要DFS好几遍(逃)#include<bits/stdc++.h>#define N 800010using namespace std;int t,n,m,vis[N],in[N],ans;int cnt,h[N];queue<int>q;struct eee{ int v,next;}e[N];void init(){ for(int i=1;i<=n;i+

2021-11-19 19:56:37 189

原创 CF118E Bertown roads

题目描述:贝尔顿小镇有nnn个交汇点和mmm条双向道路,一个人可以凭借现有的通道从一个点到达另一个点。随着城镇的车辆越来越多,交通堵塞逐渐成为大问题,为了解决这个问题,政府决定把所有的道路改成单向的,以此缓和交通问题。你的任务则是确定是否存在这样一种方案,使每条道路改为单向行驶,但仍满足能够从任意一个点到达另一任意点的要求,如果存在,则找出一种满足的方案桥:给定一张无向连通图 GGG .若对于 x∈Vx\in Vx∈V,从图中删去边 eee之后,GGG分裂成两个不相连的子图,则 eee 称 为 G

2021-11-19 19:55:33 224

原创 P3848 [TJOI2007]跳棋

题目大意给你一个 n×nn\times nn×n的跳棋棋盘,和一个棋子位置。格子为 000 的是可以到达的,格子为111的则不能,而棋子只能上下左右 444个方向跳。 能到达的两个格子间不能相邻,即起点和终点最少要隔一格。显然,跳过的格子不能再跳。求最远跳跃总距离。思路n≤100n \le 100n≤100,可以爆搜。用ansansans记录最大答案;因为跳过的不能再到达,所以用vvv数组做标记;无法确定每步跳多少格,可以用数组规定555个选择(原地不动+++上下左右444个方向),用forforfo

2021-11-07 22:33:53 229

原创 poj1088 滑雪

dfsdfsdfs的时候记录最大长度,若曾到达过则直接返回该点的最大长度。#include<bits/stdc++.h>using namespace std;int dt[110][110],n,m,sum,hdt[110][110];int dx[5]={1,-1,0,0},dy[5]={0,0,1,-1};int dfs(int x,int y){ if(hdt[x][y])return hdt[x][y]; hdt[x][y]=1; for(int i

2021-11-07 22:30:13 47

原创 AcWing 3825. 逃离大森林

思路走最短路径,绕路的话对面会在终点等你,肯定没有最短路优。关于答案,可以从终点开始广搜,记录下距离,答案就是到终点的距离小于等于你的最短路的饲养员数量。代码#include<bits/stdc++.h>using namespace std;int n,m,ans,endx,endy,f;int mp[1005][1005],w[1005][1005];char c;queue<int>qx;queue<int>qy;int dx[4]={1,-1,

2021-10-29 20:07:32 54

原创 CF1592E Bored Bakry

题意给定一个nnn 个数的数组,要求找一个连续子区间,满足该子区间的区间&\&&和大于区间异或和。求该子区间的最大长度。思路出现了按位与和按位异或,那么我们首先从二进制位考虑。区间 and>xor\rm and>xorand>xor,则他们的最高位二进制一定相同且长度为偶数:因为长度为奇数时对于任意位 ddd,若子区间第 ddd 位全为 111则异或和也为 111,不优;而若至少有一个位置第 ddd位为000则该位按位与为000,不优。那么,一个区间能满足

2021-10-29 20:06:20 55

原创 CCPC2021网络赛重赛 5、Jumping Monkey

CCPC2021网络赛重赛 5、Jumping Monkey题意:nnn个点的树,每个点有一个不一样的点权,求从每个点出发能到达的点数(需满足终点为起点到终点路径上的最大点权才能到达)T<1e4,n<1e5,∑n<8e5。T < 1e4, n < 1e5, \sum{n} < 8e5。T<1e4,n<1e5,∑n<8e5。思路:可以考虑点权最大的那个结点xxx,显然其他所有点都能到达它,且到达它之后不能越过它到其他的点去。所以节点xxx一

2021-10-12 18:50:18 224

原创 2021ICPC网络赛 第一场

读题是个大问题,全是水题全读不明白555。。。贴一道好不容易读懂了的自我安慰一下。D.Edge of Taixuan线段树 区间修改所有值减去线段树存的每个点的最小值#include<cstdio>#include<cmath>#include<algorithm>#include<cstring>#include<iostream>#define ll long long#define inf 0x3f3f3f3fusin

2021-09-28 20:35:20 148

原创 洛谷P3806 【模板】点分治1

(本题)淀粉汁本质上就是树上应用分治思想。比如这个路径长度,可以分为过根的和存在于子树内的两种。过根的直接算,子树内的可以递归处理,为了使递归效率更高,每次取子树的重心为根。详细思路见代码注释:#include<bits/stdc++.h>#define maxn 100086#define inf 0x3f3f3f3fusing namespace std;struct onanii{ int v,w,next;}e[maxn*2];int n,m,k,h[maxn]

2021-09-28 20:20:12 75

原创 洛谷P2709 小B的询问

题目描述小B 有一个长为 nnn 的整数序列 aa,值域为 [1,k][1,k][1,k]。他一共有 mmm 个询问,每个询问给定一个区间[l,r][l,r][l,r],求:∑i=1kci2\sum\limits_{i=1}^k c_i^2i=1∑k​ci2​。其中cic_ici​表示数字iii在$ [l,r]$中的出现次数。小B请你帮助他回答询问。输入格式第一行三个整数$ n,m,k$。第二行 nnn 个整数,表示 小B 的序列。接下来的mmm行,每行两个整数$ l,r$。输出格式输出mmm

2021-09-15 21:13:51 97

原创 CodeForces Global Round 16 E. Buds Re-hanging

题意:给定一颗树,定义一种结构为芽节点(不是根节点且有子节点而且子节点都是叶子节点),我们可以把芽与芽的父节点断开,然后重新拼接到任意节点后使得叶子节点总数最少。思路:因为芽节点可以摘下来,那么我们把所有芽节点先全部拆下来后发现这棵树除了根节点,芽节点就是叶子节点,并且他们无法相互转换,所以我们把树拆成一个个不能分解的芽节点后,答案初始为一个根节点,然后每个芽节点的贡献为其叶子节点数−1-1−1,统计所有芽节点的贡献就行了。#include<bits/stdc++.h>#define

2021-09-14 18:02:17 61

原创 The 15th Chinese Northeast Collegiate Programming Contest - K.City

题意给出nnn个点, mmm条无向边, qqq个询问.每条边有权值www, 每次询问删除所有权值小于ppp的边后, 图中剩余的所有节点中, 能相互到达的节点对数.思路考虑用并查集。有两个问题:1.1.1.并查集只能加边,不能减边。2.2.2.数据的范围很大,如果我们每做一次判断都要进行一次遍历的话时间复杂度肯定会超时。对于问题1:题目给的是破坏的多少条边,反过来经过排序之后逆向思维可以理解成查询的值变小了又加入了多少条边,这样我们就可以用并查集来进行处理了。对于问题2:我们可以离散化+++离

2021-09-12 11:34:36 116

原创 CF1567E Non-Decreasing Dilemma

题目大意给出nnn个数,有mmm个操作111 xxx www :将xxx位置上的数改为www222 lll rrr :查询区间[l,r][l,r][l,r]内有多少个连续的不下降区间(单个数也算)思路我们需要维护的是区间内符合条件的个数,初步考虑的话似乎是有区间相加的性质的,如果考虑两个区间相互独立,不会对各自的递增性质产生影响。这时我们想到线段树的pushuppushuppushup操作。在两个区间合并成一个大区间的,有可能中间的部分会产生连续的递增区间,这个时候合并的时候需要维护一个中

2021-09-07 20:40:49 120

原创 The 15th Chinese Northeast Collegiate Programming Contest. A Matrix

#### 题意:用$[1,2,...,n^2]$填$n\times n$的矩阵,每个数字只能用一次,记:$ a_i $为第$ i $行的最小值;$S=a_1,a_2,...,a_n\cap{1,2,...,n}$;求$\sum_1^n$$|S|$#### 思路:考虑每个数的贡献,比如1可以作为最小数贡献的方案数就是$n\times (\sum_1^nC_{n^2-1}^{n-1})$;$i(i\le n)$可以作为最小的数贡献的方案数是$n\times (\sum_1^nC_{n^2

2021-09-05 20:33:25 347

原创 CF1528C Trees of Tranquillity

题目大意给你两棵n个节点的树,要你找一个最大的点集S,使得 S中任意两点都满足:在第一棵树上,两个点其中一个为另一个的祖先; 在第二棵树上,两个点互不为祖先关系。思路显然,我们选作为答案的点在第一棵树上的根到某一个叶子的链上。我们可以处理出第二棵树的欧拉序列(任意两个节点对应的进入时间与离开时间的区间要么完全包含要么完全不相交),我们在考虑加入一个点的时候,有以下两种情况: 如果之前的链上没有点的进入时间与离开时间的区间覆盖当前节点的进入时间与离开时间的区间,直接贪心加入。 ...

2021-09-01 23:20:48 85

原创 HDU7101 Time-division Multiplexing

按题意模拟即可,注意不要用string,会超时。#include <iostream>#include <string>#include <vector>#include <cstring>#define int long longusing namespace std;const int N = 300;char s[N][20],ch;int cnt[N], sz[N],a[5000086];signed main (){

2021-08-31 01:25:32 103

空空如也

空空如也

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

TA关注的人

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