自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 汽车加油行驶问题(洛谷P4009 分层图费用流)

分层图+费用流

2022-07-14 19:45:06 204

原创 家园 / 星际转移问题(洛谷P2754 分层图+最大流)

分层图+最大流

2022-07-14 19:44:11 241

原创 第十三届蓝桥杯大赛软件赛决赛_CB个人题解

第十三届蓝桥杯大赛软件赛决赛_CB

2022-06-29 10:38:23 270

原创 P3302 [SDOI2013]森林(树上主席树+启发式合并)

小 Z 有一片森林,含有 N 个节点,每个节点上都有一个非负整数作为权值。初始的时候,森林中有 M 条边。小Z希望执行 T 个操作,操作有两类:Q x y k 查询点 x 到点 y 路径上所有的权值中,第 k 小的权值是多少。此操作保证点 x 和点 y 连通,同时这两个节点的路径上至少有 k 个点。L x y 在点 x 和点 y 之间连接一条边。保证完成此操作后,仍然是一片森林。为了体现程序的在线性,我们把输入数据进行了加密。设 lastans 为程序上一次输出的结果,初始的时候 lastans 为

2021-11-29 22:56:24 272 1

原创 粟粟的书架(主席树+前缀和)

题目链接粟粟的书架题目大意: 给你一个n×mn \times mn×m的矩阵, qqq个询问, 每次给你一个左上角在(x1,y1)(x1,y1)(x1,y1),右下角在(x2,y2)(x2,y2)(x2,y2)的子矩阵, 和一个权值hhh, 要求在子矩阵中选出最少的数,使得这些数的和不小于hhh.思路:注意到题目数据有50%50 \%50%是{n≤200,n≤200,q≤2×105}\{n \leq 200, n \leq 200, q \leq 2 \times 10^5\}{n≤200,n≤2

2021-11-24 23:40:56 261 1

原创 The Continental Cowngress G(2-sat)

题目链接: The Continental Cowngress G简述 :给出 nnn 个法案, mmm 头牛的意见, 每头牛会表决两次。每次表决格式为 i Y 表示“支持 iii 号法案”或 i N 表示“反对 iii 号法案”。最终,每头牛至少要有一个表决被满足。不可能成立的话输出 IMPOSSIBLE,否则输出方案。由于对 Farmer John 的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会。议会以“每头牛都可以获得自己想要的”为原则,建立了下面的投票系统: MMM只到场的奶

2021-11-19 15:58:40 320 2

原创 P2572 [SCOI2010]序列操作(线段树毒瘤题)

题目传送门:序列操作给定长度为nnn的010101序列, 有五种操作将下标[l,r][l,r][l,r]内的数全改为000将下标[l,r][l,r][l,r]内的数全改为111将下标[l,r][l,r][l,r]内的数000改为111, 111 改为000求∑i=lra[i]\displaystyle\sum_{i=l}^{r}a[i]i=l∑r​a[i]求下标[l,r][l,r][l,r]内最多有多少个连续的111太毒瘤了, 写得头皮发麻;主要是细节太多了. 见代码关于为何pushd

2021-08-23 20:59:00 195

原创 动态开点与线段树合并

在一些计数问题中, 线段树用于维护值域(一段权值范围), 这样的线段树也叫权值线段树. 为了降低空间复杂度, 我们可以不建出整棵线段树的结构, 而是在最初只建立一个根节点, 代表整个区间, 当需要访问线段树的某颗子树(某个字区间)时, 再建立代表这个子区间的节点. 采用这种方法维护的线段树称为动态开点的线段树.动态开点的线段树抛弃了完全二叉树父子节点的2倍编号规则, 改为使用变量记录左右子节点的编号(相当于指针).如果有若干棵线段树, 他们都维护相同的值域[1,n][1,n][1,n], 那么它们对各个字

2021-08-23 15:37:56 126 2

原创 线段树之状态压缩

线段树博大精深对于线段树上的状态压缩, 个人的理解就是把修改的信息转化成二进制存储, 再配上位运算, 来处理问题的一种方法色板游戏这一题应该是状态压缩的板子题, 将一段区间内的每个格子涂成某种颜色, 查询某段区间内颜色的种数.方法1: 将颜色ccc转化为2c2^{c}2c来存储, 这样二进制下的每一位1代表1种颜色, 修改的时候直接把这段区间的datadatadata修改为2c2^{c}2c, 延迟标记设为ccc, 然后向下传递, 查询时只需要将答案转化为二进制, 然后查询二进制下1的个数即可方法

2021-08-11 10:54:12 192

原创 树上差分(求法与练习)

差分: 与前缀和背道而驰的算法, 给你一个数列, 要求在数组下标在[l,r][l,r][l,r]范围内的数同时+x+x+x, 那么只需在差分数组a[l]+x,a[r+1]−xa[l]+x,a[r + 1]-xa[l]+x,a[r+1]−x, 最后∑i=1ja[i]\displaystyle\sum_{i=1}^{j}a[i]i=1∑j​a[i]就是原数组arr[j]arr[j]arr[j]变化之后的值.树上差分和最近公共祖先是两兄弟, 缺一不可树上差分分为两种, 一种为边差分, 一种为点差分.边差分:

2021-08-06 18:53:24 738 1

原创 树的直径(求法以及练习)

何为树的直径,简单来说其实就是在一棵树上, 距离最远的两个点的距离.如何求直径bfs(dfs)bfs(dfs)bfs(dfs):第一次bfs(dfs)bfs(dfs)bfs(dfs) :从任意节点出发, 求出到该节点最远的节点ppp, 然后进行第二次bfs(dfs)bfs(dfs)bfs(dfs), 求出到ppp最远的节点qqq, ppp到qqq的路径长度即为树的直径.树形dpdpdp: 设dp[x]dp[x]dp[x]表示从节点xxx出发走向以xxx为根的子树,能够到达的最远节点的距离, 设集合

2021-08-05 20:11:43 260

原创 差分约束系统

负权最短路链式前向星://建图方式int tot;int head[MAX_N];struct node { int to, cost, next;} G[MAX_N * 2];inline void add(int u, int v, int w) { ++ tot; G[tot].to = v; G[tot].cost = w; G[tot].next = head[u]; head[u] = tot;}//初始化方式memset(head, -

2021-07-21 10:35:30 103

原创 CF616E Sum of Remainders(数论)

题目链接 : Sum of Remainders题意 :输入 nnn 和 mmm, 计算 ∑i=1mnmodi\sum_{i = 1} ^ {m} n _{mod} i∑i=1m​nmod​i思路 :nmodin_{mod}inmod​i = n−[ni]∗in -[ \frac{n}{i}] * in−[in​]∗i, ([ni\frac{n}{i}in​] 代表 ni\frac{n}{i}in​ 向下取整)所以 ans=m∗n−∑i=1m[ni]∗ians=m * n - \sum_{i

2021-07-13 11:15:09 153

原创 L - Fantasy of a Summation(数论+找规律)

题目传送门 :Fantasy of a Summation你的任务是计算图中表达式的结果.算数列的每个数对答案的贡献, 后来发现贡献就是a[i] * k, k是a[i]在这个表达式中出现的次数. 答案就是对贡献求和.然后就是打表, 发现每个数出现的次数均为 k * n ^ (k - 1).ans = ∑ a[i] * k * n ^ (k - 1) % mod......

2021-07-09 10:54:52 104

原创 POJ3417-Network(树上差分 + LCA)

题目传送门:Network

2021-07-08 22:42:12 146

原创 G.Most Common Suffix(字符串哈希)

题目传送门:Most Common Suffix题目大意: 给出n个字符串,每次询问一个x, 求这n个字符串长度为x的公共后缀最多出现的次数;思路: 倒着求哈希, 然后o(1)查询;小tip: usigned long long 不用担心溢出, 因为它会自动取模.代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef pai

2021-07-06 22:56:49 113 2

原创 武汉工程大学第三届ACM程序设计选拔赛B题——密室逃脱(最短路)

链接:武汉工程大学第三届ACM程序设计选拔赛B题来源:牛客网题面:小明没有打过校赛但是他被拉去出题了。他非常想打校赛,但是他现在被困到了迷宫出题,现在请你帮小明逃离出题现场。该迷宫由n * m个格子组成的迷宫,有些格子是陷阱,用’#‘表示,小明进入陷阱就会死亡,’.'表示没有陷阱。小明所在的位置用’S’表示,目的地用’T’表示。小明只能向上下左右相邻的格子移动,每移动一次花费1秒。有q个双向传送阵,每个传送阵各有两个口,都在迷宫的格子里,当走到或被传送到一个有传送阵的格子时,小明可以选择是否开.

2021-05-10 09:40:09 333 4

原创 Dreamoon Likes Permutations

题目:Dreamoon Likes Permutations题目链接:喵喵喵题意:如果m个整数的序列恰好包含一次从1到m的所有整数,则称为置换。 数m称为排列的长度。Dreamoon有两个长度分别为l1和l2的置换p1和p2。现在,Dreoonoon将这两个置换连接成长度为l1 + l2的另一个序列a。 a的前l1个元素是排列p1,a的下一个l2个元素是排列p2。给定序列a,您需要找到两个排列p1和p2。 如果有几种方法可以还原它们,则应找到所有它们。 (请注意,也有可能没有办法。)tips:特

2021-05-03 17:46:34 87

原创 洛谷 P2872 Building Roads S (最小生成树)

1948: 连接格点Time Limit: 10 Sec Memory Limit: 65535 MB 64bit IO Format: %lldSubmitted: 109 Accepted: 30[Submit][Status][Web Board]Description  有一个M行N列的点阵(行编号为1..M,列编号为1..N),相邻两点可以相连。一条纵向的连线花费一个单位,一条横向的连线花费两个单位。某些点之间已经有连线了,试问至少还需要花费多少个单位才能使所有的点全部连通。

2021-03-14 14:19:10 204

原创 (图论)洛谷P4779 单源最短路程

题目传送门:P4779思路:dijkstra+堆优化代码:#include<algorithm>#include<iostream>#include<queue>#include<vector>#include<string>#include<utility>#include<stack>#include<map>#include<set>#include<iomanip

2021-03-11 19:57:27 125

原创 洛谷P1629 邮递员送信(dijkstra算法)

题目传送门:邮递员送信题目描述有一个邮递员要送东西,邮局在节点 11。他总共要送 n-1n−1 样东西,其目的地分别是节点 22 到节点 nn。由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有 mm 条道路。这个邮递员每次只能带一样东西,并且运送每件物品过后必须返回邮局。求送完这 n-1n−1 样东西并且最终回到邮局最少需要的时间。输入格式第一行包括两个整数,nn 和 mm,表示城市的节点数量和道路数量。第二行到第 (m+1)(m+1) 行,每行三个整数,u,v,wu,v,w,表示从 u

2021-03-10 22:18:23 564

原创 PAT (1003) 我要通过! 20分

题目传送门:我要通过!首先思考题目给的三个重要信息:1.字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;2.任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;3.如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A 组成的字符串。思路:根据第一个条件得出该字符串必须包含PAT这三个字符,而且不含其他字符。再来看第二个条件,可以得出字符串主体“PA

2021-03-10 20:14:07 247

原创 PAT (1060)爱丁顿数 25分

1060 爱丁顿数 (25 分)英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于87。现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N)。输入格式:输入第一行给出一个正整数 N (≤10​5​​ ),即连续骑车的天数;第二行给出 N 个非负整数,代表每天的骑车距离。输出格式:在一行中给出 N 天的爱丁顿数。输入样例:106 7 6 9 3 10

2021-03-10 19:51:25 80

原创 PAT(1054)求平均值 20分

题目传送门:pat 1054 求平均值思路不必再阐述,纯模拟,但小坑很多,debug起来很繁琐(也许是我菜了ovo)以下是注意事项:是否存在除数字, ‘.’ , ‘-’ 以外的符号是否有数字(第四个测试点)小数点个数<=1注意小数位数在两位以内注意实数范围废话不多说,上代码#include<algorithm>#include<iostream>#include<queue>#include<vector>#incl

2021-03-10 19:28:47 147 1

原创 POJ 3723(最小生成树+优先队列)

POJ 3723原题链接:http://poj.org/problem?id=3723大致题意:招募n名男生与m名女生,没招募一位,底薪是10000RMB,若i男与j女之间存在亲密值,那么实际支付10000-k。求招募n+m员工 所花最小费用思路:最小生成树无疑了,将男生的编号加上m或者将女生编号加上n,那么就让女生和男生称为一体,换句话说 顶点数为n+m。求最小生成树有两种方法:1.prime算法。2.kruskal算法。本题可用kruskal(没试过prime)+并查集维护边+优先队列(so

2021-03-09 22:59:53 453 2

空空如也

空空如也

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

TA关注的人

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