![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
————基础算法————
文章平均质量分 54
Michael_GLF
AFOing
展开
-
校内OJ 4765 bestJob(分类讨论)
传送门【题目分析】细节打挂一堆。。。。。。。。。其实还挺好想的。。。。先将每个人的答案字符串转为二进制数,0表示N,1表示Y。分情况讨论如下:1.k1=0,k2=0全是第三类人的话,只用满足答案对应的二进制串没有出现过,这个用map就能维护,注意枚举要到最大值,但因为不同的串和反串最多100个,所以不用枚举多少就能找到答案。2.k1!=0,k2!=0两种人都有,...原创 2019-10-23 20:45:08 · 321 阅读 · 2 评论 -
【洛谷1312】【NOIP2011DAY1T3】 Mayan游戏(模拟)
传送门【题目分析】T3考模拟有点意思,不过考场可能还真想不到自己错在哪了hhh我的做法比较暴力,因为n不大,就直接枚举所有情况,有一些比较显然的性质:1.当前位置有方块才交换(因为忘了这个WA了3个)2.相同方块不用交换(剪枝?)3.除非左边为空,否则不进行向左交换的操作。然后就是一些小细节了嘻嘻嘻,看看代码就行,写的还算清真。【代码~】#include<...原创 2019-10-16 09:41:23 · 157 阅读 · 0 评论 -
NOIP模拟 葫芦(分数规划)
【题目描述】Tom 最喜欢的歌曲就是《葫芦娃》。一日表演唱歌,他尽了洪荒之力,唱响心中圣歌。随之,Tom 进入了葫芦世界。葫芦世界有 n 个葫芦,标号为 1~ n。n 个葫芦由 m 条藤连接,每条藤连接了两个葫芦, 这些藤构成了一张有向无环图。Tom 爬过每条藤都会消耗一定的能量。Tom 站在 1 号葫芦上(你可以认为葫芦非常大,可以承受 Tom 的体重),他想沿着藤爬 到 n...原创 2018-10-11 14:20:48 · 197 阅读 · 0 评论 -
NOIP模拟 坐标系(找规律+矩阵乘法优化)
【题目描述】Tom 者表也,数学者景也,表动则景随矣。Tom 不喜欢数学,可数学却待 Tom 如初恋,Tom 睡觉的时候也不放过。Tom 的梦境中出现了一个平面直角坐标系,自原点,向四方无限延伸。Tom 在坐标系的原点,他可以向上、向左或者向右走。他可以走 n 步,但不能经过相同 的点。Tom 想知道他有多少种走法【输入格式】输入文件仅第一行一个正整数 n,表示 Tom...原创 2018-10-11 14:15:08 · 317 阅读 · 0 评论 -
NOIP模拟 阶乘(质因数分解+二分答案)
【题目描述】有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值。【输入格式】共两行。第一行一个正整数n。第二行n个正整数a[i]。【输出格式】共一行一个正整数m。【样例输入】16【样例输出】3【备注】对于10%的数据,n<=10对于30%的数据,n<=1000对...原创 2018-10-05 13:31:08 · 434 阅读 · 0 评论 -
NOIP模拟 K进制(进制转换+快速幂)
【题目描述】给定一个K(2<=K<=16)进制数a,判断a是否能被K-1整除。【输入格式】第一行是一个整数t(1<=t<=50),表示测试点数量。对于每组数据,第一行一个整数K,表示进制。第二行一个K进制数,表示a。保证a是合法的K进制数,没有前导0,且只由’0’-‘9’、’A’-‘F’构成。【输出格式】如果a可以被K-1整除,输出”yes”,否...原创 2018-10-04 13:17:37 · 258 阅读 · 0 评论 -
NOIP模拟 矩阵分组(二分答案)
【题目描述】有N行M列的矩阵,每个格子中有一个数字,现在需要你将格子的数字分为A,B两部分要求:1、每个数字恰好属于两部分的其中一个部分2、每个部分内部方块之间,可以上下左右相互到达,且每个内部方块之间可以相互到达,且最多拐一次弯如:其中(1)(2)是不允许的分法,(3)是允许的分法。在(2)中,a属于A区域,这两个a元素之间互相到达,但是不满足只拐一次弯到达。问:...原创 2018-10-03 16:15:54 · 400 阅读 · 0 评论 -
NOIP模拟 切木板(贪心)
【题目描述】有一个 m×n 的矩形木板。你需要把这个木板切成 1×1 的小方块,也就是竖着切 n-1 刀、横着切 m-1 刀。横着切第 i 个位置的权值为 xi ,竖着切第 j 个位置的权值为 yj 。切某一刀时的费用为切这一刀的权值乘上切过的块数。请你安排切的顺序使得所有费用之和最小。【输入格式】第一行两个数 m,n 。接下来一行 m-1 个整数 x1,x2,…,xm-1 。...原创 2018-09-15 14:00:38 · 787 阅读 · 0 评论 -
POJ 2976 Dropping tests(分数规划)
【题目大意】在一场考试中,你有n个测试,你在b道问题内答对了a道,最后你的成绩为:他会先给你各个测试的ai和bi,然后给出一个正整数k,表示你可以放弃k个测试,例如给你3个测试分别为(5,5),(0,1),(2,6),那么最后成绩为100*((5+0+2)/(5+1+6))=50,如果不选第三个,那么成绩为100*((5+0)/(5+1))≈83.3,最后四舍五入得到83。【输入格式】...原创 2018-09-14 20:23:42 · 191 阅读 · 1 评论 -
NOIP模拟 k-斐波那契(矩阵求斐波那契+扩展欧几里得)
【题目描述】 k-斐波那契数列定义如下: 已知f[n]=1,求【0,P)内所有可能的K。【输入描述】 一行两个整数,n和P。【输出描述】 从小到大输出所有可能的K,如果没有则输出None。【输入样例】5 5【输出样例】2【备注】对于30%数据,n,P<=1000。对于100%数据,n, P ≤ 10^9。 ...原创 2018-09-01 21:00:59 · 225 阅读 · 1 评论 -
NOIP模拟 位运算(trie树+按位贪心)
【题目描述】有q次操作,每次操作是以下两种:1、 加入一个数到集合中2、 查询,查询当前数字与集合中的数字的最大异或值,最大and值,最大or值【输入格式】第一行1个正整数Q表示操作次数接下来Q行,每行2个数字,第一个数字是操作序号OP(1,2),第二个数字是X表示操作的数字【输出格式】输出查询次数行,每行3个整数,空格隔开,分别表示最大异或值,最大and值,最大o...原创 2018-08-21 17:11:09 · 327 阅读 · 0 评论 -
快速幂取模详解
很多时候,当我们在做题时会遇到指数级的运算,那么一旦指数大了,运算结果就会非常大,导致电脑存储不下,一旦达到2^31这种时候就自然溢出了。那么取模就很重要了。这里的快速幂取模算法可以大幅优化时间和空间的复杂度。 首先了解快速幂取模算法的原理:积的取余等于取余的积的取余,意思就是(a*b)%c=((a%c)*(b%c))%c,在此基础上,对指数型的数据进行拆解合并,就是快速幂取模算...原创 2018-07-27 15:20:58 · 1116 阅读 · 0 评论 -
NOIP模拟 梦境(贪心)
内网传送门【题目分析】感觉和防晒霜一题差不多,所以考试的时候一直在想贪心,举反例把自己举死多次后老老实实打网络流的暴力去了qwq结果正解还是贪心hehe以每段区间的左端点作为关键字进行排序,对每一个点去考虑进行分配。肯定优先考虑先消失的区间,即右端点小的区间,所以开一个优先队列记录右端点,每次处理一个点时先将所有右端点已经在该点左侧的区间删掉,加入左端点在当前点左侧的区间,最后看优...原创 2019-02-18 16:47:10 · 161 阅读 · 0 评论 -
CF484D Kindergarten(贪心)
氵谷传送门【题目分析】很有意思的一道贪心,然而因为太菜了猜到结论自己把自己否了显然我们可以对每一个峰顶和谷底进行划分,然后每个峰顶一定会作正贡献,每个谷底一定会做负贡献,所以就比较左右两个数的贡献,由此得到dp方程:当a[i-2],a[i-1],a[i]单调时为上面的式子,否则为下面的式子。#include<bits/stdc++.h>using names...原创 2019-09-12 20:05:50 · 224 阅读 · 0 评论 -
【NOIP2018DAY1T3】【洛谷5021】 赛道修建(二分+贪心)
洛谷传送门【题目分析】感叹自己当年为何连二分都能打挂。。。首先最短路径最长,很容易想到二分,关键就是check的写法。正解是有点神仙的贪心,用dp[u]表示u的子树内未被选择的最大路径的长度,对于子节点v,如果满足dp[v]+w[u,v]>=mid cnt就加1,否则压入multiset中作为待选择路径。将未选择的路径排序,然后就是lowerbound找mid-len即可...原创 2019-09-14 09:57:17 · 197 阅读 · 0 评论 -
POJ2054 Color a Tree(贪心)
POJ传送门【题目分析】这是什么神仙贪心。。。。。。首先可以得到一个比较明显的性质,对于当前树中的最大点,在它的父亲被染色后一定会染它。那么对于染色序列中的三个点x,y,z,如果已知x,y是连续染色,那么就有两种情况:1)染色序列为x,y,z,代价为x+2y+3z2)染色序列为z,x,y,代价为z+2x+3y然后就是一个神仙操作,两边加上(z-y)再同时除以2,得到两个...原创 2019-09-28 10:10:42 · 244 阅读 · 0 评论 -
CF1053E Euler tour(构造)
传送门【题目分析】什么神仙题都拿来当T2。。。。。首先还是列出比较明显的性质:1.两个相同非零数之间的长度为奇数2.一头一尾非零但不相等无解3.一段区间如果已知数字互不相同,如果0的个数小于区间长度的一半,无解(即下去了上不来)4.子树区间要么完全包含要么不相交,相交不包含无解有以上几个性质就可以排除一些情况,然后是填数。对于当前处理的区间[L,R],对于区间中...原创 2019-10-06 10:52:03 · 230 阅读 · 0 评论 -
BZOJ1085 骑士精神(A*启发式搜索)
【题目描述】在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位。在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2,纵坐标相差为1的格子)移动到空位上。给定一个初始的棋盘,怎样才能经过移动变成如下目标棋盘:为了体现出骑士精神,他们必须以最少的步数完成任务。【输入格式】第一行有一个正整数T(T<=1...原创 2018-10-11 15:37:32 · 383 阅读 · 0 评论 -
NOIP模拟 棋盘问题(曼哈顿距离与切比雪夫距离)
【题目描述】小 O 对国际象棋有着浓厚的兴趣,因为他水平高超,每次人机对战他总是轻松获胜,所 以他决定自己跟自己下国际象棋。小 O 的棋盘非常大,达到了 1e9*1e9,现在他在棋盘上摆放了 n 个国王,并对你提出 了 q 次询问,每次询问指定一个坐标,问将所有国王从初始位置全部移动到这个坐标所需要 的最小步数是多少,询问之间相互独立,也就是说每次询问结束后国王会全部回到原来位置。注意...原创 2018-10-12 16:32:13 · 596 阅读 · 0 评论 -
Codeforces Round #536 C Lunar New Year and Number Division(贪心)
传送门【题目分析】哎哟第一场cf比赛又是延时又是unrated,qwq。仔细分析一下,,所以如果没有大小限制最小应是每组一个的和。但有这个大小的限制,那么肯定就直接贪心每组就两个,因为保证n为偶数所以可以分完。然后考虑如何分组,对于四个数a<=b<=c<=d,可以发现所以根据这个性质直接排序一大一小匹配即可。【代码~】#include<bi...原创 2019-01-31 22:37:32 · 183 阅读 · 0 评论 -
第一届“文翁杯”现场竞技赛 T4 文翁的难题(氵)
传送门【题目分析】啊呀这个卡精度也是难受,我的一血啊qwq应该不会想到高精度上去,毕竟这个太容易超时了。所以稍微转一下就可以知道可以把乘法改为同底数的对数的加减,然后两个数比较大小就行了。最后开long double才过qwq【代码~】#include<bits/stdc++.h>using namespace std;const int MAXN=1...原创 2019-01-29 18:29:48 · 128 阅读 · 0 评论 -
第一届“文翁杯”现场竞技赛 T2 蜀石经(优先队列+模拟)
传送门【题目分析】哇这个名字这的。。。。qwq,气球赛才308tql,垫底了啊。这道题n^2的暴力挺好想的,考试的时候先提交了一个玄学复杂度,但最高应该是n^2的程序,即先全部压进优先队列中,然后每次出队元素更新所有影响的元素再压回去就行了,最后应该是因为没卡所以过掉70pts。其实正解也很简单,记录一个时间戳以更新答案,每次处理完一个人后将所有等待的压入队列更新答案就行了。记...原创 2019-01-29 18:25:41 · 236 阅读 · 0 评论 -
洛谷3329 【ZJOI2011】最小割(最小割树+分治)
传送门【题目分析】这种出题人。。。。emmm。。。。一图以蔽之。然后。。。。。拖出去阿了我嘞个去图论题你连条边都不给我让我怎么玩????这是我见过最牛逼的图论题了。。。调了一个下午+一个晚上硬是调不出来,蛋疼。。。。首先这道题肯定不会傻fufu的跑n^2次最小割,因为。。。算了直接开花。但不用最小割。。。emmm。。。反正我也不会啊,所以就考虑减小最小割次数...原创 2019-01-27 21:28:40 · 292 阅读 · 0 评论 -
洛谷3425 【POI2005】KOS-Dicing(最大流+二分)
传送门【题目分析】真的跪了qwq。。。为什么数组开小他竟然TLE。。。。我还以为是代码问题呢结果。。。。(很脏的话)既然题目都要求你去找最多的最少,那肯定是二分答案了。关键在于怎么进行check。假设我们现在二分出一个x表示赢的最多的赢了x次,那么我们像所有玩家连一条容量为x的边对赢的次数的限制,每场比赛的两个人向这场比赛连容量为1的边,比赛向汇点连容量为1的边,这样就限制了一...原创 2019-01-26 16:02:36 · 242 阅读 · 0 评论 -
洛谷4192 旅行规划(分块+凸包)
传送门【题目分析】常数巨大警告qwq。这道题其实题意很简单,维护一个序列,支持区间加,区间查询最大前缀和。因为是查询前缀和所以直接维护一个区间和,区间加就变成了区间加首项为k、公差为k的等差数列。因为一个等差数列+一个等差数列还是一个等差数列,所以这样做是正确的。所以就有两个选择:线段树和分块,但考虑到线段树最后合并效率低下,所以选分块(结果不知道为啥我的写法常数贼大)...原创 2019-01-24 16:51:50 · 389 阅读 · 0 评论 -
洛谷2839 【国家集训队】middle(主席树+二分)
传送门【题目分析】氵谷第二道黑题唉qwq思想很巧妙,对于一个数x,将区间[l,r]中比他大的数赋为1,比他小的数赋为-1,那么判断一个数是否大于等于中位数就等价于了区间和是否大于等于0。所以这个性质就可以应用到二分答案上,每次check(mid)的时候直接判区间和是否大于等于0。然后考虑如何维护这个区间和,首先发现可以将所有的1和-1的主席树建出来,因为后一个主席树只会在前一个...原创 2019-01-24 11:06:07 · 190 阅读 · 0 评论 -
洛谷4135 作诗(分块)
传送门【题目分析】当你点开这篇博客的时候,请做好心理准备。因为博主是卡常卡过去的+数据很水。虽然题面给你c<=1e5,但亲测达不到(因为我用short暴力碾过去了)所以。。。。。人还是要有梦想的!咳咳,不扯那么多,讲讲我的做法(时间其实消耗在了memset上)跟网上的分块差不多,都是直接暴力维护,每次查询,整块用前缀和,内部直接大力搜。看了看同校AC代码,应该...原创 2019-01-23 21:35:12 · 240 阅读 · 0 评论 -
洛谷3971 【TJOI2014】Alice and Bob(拓扑排序+贪心)
传送门【题目分析】a数组就是起限制作用,由a数组我们可以推断出某些元素之间的大小关系。很明显b数组就是将原数组倒着求一遍a数组,所以考虑贪心。首先根据贪心可以知道,每个a[i]一定会连向最近的a[i]-1,由此建立DAG。然后考虑编号分配,就是以编号为优先级做一次拓扑排序即可。最后按题意求一次b数组即可。至于贪心正确性。。。emm,不会啊。感性理解一下吧。【代码...原创 2019-01-20 21:03:37 · 268 阅读 · 0 评论 -
BZOJ3343 教主的魔法(分块)
因为没有权限号所以挂洛谷链接【题目分析】发现很久没动过分块了,找几道题来做一做。。。。分块好题,因为涉及区间加,那么开一个标记数组,类似于线段树的lazy标记。询问区间大于等于k的数的个数,同一块内直接暴力统计,整块二分求解(二分永远最玄学啊。。。)区间加,块内暴力加,整块就在标记数组上打标记即可。【代码~】#include<bits/stdc++.h>...原创 2019-01-19 09:45:07 · 107 阅读 · 0 评论 -
CF989E A Trance of Nightfall(概率+矩阵快速幂优化+倍增)
CF传送门洛谷传送门【题目分析】在zxy大佬的讲解下终于懂了这道题的做法了qwq。。。首先根据题意,出发点不一定在特殊点上,但第一次操作后,之后所有的操作都是在特殊点上,所以先考虑从线上出发的最大概率,再加一步即可得到从点出发的最大概率,二者取较大值即可。记数组f[i][j][k]表示从i点走k步到j点的概率,所以转移方程就出来了:然后发现这个形式其实就是矩阵乘法,所以...原创 2018-11-09 08:56:00 · 296 阅读 · 0 评论 -
NOIP模拟 分糖果(贪心)
就是这道题【题目分析】竟然又是一道氵谷原题。。。。。。。关于排序的正确性以及正确的排序见这篇博客【代码~】#include<bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN=5e4+10;int T,n;struct student{ LL a,b,c,x; ...原创 2018-11-07 16:52:22 · 758 阅读 · 0 评论 -
NOIP模拟 数独(大模拟)
传送门【题目分析】道理我都懂。。。。。。但写错那么大一个地方竟然都有70pts。。。。。mmp调错调到爽按题意模拟即可,没什么思维难度【代码~】#include<bits/stdc++.h>using namespace std;int sd[101][10][10];int jgg[101][10][10];int q;char s[15];in...原创 2018-11-07 15:40:21 · 232 阅读 · 0 评论 -
POI2010 Mos-Bridges(二分答案+欧拉回路+网络流)
【题目描述】YYD 为了减肥,他来到了瘦海,这是一个巨大的海,海中有 n nn 个小岛,小岛之间有 m mm 座桥连接,两个小岛之间不会有两座桥,并且从一个小岛可以到另外任意一个小岛。现在 YYD 想骑单车从小岛 1 11 出发,骑过每一座桥,到达每一个小岛,然后回到小岛 1 11。霸中同学为了让 YYD 减肥成功,召唤了大风,由于是海上,风变得十分大,经过每一座桥都有不可避免的风阻碍 YYD...原创 2018-11-07 08:23:22 · 388 阅读 · 0 评论 -
NOIP模拟 小C的数组(二分答案+DP验证)
qwq【题目分析】qwq考完发现做法已经接近了。。。。。DP太差了(考场还想区间DP。。。蓝瘦)首先求最大值最小,方法很明显就是二分,然后考虑check函数。很明显的一点,对于两点i,j,如果不需要修改,那么他们的计算结果一定小于等于二分值mid*(j-i),所以我们从最坏情况开始向前枚举。那么最坏情况就是修改所有点,我们记录dp[i]表示前i个全部修改,后i+1~n的点合法最小代...原创 2018-10-24 16:13:01 · 166 阅读 · 0 评论 -
POJ2110 Moutain Walking(BFS+二分答案)
传送门啦啦啦【题目分析】要让路径上最大最小差最小(绕口令~),很明显,二分答案即可。关键在于check函数怎么写:首先我们确定上下界,但如果我们去二分差值,好像没有办法在短时间内检验,所以我们去二分这个上界,枚举下界,再带入图中检验。我们发现最大的高度也不会超过110,所以我们可以枚举,而且不会爆。路径搜索与普通的一样,我采用了bfs,走之前要判断一下map[1][1]是否在上...原创 2018-10-18 08:56:26 · 135 阅读 · 0 评论 -
BZOJ2654 tree(二分+最小生成树)
传送门【题目分析】总感觉题目似曾相识的样子qwq。其实二分的思路还是很好想的,初始状态无非就是在生成树中的白边的数量>需要的数量和<需要的数量,前者需要减少白边数量加黑边,后者相反。减少白边相当于将白边的权值整体加一个值,增加就相当于减少一个值,就这样做最小生成树,最后因为恰好是need条白边所以权值一定就是(生成树权值-need*整体加的值)【代码~】#in...原创 2019-02-01 20:10:36 · 243 阅读 · 0 评论