自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决k8s拉取flannel失败的方法

我们可以wget或者直接网页打开该地址,获取该yaml文件内容,保存到本地,文件名仍然为。中报错信息有denied等字样,可能是阿里云仓库中设为私有仓库,设为公有仓库即可。作为一个完全不懂k8s和docker的新手,我琢磨出以下曲线解决方案。这里使用的阿里云个人镜像仓库,网上有很多教程如何注册,不再赘述。时失败了,默认拉取的镜像仓库在国外,被墙了。这一步网上资料很多,不再赘述,只要保证执行。,再将步骤3.2下载的镜像上传到仓库中。可得到需要的镜像的地址,此时就可以用。对比步骤3.2,更改后的。

2023-06-22 22:43:35 2993 1

原创 CodeFroces 977F. Consecutive Subsequence

题意:给出一个长为n的序列,求出最长的递增序列且该序列公差为1.解法:首先可以发现n只有2e5,但是数字范围a是1-1e9.    n相比a很小,所以一贯的套路就是离散化n个数字。           由于这个递增序列公差必须为1,我们考虑dp,递推式就是dp[i]=dp[i-1]+1,i代表当前数字大小,dp[i]代表算上i最长的序列是多长。            由于数字太大,不可能开1e9的...

2018-05-17 13:04:14 391

原创 CodeFroces 978D. Almost Arithmetic Progression

解法其实很简单,但是自己写的太挫了,然后就FST了。题意:给定一个长为n的序列,每个数字只能+1,不变,-1三个操作,问最少用多少次操作可以将序列凑为一个等差序列。解法:首先跑一遍整个序列,找到相邻两个序列之差的最大值和最小值。很明显,如果最大值和最小值之间的差值大于4肯定是怎样变化都无解的。如果差值小于4的话,我们从差值的最小值向最大值枚举即可。比如差值为10,那么我们再枚举第一个数的三种情况(...

2018-05-16 22:39:48 386

原创 浅谈自己对二分的理解和运用

二分是ACM中十分常用的技巧,在有序,或者更准确说是单调递增(减)条件下,可以快速查找一个需要的数字。常用于:在时间最小的情况下(二分时间),在最长边最短的情况下(二分长度 )。但是我这么久了依然写不好二分。本菜鸡决定写个总结。二分的基本模板:while(front <= back) { int mid = (front + back) >> 1; if(Check(mid)) {

2018-05-08 12:03:31 481

原创 Wannafly挑战赛2 B-Travel(抽40个点跑最短路)

发现这道题真的挺难写的。。。如果单纯是个环,我们直接用前缀和就能求出两点之间的距离,现在额外添加了一些边。我们分情况讨论。1.只走环上的点,那么直接前缀和相减就能得到答案。2.走了传送门。从起点出发,那么可能先走a传送门,再走b传送门……最终到达终点。我们最后只需要在1得到的答案和2得到的答案中取min即可。1.很好解决,先处理出前缀和 和所有边的总和length,然后两个点的前缀

2018-05-08 10:31:36 292

原创 LOJ 6045. 「雅礼集训 2017 Day8」价(最大闭合子图)

解法:一眼看去,真的太像最大权闭合子图了。但是分析一下发现,这道题的药材是没有费用的,最重要的是,题目要求所用药和药材的数量要一样。这可真的是难倒我了。看了一发别人的解法才发现太妙了。对于网络流二十四题中的《太空飞行计划》,这是一道最大权闭合子图的经典题,这道题中启用一个方案获利x元,但是要花y元买设备。我们可以这样看,方案启动越多越好,先把钱拿了,这时候去买设备,如果买设备的费用大于所给的启

2017-10-26 19:56:07 676

原创 UVA 10480 Sabotage (输出最小割所用边)

题意:给出一个图,要分割开1和2,每条边都有一个花费而且是无向的,问用上了哪些边,输出。在今年多校赛的时候写过一道输出最小割所用边的数量,但是今天遇到这个输出用了哪些边我就懵逼了。前几天还写过一道二分图的题目,判断一条边是否是必须存在的边,即是否删除这条边二分图的最大匹配数就变了。所以想在这题也用枚举的方法,但是一直wa。。。自己举了举反例发现不对。看了一下题解,原来这么简单。。。跑完一次最大

2017-10-25 19:28:49 305

原创 HDU 3829 Cat VS Dog (反建法求最大独立集)

反建法求最大独立集一直都是二分图的一大套路。这题目分析的时候,有种选了C1就不能选D1这种感觉,于是把cat和dog放在两边,看是否可以构成二分图求解。但是仔细想想这题目,求的是最多的开心人数,用cat和dog建图并不能说明什么。于是我们想其他方法。我们要的是人数,那么干脆用小孩来建二分图。怎么构造好呢?其实到这里突然很直观的发现,小孩之间的关系?其实就是如果小孩1喜欢C1不喜欢D1,小孩2喜

2017-10-25 09:59:20 286

原创 POJ 3648 Wedding(2-SAT输出一组解)

题意:有新郎新娘举办婚礼,吃饭的时候大家坐在一长方形桌,桌子有两列,新娘坐一列上看对面一列,她定义以下事情会让她不开心:夫妻都在对面一列或有仇人在对面一列。问是否能安排出合理方案使得新娘开心。如果有,输出YES并且输出新娘这一列坐着的人,否则输出bad luck。解法:夫妻不能在同一列,所以夫妻要不在新娘这排要不不在新娘这排,用2-SAT可以很好满足这个条件。然后读入仇人的信息,标记好,用2-

2017-10-16 11:28:31 283

原创 HDU 3622 Bomb Game(二分 + 2-SAT)

点击打开链接题意:给出n对点,每对点只能选取一个。每个点都会以自己为中心进行爆炸且半径相同,问最大爆炸半径是多少。解法:两个之中选一个,可以考虑2-SAT求解。由于半径是要求的,所以二分半径,然后每次都建图用2-SAT判断看是否可行。此处2-SAT保留的是不能共存的边。代码如下:#include#include#include#include#include#incl

2017-10-15 09:09:26 278

原创 CodeFroces 873B. Balanced Substring(思维题)

点击打开链接题意:给出一个字符串,求其中满足0和1的个数相等的最长字符串的长度。解法:当时只能想到枚举区间然后直接用前缀和判定的方法,但是枚举区间复杂度明显不对。然后想到了二分,发现很多数据都挺对的,然后wa24。想了想发现,有可能4不满足但是6满足,故不存在单调性。。。最后看了一发题解。每位有一个值:前i个数字0的个数 - 前i个数字1的个数。如果有两个地方的值是相同的,那么显然

2017-10-14 21:12:17 317

原创 Vijos 1843 货车运输(最大生成树 + 树上倍增模板)

解法:首先想到肯定是尽量用边权大的边,所以直接用最大生成树建图即可。建完图之后,由于询问数很大,所以要想一个高效的求两点之间边权最小的边的办法。一开始想到树链剖分,感觉很麻烦,代码量巨大。想用LCA的ST表来维护,但是发现维护困难,因为是边而不是点。最后才知道要用树上倍增做。预处理出深度小的点到深度大的i点最小的边权是多少。先求出x和y的lca,然后直接求出x到lca, y到lca的最小边权。取最

2017-10-14 18:41:11 241

原创 CodeFroces NWERC 2015 E.Elementary Math(二分图)

题意:给出n对数字,可以在n对数字中间用+,-,*三种运算,要保证最后得到的答案不能有相同的。解法:考虑到n只有2500,数据量比较小,最多只会有7500种结果,所以可以构造二分图。左边是n个点代表n对数字,右边?个点,代表结果。左边n个数字都向着右边他所能得到的答案连一条边。如果有两对数字运算结果相同,那么他们同时连到这个点上面。看看最后最大匹配是否等于n就知道可不可行了。复杂度

2017-10-14 09:59:37 239

原创 POJ 3207 Ikki's Story IV - Panda's Trick (2-SAT)

传送门题意:有一个圆,圆周上有n个顺序的点,然后有m组边,这些边的两个点必须连起来,圆有两个面,你可以在正面连接他们,也可以在反面连接他们。问是否可以使得这m条线不相交。解法:因为这些点是按照顺序排序的,在同一个面的情况下,有两对线分别是1 5,2 6,那么就会发现他们肯定是相交的,其实就是一个规律,a[i] 2-SAT连的是必须共存的点。代码如下:#include#in

2017-10-11 21:45:52 235

原创 Uvalive 7037 The Problem Needs 3D Arrays (最大密集子图)

题意:给出一些数字,找出逆序对。令 逆序对的个数/数字个数 最大。解法:我们先将逆序对用线标出来,然后就会发现这就是 边的数量 / 点的数量。这就是图的密度的定义。找最大密度则是用最大密集子图。求最大密集子图的方法见《最小割模型在信息学竞赛中的应用》。代码如下:#include#include#include#includeconst int maxn = 110;const

2017-10-07 11:00:31 294

原创 Ural 1277 Cops and Thieves(最小点割集/最小割)

题意:一个团伙去偷一个美术馆,警察决定在路上堵截。警察人数为k,不能在贼窝和美术馆驻扎,只能在图上其他点驻扎,而且驻扎有一个最小人数要求,问警察能否完成任务。解法:又是最小点割集题目,每个点拆点即可,边权为给出的r[i],然后跑一遍最大流求最小割,比较一下是否小于等于k即可。坑点,如果美术馆和贼窝是同一伙人。。。代码如下:#include#include#include#in

2017-10-06 16:35:30 397

原创 POJ 1815 Friendship (最小点割集/最小割)

题意:给出每个朋友之间的联系表,如果a联系b,b联系c,那么a是可以联系c的。问最少要去掉多少个朋友才能使得s无法和t联系上。如果有一样的方案输出字典序最小的。解法:很像最小割有木有?但是这次不是边而是点,那么我们拆点不就好了。跑一次最大流发现一开始流量为f,那么我们从1到n枚举点,试着把第i个点删去看看流量是否有变化。如果有变化,说明第i个点在最小点割集里面。记录一下这个点,并且以后不再进入

2017-10-06 15:37:41 271

原创 南阳理工OJ 石子归并(经典区间DP)

点击打开链接解法:一开始我愚蠢地认为一个一个并就可以了,但是样例都过不去。发现要区间区间地合并才对。那么转移方程就是dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + cnt[j] - cnt[i - 1]);dp[i][j]表示i到j合并起来的最小花费。cnt[i]是前i个的石子数目。代码如下:#include#include

2017-10-06 11:59:30 214

原创 CodeFroces Round 438C. Qualification Rounds(思维题)

题意:给出n个题目,k个队伍是否刷过这题的情况表。现在要举办一场比赛,要求用的题目,不能有队伍已经刷过一半以上。问是否存在解。解法:当时瞎写发现,好像只要选两个就可以了,然后就开始猜结论来写。由于k只有4,所以说最多只有1代码如下:#include#include#include#include#include#include#include#include#inclu

2017-10-06 11:05:06 266

原创 CodeFroces Round 438 B.Race Against Time(模拟)

题意:给出时间,那么钟上的三个指针就确定位置,现在要从t1到t2,中途不可以穿越指针,问是否可行。解法:当时想的是既然是小时之间的,那么我只需要把小时之间的给标记了即可。但是这样写会有反例。所以应该把这个钟扩大12*60倍。然后对应的标记上每个指针的位置,然后正反for一遍即可。代码如下:#include#include#include#include#include#inc

2017-10-06 10:59:42 233

原创 POJ 3280 Cheapest Palindrome(区间DP)

题意:给出一个字符串,你要把他凑成回文串,问最小花费。解法:一开始以为只能在两边加减字母,然后一直wa。后来拿了别人的程序发现可以在中间加字母的。dp一下,dp[i][j]表示把i - j的字符串凑成回文串的最小花费。转移方程:如果i和j的字符相同,那么直接就是他们包围的字符串的最小花费。dp[i][j] = dp[i - 1][j - 1].  如果不相同,那么就取两边变化的最小

2017-10-05 11:26:28 221

原创 CodeFroces gym 100781 A.Adjoin the Networks(贪心)

题意:给出一张图,存在多棵树,你要把这些树连起来,形成一棵树,令这棵树的直径最小。解法:很容易想到贪心一下就行了,找出直径最长的树的根作为连起来后的树的根,其他树的根连到这个根即可。然后求一下树的直径。难点在于怎么规定一个树的根,使得这棵树的深度最小。下面写的是类似于LCA两个端点向上走的方法,有dalao告诉我可以树形dp+dfs找。这都是可以的。但是注意:树的重心并不一定是这个最优的根。

2017-10-04 12:20:15 258

原创 UVA 11584 Partitioning by Palindromes(DP)

题意:给出一个由小写字母组成的字符串,求它最少由多少个回文串组成。解法:dp[i]代表前i个字符组成的字符串最少能由多少个回文串组成。并且枚举j-i(j代码如下:#include#include#include#include#include#include#include#include#include#include#include#includeusing

2017-10-04 10:02:54 153

原创 HDU 4280 Island Transport(最大流)

题意:给定一些小岛的坐标,要求从最东边到最西边。问最大流量是多少。解法:裸的最大流。本题确实卡了一下dinic,我用普通的读入挂跑了9s,用fread跑了7400ms。但是看了看别人isap啥都没加跑了5s。有的人用dinic超时是因为板子问题。有的板子里面bfs是从s开始到t,然后dfs也是s到t,这样是不够高效的。因为如果一个图从s开始有很多无用的边根本就到达不了t那种,就会使得d

2017-10-02 20:49:22 258

原创 POJ 2699 The Maximum Number of Strong Kings(枚举/二分+最大流)

岛娘网络流建模汇总里面的一道题。题意:每个玩家都会和另外所有玩家pk,给出每个玩家的分数(赢得pk则+1分),确保所有分数加起来是完全图的边数。定义strong king为:赢得了所有比自己分数高的玩家(最高分的玩家本身就是strong king)。问最多能有多少个strong king。解法:这种比赛的题目很常见的想法就是,把每个比赛当成一个点,然后这个点去连接另外两个玩家。那么建图就很

2017-10-02 18:49:11 263

原创 UVA 11400 Lighting System Design (DP)

题意:给出一些灯泡,每个灯泡有四个参数,电压,所需电源价格,当前灯泡价格,需要购买的数量。还有一些条件,为了省钱,低电压的灯泡可以替换成高电压的灯泡,每种灯泡都只能对应唯一的电源,不同的灯泡之间是不能互相使用电源的。解法:题目还是相对简单的,首先我们用前缀和得到前n种灯泡的数量,且显然,如果一种灯泡要转为更高电压的灯泡,肯定是全部一起转的。我们不断枚举区间,代表这个区间的灯泡都用第i种灯泡。然

2017-10-02 16:33:19 160

原创 SPOJ Smart Network Administrator(二分+网络流)

岛娘网络流合集上的题目。题意:给出一些街道,一开始只有编号1的家庭有网络,其他家庭要想有网络都要从1号家庭拉网线(且只能从1号家庭拉)。现在要求k个家庭(已给出)有网络,而且还有一个规定就是每个街道的网线颜色必须不一样。问最少要多少种颜色的网线。解法:我们直接构图可以想到,直接用一个起点s到k个家庭连接一个流量为1的边,然后编号为1的家庭作为汇点t。给出的每条道路,如果每条道路流量为INF

2017-10-02 14:04:47 213

原创 POJ 1741 Tree (树分治模板题)

点击打开链接题意:给出一棵树,求出两点之间距离小于等于k的点对数目。解法:树的考查十分常见,原因就在于树有一般图不具备的约束条件。如果这是一个一般图,我们想的是,做一次LCA,然后暴力两个点,看是否符合,复杂度达到O(n²),对于题目有1e4个点而且还是多组输入显然是无法接受的。这时候我们就要想到树分治的思想。求两个点的距离是否小于等于k,可以分为两种情况。我们假定一个

2017-10-01 16:48:14 293

原创 POJ 3107 Godfather (树的重心模板题)

点击打开链接题意:给出一棵树,求出所有树的重心,并且按编号从小到大输出。直接套模板即可。代码如下:#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn

2017-10-01 10:24:41 494

原创 POJ 1655 Balancing Act (树的重心)

点击打开链接题意:给出一棵树,求树的重心的编号,并且输出最大子树的节点数目。如果有最大节点数目相同的情况,选取重心编号较小的输出。树的重心:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。比如样例,删除节点1,那么就会生成三棵子树,每个子树的节点数目都是2,这就是最平衡的情况了。如果多增加一条6 - 8的边,那么依然是

2017-10-01 10:13:11 141

原创 HDU 6203ping ping ping(LCA+贪心)

题意:给出一棵树,然后给出一些点对,要求这些点对无法连通(可以毁坏u到v路上的点,也可以毁坏u,也可以毁坏v)。问最少毁坏多少个点。解法:很容易想到,如果毁坏u和v的最近公共祖先,那么这条路是断的,而且u的子树上的点到v的子树上的点也会无法连通。但是单凭LCA是不够的,因为深度越大的应该优先解决,深度小的点无法影响深度大的点。所以我们要贪心一下,每次取出点对的LCA深度小的点对。如果这个点对u

2017-09-30 11:28:07 284

原创 Vijos 1514 天才的记忆(ST表)

ST表是一种预处理状态,然后利用RMQ O(1)查询答案的技巧,这是在黄学长博客上找到的最简单的ST表来写了一法,大致明白什么意思。ST表难点在于状态转换方程,如果将转换方程换一换又可以求其他东西。本题中的dp[i][j]代表的是从第i个数字开始到i+2^j-1这些数字里面的最大值。比如i=3,j=4,那么dp[3][2]存放的是3到3+2^4-1中的最大值,即[3,18]中最大值。R

2017-09-27 16:03:14 283

原创 codevs1403 新三国争霸 (最小生成树+dp)

这道题目的题意其实我觉得挺迷的,不过写过bzoj1003物流运输的话,这两道题考察的知识点类似,就可以明白什么意思了。只不过bzoj1003是最短路+dp,而这道题是最小生成树+dp。代码如下:#include#include#include#include#include#include#include#include#include#include#includ

2017-09-27 10:28:57 324

原创 [ZJOI2006]物流运输 (最短路+dp)

如果本题没有换线路要k的花费这个条件,很明显就是直接枚举天数,每次都跑一个最短路即可。但是现在有这个条件,我们就要加上dp的思想,来分段决策。解法:1.枚举起始天和终止天,然后排除这个范围内无法一直有效的点,跑一遍最短路,用cost[i][j]记录此时到达港口m的最小花费。2.进行一次dp,dp[i]代表的是第i天开始到第n天的最小花费,边界为dp[n + 1] = -k。然后从第n天

2017-09-26 18:42:15 267

原创 UVA 12563 Jin Ge Jin Qu hao(多阶段决策问题,DP)

题意:给出n首爱唱的歌,剩余t时间。由于ktv最后不会强制暂停你的歌曲,所以最后你可以点一首劲歌金曲,也就是最后可以加上678秒多唱一些时间。问在保证能唱的歌曲尽量多的情况下,唱歌的时间尽量长。输出最多的唱歌数目和最长的唱歌时间。给出的n首个不会超过三分钟。解法:很明显,劲歌金曲是一定要唱的,毕竟时间长。虽然t的范围是1e9,但是最多只有50首个,每首歌180秒,最多也才9000秒。大于900

2017-09-23 19:22:32 254

原创 UVA 116 Unidirectional TSP (多阶段决策问题,DP解决)

紫书上的例题,我们令dp【i】【j】为从表格i,j点开始到最后一列的最小花费。由于还需要输出字典序,所以每一个点我们都要得到它能到下一列哪三行,对于第0行和第n-1行特殊处理,然后将这三行排序,从最小的开始检验,如果符合条件则更新,这样就可以处理相等的情况,并且字典序是最小的。代码如下:#include#include#include#include#include#includ

2017-09-21 10:15:32 227

原创 HDU 6214 Smallest Minimum Cut(求最小割的最少边数)

题目大意:给定一个图,从s到t求最小割,要求最小割的边数最少,输出最少的边数。解法:这其实就是一道原题,当时网络赛一搜就搜到了。方法1:先跑一遍最大流,满流的边必定是某个集合的最小割的边(很好理解,每次找增广路的时候,这条路被限制的最大流量就是这条路上流量最小的边,这条边必定对答案有贡献)。此时遍历所有正向边,满流的边使其流量为1,不满流的边重新设定其流量为INF,网络有许多错误的博客在这

2017-09-20 16:22:32 599

原创 HDU 1010/ZOJ 2110 Tempter of the Bone(奇偶剪枝)

题意:给定一个图,从s走到d,d只在第T秒打开,并且走过的格子会坍塌,问是否可以恰好在第T秒走到d。解法:图比较小,可以用dfs来走,检验在第T秒是否在d即可。但是这样会超时。我们加一个剪枝:在网格图中,有一个重要的剪枝是奇偶剪枝,即如果你有T的步数,你的目标数跟你相差dis步,如果T和dis不同时为奇数或者同时为偶数的话,则无法到达。代码如下:#include#include

2017-09-20 12:27:52 223

原创 BZOJ 1036 树的统计(树链剖分模板题)

这道题直接用黄学长模版改造过来交了一发。树链剖分还是很好理解的,先给每个点按照dfs序的顺序编号,然后建好一棵线段树,线段树里面的编号就是每个点被分配的编号。建好之后其实并没有赋值,所以再跑一遍循环把每个点的值赋值进去(线段树的单点修改操作)。此时再开始询问即可logn输出答案。代码如下:#include#include#include#includeusing namespa

2017-09-16 20:20:33 184

原创 HDU 5583 Kingdom of Black and White(模拟)

题意:给出一个01串,他的价值就是每段连续的0或者1的个数的平方。现在至多一次机会变换一个位置的0或者1,问能得到最大的价值是多少。解法:很明显,让大的尽量大,这是一种贪心思想,但是仔细分析发现又不是绝对的,要看答案的贡献度,所以我们采取暴露枚举的方法即可。首先预处理出每个串的长度。然后暴力,使得左边-1自己+1,或者右边-1自己+1,看是否可以更新最大值。(注意边界)最后输出答案

2017-09-14 20:18:23 177

空空如也

空空如也

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

TA关注的人

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