自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ezoi_ly的博客

一个弱鸡的博客

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

原创 [NOI2019]序列

首先,因为要求最大的和,可以将费用设为负数,这样跑最小费用最大流是可以求出答案的。传递方式有两种:1.ai到biai到biai到bi,这种可以压缩2的空间。2.ai到bjai到bjai到bj,这表示选不同序号的a,b。因为要至少有l个是1,所以这种边的流量为k-l。但是这样直接跑费用流是过不了的。所以考虑是否能用一些东西替代费用流的过程。想到贪心。显然,A.走cd的边得到的利益肯定是大于等于走1的边的(因为cd也可以走相同的边,但是我们不这样做,因为相同的边走1可以给2更多的流量)。A.走c.

2020-06-18 13:19:01 325

原创 【BZOJ2095】【POI2010】Bridge(网络流,二分)

DescriptionYYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个小岛之间不会有两座桥,并且从一个小岛可以到另外任意一个小岛。现在YYD想骑单车从小岛1出发,骑过每一座桥,到达每一个小岛,然后回到小岛1。霸中同学为了让YYD减肥成功,召唤了大风,由于是海上,风变得十分大,经过每一座桥都有不可避免的风阻碍YYD,YYD十分ddt,于是用泡芙贿赂了你,希望你能帮他找出一条承受的最大风力最小的路线。Input输入:第一行为两个用空格隔开的整数n(2<=n&

2020-06-06 10:59:07 180

原创 [NOI2009]植物大战僵尸(拓扑排序,网络流)

注意一个事情,僵尸为何要按照一定的顺序进攻才能使资源最大化?即答:一颗植物中可以保护其他的植物。那么保护有两种类型:1.保护者y位置在被保护者x的同一行,但是位置比x前(就是说想吃x必须先吃y)2.保护者y的攻击范围中有x求最大能源收入可以想到跑答案减掉最小割,每一个y向x连边,s连资源为负数的点,t连资源为正数的点。ans-最大流即是答案。(最大流=最小割)但是这样的做法有问题:y在x的前面,x的保护位置有y。这样会形成一个环。按理说这种情况僵尸是绝对不可能吃掉这两颗植物的。(他们两..

2020-06-06 08:36:30 334

原创 【CODECHEF】Chef and Churus(分块)

有一个长度为n的数组A和n个区间[li,ri],有q次操作:1 x y:把ax改成y2 x y:求第l个区间到第r个区间的区间和的和。n,q≤10510^5105,ai≤10910^9109首先,修改一个数肯定会改变区间和以及区间和的和,q≤10510^5105,应该是要在sqrt(n)或logn完成修改操作,查询操作也是如此。想到了分块。数组分块,记录每一个点在该块的前缀和(求块的前缀和时用到),记录每一个块的前缀和(有利于询问在求区间和时用到)。同时,区间也是同样的分块。对于每一个区间块,

2020-05-29 20:15:25 489

原创 【CODECHEF】Children Trips(分块)

主要的操作是:每一天走到最远能够走到的休息区确实一开始没有想到是分块,只是觉得1<=d<=21<=d<=21<=d<=2有点东西,但是没有搞出来。其实也可以说是分类讨论。首先肯定都是求出lcalcalca,两点都向lcalcalca跳。1.P>sqrt(n)1.P>sqrt(n)1.P>sqrt(n)这样的P有一个特点,就是他每天至少是要走sqrt(n)公里的,直接暴力跳O(nsqrt(n))O(nsqrt(n))O(nsqrt(n)),可..

2020-05-29 19:55:31 302

原创 Array Transformer(分块)

题目大意:给定一个长度为nnn的序列和mmm次操作,每次操作设ansansans为在[l,r][l,r][l,r]中严格效益v的数的个数,将a[p]a[p]a[p]改为(k∗ans)/(r−l+1)(k*ans)/(r-l+1)(k∗ans)/(r−l+1)题解:可以将操作分为两步:1.求ans2.更改数值分块,块内有序,便于查询ans,更改后与左右进行交换,保证块内有序。例如,读...

2020-01-17 14:19:32 446

原创 【BZOJ3489】A simple rmq problem(K-D Tree)

题目说了要在[l,r]中找只出现过一次的数,那么就可以转换成是说上一次这个数出现在l之前,下一次这个数出现在r之后,且最大,那么就可以转化成一个K-D Tree问题。设pre[i]pre[i]pre[i]为上一次a[i]a[i]a[i]出现的位置,nxt[i]nxt[i]nxt[i]为下一次a[i]a[i]a[i]出现的位置,那一个结构体i,pre[i],nxt[i]{i,pre[i],nxt[...

2020-01-15 13:30:29 125

原创 推门游戏 The Wall Pushers(IDA*)

这个题的大致意思:是说你可以推一面墙,但是不能推两面墙,而且也不能推墙推过边界,问你最少要多少步才能走出迷宫。这题的迷宫规模较小,好像可以搜索,但是直接搜又好像太慢了,所以可以用IDA∗IDA*IDA∗进行搜索。关于估价函数的话,显然,最少也是要走到边界才能够走出迷宫,所以估价函数就是棋子走到边界的最近值。由于在路途中可能会有障碍(指推不动的墙),所以估价函数一定是小于等于准确值的,正确性得...

2020-01-14 14:01:11 259

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

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

2019-12-28 10:46:48 198

原创 [SCOI2007]k短路(A*)

题目描述有nn个城市和mm条单向道路,城市编号为11到nn。每条道路连接两个不同的城市,且任意两条道路要么起点不同要么终点不同,因此nn和mm满足m \le n(n-1)m≤n(n−1)。给定两个城市a和b,可以给a到b的所有简单路(所有城市最多经过一次,包括起点和终点)排序:先按长度从小到大排序,长度相同时按照字典序从小到大排序。你的任务是求出a到b的第kk短路输入格式输入第一行包含五个...

2019-12-28 10:04:03 286

原创 [模板A*][SCOI2005]骑士精神(A*,IDA*)

输入格式第一行有一个正整数T(T<=10),表示一共有N组数据。接下来有T个5×5的矩阵,0表示白色骑士,1表示黑色骑士,*表示空位。两组数据之间没有空行。输出格式对于每组数据都输出一行。如果能在15步以内(包括15步)到达目标状态,则输出步数,否则输出-1。这题是一道比较好的A∗A*A∗的模板题,A∗A*A∗对dfs的优化一般叫IDA∗IDA*IDA∗。首先,A∗A*A∗有一个...

2019-12-28 09:20:07 229

原创 [ZJOI2007]捉迷藏(动态点分治/(括号序列)(线段树))

题目描述Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子。某天,Jiajia、Wind和孩子们决定在家里玩捉迷藏游戏。他们的家很大且构造很奇特,由N个屋子和N-1条双向走廊组成,这N-1条走廊的分布使得任意两个屋子都互相可达。游戏是这样进行的,孩子们负责躲藏,Jiajia负责找,而Wind负责操纵这N个屋子的灯。在起初的时候,所有的灯都没有被打开。每一次,孩子们只会躲藏在没有开灯的房...

2019-12-07 10:31:08 209

原创 【BZOJ4668】冷战(并查集)

Description1946 年 3 月 5 日,英国前首相温斯顿·丘吉尔在美国富尔顿发表“铁幕演说”,正式拉开了冷战序幕。美国和苏联同为世界上的“超级大国”,为了争夺世界霸权,两国及其盟国展开了数十年的斗争。在这段时期,虽然分歧和冲突严重,但双方都尽力避免世界范围的大规模战争(第三次世界大战)爆发,其对抗通常通过局部代理战争、科技和军备竞赛、太空竞争、外交竞争等“冷”方式进行,即“相互遏制,...

2019-12-06 21:44:54 203

原创 POJ1061 青蛙的约会(扩展欧几里得)

Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为...

2019-12-06 21:29:14 99

原创 虚树+【BZOJ2286】【SDOI2011】消耗战(虚树)(DP)

先看一道题:【BZOJ2286】【SDOI2011】消耗战Description在一场战争中,战场由n个岛屿和n−1个桥梁组成,保证每两个岛屿间有且仅有一条路径可达。现在,我军已经侦查到敌军的总部在编号为1的岛屿,而且他们已经没有足够多的能源维系战斗,我军胜利在望。已知在其他k个岛屿上有丰富能源,为了防止敌军获取能源,我军的任务是炸毁一些桥梁,使得敌军不能到达任何能源丰富的岛屿。由于不同桥梁...

2019-12-06 21:28:01 152

原创 小凯的疑惑

首先,这道题正解的思路是从subtask2而得来的,所以先讲一下subtask2的做法。因为保证答案不超过long long,所以直接求最大权独立集即可:dp[u][0]表示u点一定不能取的答案,dp[u][1]表示u点对儿子没有限制的答案。dp[u][0]=max(dp[v][0],dp[v][1])dp[u][0]=max(dp[v][0],dp[v][1])dp[u][0]=max(...

2019-11-09 09:10:08 200

原创 【模板】KMP字符串匹配

顾名思义,就是一种用来进行字符串匹配的算法。这种算法的核心就是一个nxt数组,表示在模式串的第i位失配后,应该跳到模式串的哪一位继续匹配。为什么要这样?显然,因为文本串是不确定的,所以在匹配的时候的nxt数组肯定是按照模式串建的。其次,为什么要设一个nxt数组呢?模式串:abcabc模式串:abcabc模式串:abcabc文本串:abcabdcab文本串:abcabdcab文本串:ab...

2019-11-08 19:27:15 263

原创 子树问题(DP)

这题显然是DP首先,dp[i][j]dp[i][j]dp[i][j]表示树深度小于等于i,树的大小为j的有根树的数量$可以循环枚举根节点编号次大的子树的大小k。dp[i][j]=∑k=1j−1dp[i][j−k]∗dp[i−1][k]∗Cj−2k−1dp[i][j]=\sum^{j-1}_{k=1}dp[i][j-k]*dp[i-1][k]*C^{k-1}_{j-2}dp[i][j]=...

2019-11-02 11:10:59 194

原创 【POJ3744】Scout YYF I(矩阵快速幂)(期望DP)

DescriptionYYF是一个英勇的侦查员。现在他正在执行打入到敌方内部的危险任务。在解决了一系列的险情后,YYF到达了敌方著名的"地雷路"起始点。这条路非常长,上面被精心排布了不少地雷。一开始,YYF站在1的位置。对于后面的路程,YYF有p的概率向前走一步,或者有1−p的概率向前跳两步。现在问题来了。非常喜欢坑队友的情报部得到了每个地雷的位置,但他们不准备告诉YYF,反而请你计算YYF能安...

2019-11-02 07:58:21 86

原创 [loj2546][JSOI2018]潜入行动(树形DP)

题目描述外星人又双叒叕要攻打地球了,外星母舰已经向地球航行!这一次,JYY 已经联系好了黄金舰队,打算联合所有 JSOIer 抵御外星人的进攻。在黄金舰队就位之前,JYY 打算事先了解外星人的进攻计划。现在,携带了监听设备的特工已经秘密潜入了外星人的母舰,准备对外星人的通信实施监听。外星人的母舰可以看成是一棵 n 个节点、 n-1 条边的无向树,树上的节点用 1,2,\cdots,n1,2,...

2019-11-01 21:22:22 255 1

原创 【CF696D】Legen...(AC自动机)(矩阵快速幂)

题目描述Barney was hanging out with Nora for a while and now he thinks he may have feelings for her. Barney wants to send her a cheesy text message and wants to make her as happy as possible.Initially, ...

2019-10-31 16:58:04 210

原创 冒泡排序

很暴力的一种排序方法。我们每次使第i个数变成第i小的数。直接在[i+1,n][i+1,n][i+1,n]中比较即可。#include<bits/stdc++.h>using namespace std;int n,a[2001];int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%...

2019-10-18 21:06:24 88

原创 哈夫曼编码(初赛)

对于一个序列,给定我们在这个序列中出现过的数以及出现次数,我们可以求得每一个数的二进制编码,使得表达这个序列的长度最短。比如说:我们每次取出出现次数最少的两个数,删除,并将他们的和放入优先队列。相对应的,我们也要在合并的同时建一棵二叉树出现次数少的在左,大的在右。向左儿子的边为0,向右儿子的边为1。所以一个序列建出来的二叉树不唯一。例如:这也是一种合法的二叉树。所以我们得...

2019-10-18 13:43:31 270

原创 【XSY1986】【BZOJ1455】罗马游戏(左偏树)

就是一模板题。合并就直接merge。pop就是将自己的值设为一,再将自己的左右儿子合并即可。查询直接找到堆顶,输出。模板左偏树代码:#include<bits/stdc++.h>using namespace std;int dis[1000001],ch[1000001][2],fa[1000001],n,m,x,y,xx,yy,val[1000001];char ...

2019-10-12 19:16:05 143

原创 【BZOJ4864】【BeiJing 2017 Wc】神秘物质(Splay)

Description21ZZ 年,冬。小诚退休以后, 不知为何重新燃起了对物理学的兴趣。 他从研究所借了些实验仪器,整天研究各种微观粒子。这一天, 小诚刚从研究所得到了一块奇异的陨石样本, 便迫不及待地开始观测。 在精密仪器的视野下,构成陨石的每个原子都无比清晰。 小诚发现, 这些原子排成若干列, 每一列的结构具有高度相似性。于是,他决定对单独一列原子进行测量和测试。被选中的这列共有 ...

2019-10-12 18:59:03 155

原创 【模板】dijkstra

这个东西相对于SPFA较为稳定,但是他其实是一种贪心算法,所以————dijkstra算法跑不了负权图。dijkstra的算法核心就是贪心,我们每次把离初始点最近的但加入集合,知道目标点加入集合,此时就是最短路径。#include<bits/stdc++.h>using namespace std;int n,m,k,x,y,z,d[100001];struct data{...

2019-10-04 16:01:26 100

原创 【POJ3744】Scout YYF I(DP)(矩阵快速幂)

DescriptionYYF是一个英勇的侦查员。现在他正在执行打入到敌方内部的危险任务。在解决了一系列的险情后,YYF到达了敌方著名的"地雷路"起始点。这条路非常长,上面被精心排布了不少地雷。一开始,YYF站在1的位置。对于后面的路程,YYF有p的概率向前走一步,或者有1−p的概率向前跳两步。现在问题来了。非常喜欢坑队友的情报部得到了每个地雷的位置,但他们不准备告诉YYF,反而请你计算YYF能安...

2019-10-04 15:33:54 99

原创 【BZOJ4720】【UOJ262】【NOIP2016】换教室(DP)

Description对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程。在可以选择的课程中,有 2n 节课程安排在n个时间段上。在第 i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先被安排在教室 ci 上课,而另一节课程在教室 di 进行。在不提交任何申请的情况下,学生们需要按时间段的顺序依次完成所有的 n 节安排好的课程。如果学生...

2019-10-04 15:32:43 133

原创 CF786B Legacy(线段树)(最短路)

Description【题目描述】 Rick和他的同事们研究出了一种新的有关放射的公式,于是许多坏人就在追赶他们。所以Rick希望在被坏人抓住之前把遗产给Morty。 在他们的宇宙里总共有n颗行星,每颗行星有它自己的编号(编号为1到n)。Rick所在的行星的编号是s(地球),但是他不知道Morty在哪?总所周知,Rick有一门能打开奇妙入口的枪。在这把枪的帮助下,他能打开一扇单...

2019-10-04 13:58:22 192

原创 CF487B Strip(RMQ)(DP)

直接RMQ即可,最后套一个简单DP。RMQ求出区间的元素的最大值和最小值。后面直接一遍DP。dp[i]表示前i个数最少要分成多少份。满足条件时:dp[i]=min(dp[i],dp[ok]+1)dp[i]=min(dp[i],dp[ok]+1)dp[i]=min(dp[i],dp[ok]+1)#include<bits/stdc++.h>#define inf 21474...

2019-10-03 21:32:58 273

原创 【CF341D】Iahub and Xors(树状数组)(容斥)

Description题目描述给你一个n*n的矩阵a,初始时a[i,j]都为0; 有m个操作:1 x1 y1 x2 y2 :询问ai,j(x1<=i<=x2,y1<=j<=y2)的异或和2 x1 y1 x2 y2 c :把ai,j(x1<=i<=x2,y1<=j<=y2)异或上c输入格式第一行两个数:n,m; 接下来...

2019-10-03 11:30:59 245

原创 【HDU4822】Tri-war(树上倍增)

红色,黄色和蓝色三个国家处于战争之中。战场地图是一棵树,这意味着有N个节点和(N – 1)条边连接所有节点。每个国家在一个节点上都有一个基站。这三个国家都不会将其站点放置在同一节点中。每个国家将从其基站开始占领其他节点。对于每个节点,如果其他两个国家的基站到该节点的距离比国家A大,则国家A将占据该位置。请注意,每个边缘的长度相同。给定三个国家/地区的基站,您的任务是计算每个国家/地区占用的节点数...

2019-10-02 11:51:15 259

原创 CF708C Centroids(树形DP)

Description题目描述我们定义一个点x是整棵树的重心(总共有n个点)当且仅当删掉点x后所有连通块的大小都不超过n/2。我们定义一次操作为删掉一条边再加上一条边,必须满足操作后整个图还是一棵树。给你一棵n个点的树,求每个点能否在一次操作后成为重心。输入第一行一个整数n;接下来n-1行每行两个整数u,v:表示第u个点与第v个点间有一条边。输出共1行n个数:第i个数表示第i个...

2019-10-02 10:59:15 227

原创 CF486D Valid Sets(树形DP)

Description给你一颗n个点的树,每个点有一个权值a[i],求出这颗树的所有满足权值最大点的权值-权值最小点的权值<=d 的联通子图的数目,答案对10^9+7取模Input第一行,两个整数d,n第二行,n个整数a[1]…a[n]第3~n+1行,每行两个整数x,y,表示x和y间有一条边Output一行,一个整数,表示答案对10^9+7取模后的值树形DP设dp[...

2019-10-02 09:02:40 216

原创 【BZOJ3329】Xorequ(数位DP)

DescriptionInput第一行一个正整数,表示数据组数据 ,接下来T行每行一个正整数NOutput2*T行第2*i-1行表示第i个数据中问题一的解,第2*i行表示第i个数据中问题二的解,Sample Input11Sample Output12HINTx=1与x=2都是原方程的根,注意第一个问题的解不要mod 109+70≤N≤10^181≤T≤1000...

2019-09-24 13:22:36 315

原创 【CF633H】Fibonacci-ish II(权值线段树)(莫队)

给定一个长度最大为30000的序列,和最多30000个询问,每个询问问某区间[L,R]里的数,去掉重复然后排序之后,依次乘上斐波那契数列然后求和,结果对m取余的值Sample Input5 102 1 2 1 222 44 5Sample Output33我们这题先离散化并去重,然后我们考虑莫队。考虑新加入一个数和删除一个数对答案产生的影响。加入一个数我们如果这个数在序列...

2019-09-21 09:28:55 262

原创 【模板】逆序对

逆序对我的逆序对是用归并排序做的。归并排序就是用分治的方法对一个序列进行排序,时间复杂度O(nlogn)O(nlogn)O(nlogn)。我们先把一段序列分成两半,之后合并,以为每一次合并之前两段的序列是有序的,所以我们就可以在归并排序的同时计算逆序对的个数。#include<bits/stdc++.h>#define mod 99999997#define N 10000...

2019-09-20 18:30:16 93

原创 【POJ3208】Apocalypse Someday(二分,数位DP)

Description666号被认为是神秘的“野兽之数”,在所有以启示录为主题的大片中都是一个被广泛使用的数字。但是,这个数字666不能总是在脚本中使用,所以应该使用1666这样的数字。让我们把至少包含三个连续的六位数字的数字称为可怕的数字。头几个可怕的数字是666,1666,2666,3666,4666,5666…给定一个基于1的索引n,程序应该返回第n个可怕的数字。Input第一行包含...

2019-09-20 12:51:21 221

原创 CF464D World of Darkraft - 2(期望DP)

Roma 在游戏“World of Darkraft”(理论上应该是 World of darkcraft,MineCraft 的一个版本)找到一个新角色。 Roma\mathrm{Roma}Roma 有 k种装备,一开始每种装备各有 1个,且每种装备的初始等级均为 1。游戏中可以靠打怪来获取新装备,总共有 n 只怪兽,每打赢 1 只怪兽后,Roma\mathrm{Roma}Roma 会随机获得...

2019-09-14 20:54:22 190

原创 【ARC064-F】【XSY2575】Rotated Palindromes(DP)(字符串)

Description然而,由于小C沉迷于制作游戏,他完全忘记了自己作为国家集训队的一员,还有156道作业题等他完成。还有一天作业就要截止了,而他一题还没有做。于是他赶紧挑了一道看起来最简单的题:“给定一个整数N,请你求出有多少字符集为1到K之间整数的字符串,使得该字符串可以由一个长度为N的回文串循环移位后得到。所谓循环移位,就是把字符串的某个前缀(可以为空)移到字符串末尾,如"1221"循环...

2019-09-14 20:44:54 158

空空如也

空空如也

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

TA关注的人

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