随笔分类 -  洛谷题解

摘要:Question "题目传送门" Solution 做完之后看题解,发现各位大仙递归就完事了 然而我还在挨个判断每种状态 首先我们看一看题目有四种情况 然后我们开一个三维数组 f[i][j][k] f[i][j][k]表示当前位置i是否是雷(也就是j) 下一位置要不要是雷的方案数k 我们有了它就可以 阅读全文
posted @ 2019-05-02 09:50 xmex 阅读(270) 评论(1) 推荐(1)
摘要:嗯。。。这篇题解写的原因是一位大佬网友问我的题 本蒟蒻为了纪念下这一刻,就写了 我只会写一写基本思路,经不起推敲 还是大家凑活看吧 重点来了 在bfs时,队列里的每个元素由一个高精度的数和那个数模m的值 拓展节点时如果拓展得到的余数为零,直接返回输出即可 要是这个余数不为零且之前没有出现过,就加入队 阅读全文
posted @ 2019-04-02 21:25 xmex 阅读(298) 评论(1) 推荐(2)
摘要:打算下周讲课就讲Manacher了 所以百度了一下相关题目,发现了一道千古好题 这道题没想到是一道模板题,模板中的模板 简要说一下思路,我们先复制一遍模板(甚至变量都不用改 然后唯一的区别就是要求的是最长连续回文子串长度 那么我们就在Manacher函数里在最后统计一下最大值就行 优秀的代码在这里 阅读全文
posted @ 2019-03-09 19:35 xmex 阅读(306) 评论(1) 推荐(0)
摘要:唔。。。。话说好久没有发布题解了(手痒痒了 首先特别鸣谢lykkk大佬今天下午教我Manacher算法,甚是感谢 为了体现学习成果,写一篇蒟蒻版的题解(大佬勿喷 言归正传 题面——>在这儿 首先做这道题要掌握一个算法——Manacher算法 简要说他就是用来解决回文串相关问题的算法,并不高深 由题意 阅读全文
posted @ 2019-03-05 22:01 xmex 阅读(218) 评论(0) 推荐(1)
摘要:残忍的题面 我们来看这一道题,其实冗长的题目告诉我们一个核心——用tarjan tarjan是用来干什么呢?是用来求强连通分量(代码中指sc) 求出来又有什么用呢?每当我们求出一个强连通分量时,就去计算当前强连通分量中各点最小值是多少以及其个数 然后分别开两个计数器,假设ans1是用来存个数相乘,a 阅读全文
posted @ 2018-12-24 14:53 xmex 阅读(210) 评论(3) 推荐(1)
摘要:这个题可以被分为两部分 1.匈牙利算法(板子) 2.邻接表存图(好像这不能称为第二部分) 每一排能坐两个人,那就把一排拆成两个点, 用匈牙利算法求最大匹配 每个人都只想坐两排,说明每个人只会连四条边 如果不会匈牙利的请点这里 阅读全文
posted @ 2018-12-23 21:38 xmex 阅读(215) 评论(1) 推荐(1)
摘要:一开始看这道题时,发现是最短路,可是搜的又是倍增的题无可分说这是倍增+最短路 但是Dijkstra,SPFA我又不熟,可是看了数据范围心中萌生一种用Floyd做的方法 不扯了 先设一个三维bool数组是用来表示是否i到j之间有一条长度2^k的边 再设一个二维int数组是用来存时间的,再把n,m定上( 阅读全文
posted @ 2018-12-23 16:14 xmex 阅读(167) 评论(1) 推荐(1)
摘要:我来总结一下最常用的两种办法 1.贪心 2.差分约束 那么我们先来讲,贪心版《种树》 大家可能知道有一个题和这个类似,那个是钉钉子而这个是种树 我们可以借用钉钉子的思路来想,首先这个是让你求最小值,而且每个人都有自己划定的区间,并且他们还要求在这段区间内最少种T棵树。 那么我们既要满足最少种树数,而 阅读全文
posted @ 2018-12-20 17:27 xmex 阅读(220) 评论(0) 推荐(1)
摘要:实话说我本来想找SPFA的题,结果我硬生生的把这道题做成了Floyd 先来看题,我们会发现如果把他所给的变量都输入,那么会发现用Floyd的解法,输入占了main函数的一半长度。。。 题目分为两步走: 1.根据题意,我们可知是让我们算两点间直线距离,那我们就可以顺理成章的去用我们学过的——两点间距离 阅读全文
posted @ 2018-12-19 19:39 xmex 阅读(149) 评论(0) 推荐(1)
摘要:题目背景 1.wqs爱好模拟飞行。 2.clj开了一家神犇航空,由于clj还要玩游戏,所以公司的事务由你来打理。 注意:题目中只是用了这样一个背景,并不与真实/模拟飞行相符 题目描述 神犇航空开展了一项载客特技飞行业务。每次飞行长N个单位时间,每个单位时间可以进行一项特技动作,可选的动作有K种,每种 阅读全文
posted @ 2018-12-16 19:25 xmex 阅读(301) 评论(0) 推荐(1)
摘要:/*拓扑排序去寻找点的拓扑序 便于DP,那么怎么去找 首先邻接表存边,然后dfs搜寻每一个点 最后进行拓扑排序,找到拓扑序*/ #include const int maxn = 100005; const int maxm = 200005; using namespace std; int n,m,p=1; int a,b; int dp[maxn]; int h[maxn],v[m... 阅读全文
posted @ 2018-12-14 20:42 xmex 阅读(235) 评论(0) 推荐(1)
摘要:P1578 奶牛浴场 P1578 奶牛浴场 P1578 奶牛浴场 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少。为了讨好奶牛,John决定在牛场中建造一个大型浴场。但是John的奶牛有一个奇怪的习惯,每头奶牛都必须在牛场中的一个固定的位置产奶,而奶牛显然不能在浴场中产 阅读全文
posted @ 2018-12-13 21:45 xmex 阅读(246) 评论(2) 推荐(1)
摘要://f[i][j]就是第is时wpgwhpg的疲劳度是j,那么我们就可以就ta这1s是否休息进行讨论 #include using namespace std; const int M = 11000; int n,m; int a[M],f[M][510]; int main() { cin>>n>>m; for(int i=1;i>a[i]; for(int... 阅读全文
posted @ 2018-12-12 22:30 xmex 阅读(181) 评论(0) 推荐(0)
摘要:/*这道题第一眼看的时候,设f[i]表示1--i的最大空闲时间 但是我们又可以发现,i时刻的最大空闲时间和后面选择任务的持续的时间是有关系的 那么我们就用f[i]来表是i——n的最大空闲时间,即倒着找 那么我们就可以推出两个状态转移方程式 (1):这一时刻没有任务,那么就在上一时刻的最大空闲时间+1:f[i]=f[i+1]+1 (2):这一时刻有任务,f[i]=max(f[i],f[i... 阅读全文
posted @ 2018-12-12 22:27 xmex 阅读(472) 评论(0) 推荐(0)
摘要:这道题看似好难,但是其实很简单 先把题目中所让你设的变量都设好,该输入的都输入 你会发现这道题好像成功了一半,为什么呢??? 因为设完后你会发现你不需要再添加任何变量,已经足够了。 可能最难的地方,就在于状态转移方程式了 先从三重循环说起,第一层1——n没问题 第二层0——m也没问题 第三层为什么是 阅读全文
posted @ 2018-12-10 17:54 xmex 阅读(168) 评论(0) 推荐(0)
摘要:USACO!!! 唉!无一例外又是母牛(终于知道美国的牧场养什么了) 今天的主人公是一个叫贝茜的公主病母牛(好洋气) 可是她叫什么和我们理解题好像没有什么关系 通过读题我们可以发现她有三个傲娇的地方 1.她要继续走 2.她要中途休息,但是要休息到完全恢复体力,即疲劳度为0 3.她要发奋图强一直走下去 阅读全文
posted @ 2018-12-10 17:53 xmex 阅读(153) 评论(0) 推荐(0)
摘要:话说许多dalao都采取线段树A题可本蒟蒻不会啊, 暴力的我想出了暴力解法(快排) 阅读全文
posted @ 2018-12-10 17:52 xmex 阅读(195) 评论(0) 推荐(0)