摘要: 题面: 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻着关押applepi的监狱的所在地。突然,眼前一道亮光闪过。“我,Nizem,是黑魔法圣殿的守卫者。如果你能通过我的挑战,那么你可以带走黑魔法圣殿的地图……”瞬间,队员们被传送到了一个擂台上,最初身边有一个容量为K的包包。 擂台 阅读全文
posted @ 2019-01-25 22:29 一只不咕鸟 阅读(271) 评论(0) 推荐(0) 编辑
摘要: "修剪草坪" 这道题我们可以换一个角度思考,把题意看成: 我们找到哪些奶牛不选,且满足每两个相邻的不选的奶牛之间不能间隔超过k,当这些不选的奶牛的贡献总和最低时,我们选的奶牛贡献就最高了! 这个过程用单调队列优化一下即可,然而博主太弱了,就用了个优先队列: $code$: cpp include i 阅读全文
posted @ 2019-01-25 22:23 一只不咕鸟 阅读(262) 评论(0) 推荐(0) 编辑
摘要: $ solution $ : 这道题做法很巧妙,需要对位运算有足够了解: 1. $ ( a $ & $ b ) $ $ + $ $ ( a $ | $ b ) $ $ = $ $ a+b $ ,所以有 $ Σb+Σc=2nΣa $ 2. 看下面代码里的数位优化,可以将复杂度由 $ O(n^2) $ 阅读全文
posted @ 2019-01-25 22:10 一只不咕鸟 阅读(236) 评论(0) 推荐(1) 编辑
摘要: "CF359B Permutation" $ solution: $ 作为一道构造题,这题也十分符合构造的一些通性 (找到一些规律,然后无脑循环)。 1. 构造一个长度为 $ 2n $ 的排列 $ a $ 2. $ 0≤2k≤n $ 看到这样两个限制条件,我们想不找出规律都难啊!在自己手推一下真不难 阅读全文
posted @ 2019-01-24 21:59 一只不咕鸟 阅读(226) 评论(0) 推荐(0) 编辑
摘要: "CF989C A Mist of Florescence" solution: 作为一道构造题,这题确实十分符合构造的一些通性 (我们需要找到一些规律,然后无脑循环)。个人认为这题规律很巧妙也很典型: 1. n,m不能超过50 2. 1 using namespace std; int main( 阅读全文
posted @ 2019-01-24 21:42 一只不咕鸟 阅读(253) 评论(0) 推荐(0) 编辑
摘要: solution: 在进行01背包转移时,同时转移维护多个次优解即可。合并时要用到归并思想(不能二分插入)。 code: cpp include include include include include include include include include include inclu 阅读全文
posted @ 2019-01-24 17:20 一只不咕鸟 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目描述 "[CEOI2015 Day2]世界冰球锦标赛" 译自 CEOI2015 Day2 T1「Ice Hockey World Championship」 今年的世界冰球锦标赛在捷克举行。Bobek 已经抵达布拉格,他不是任何团队的粉丝,也没有时间观念。他只是单纯的想去看几场比赛。如果他有足够 阅读全文
posted @ 2019-01-23 20:25 一只不咕鸟 阅读(275) 评论(0) 推荐(0) 编辑
摘要: solution: 这一题是比较难实现的双向搜索题:(字符串+双向搜索+hash记忆化) 我们可以先把K的前半部分枚举出来,并将得出的所有结果和题目给的n个数的每一个数的前半部分都比对一遍,得到它和每一个数有几位相同,并hash存到map中去。 然后我们枚举K的后半部分,并将得出的所有结果和题目给的 阅读全文
posted @ 2019-01-23 16:56 一只不咕鸟 阅读(208) 评论(1) 推荐(0) 编辑
摘要: solution 一道非常经典的双向搜索题目,先将前3个未知数枚举一遍得到方程的前半部分所有可能的值, 取负 存入第一个队列中再将后3个未知数枚举一遍,存入第二个队列中。这样我们只要匹配两个队列中相同的元素即可使方程为零。方法:将两个队列排序,用尺取法+乘法原理扫一遍即可。 = code: cpp 阅读全文
posted @ 2019-01-23 15:06 一只不咕鸟 阅读(212) 评论(0) 推荐(0) 编辑
摘要: solution: 首先我们根据一条路径上不能有两个相同颜色的格子可以得出: 对于两个格子 $ (x\_1 , y\_1 ) $ 和 $ (x\_2 , y\_2 ) $ 必须满足: $ x\_1y\_2 $ $ x\_1 x\_2 and y\_1 (n,n) (1,2) (2,1) (n,n 1 阅读全文
posted @ 2019-01-23 08:15 一只不咕鸟 阅读(205) 评论(0) 推荐(0) 编辑
摘要: "[HNOI2013]比赛" 题目描述 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛。此次联 赛共N支球队参加,比赛规则如下: (1) 每两支球队之间踢一场比赛。 (2) 若平局,两支球队各得1分。 (3) 否则胜利的球队得3分,败者不得分。 尽管非常遗憾没有观赏到精彩的比赛 阅读全文
posted @ 2019-01-22 21:55 一只不咕鸟 阅读(628) 评论(2) 推荐(0) 编辑
摘要: 题目描述 • 一个 4 × 4 的 0/1 矩阵 • 每次可以交换相邻两个元素 • 求从初始状态到目标状态的最小交换次数 输入格式 前四行,每行一个长为 4 的 0/1 字符串,描述初始状态。 后四行,每行一个长为 4 的 0/1 字符串,描述目标状态。 输出格式 一行一个数,表示最小交换次数。 样 阅读全文
posted @ 2019-01-22 21:36 一只不咕鸟 阅读(178) 评论(0) 推荐(0) 编辑
摘要: "题目" You are given an array with n integers a1, a2, ..., an, and q queries to answer. Each query consists of four integers l1, r1, l2 and r2. Your tas 阅读全文
posted @ 2018-12-15 11:51 一只不咕鸟 阅读(294) 评论(0) 推荐(1) 编辑
摘要: 题目描述 Before the start of contest, there are n ICPC contestants waiting in a long queue. They are labeled by 1 to n from left to right. It can be easil 阅读全文
posted @ 2018-12-15 11:29 一只不咕鸟 阅读(278) 评论(1) 推荐(1) 编辑
摘要: $ Noip 2018 $ 游记: $ by $ 瓶中水 前言: 内心还是有点小惶恐的,虽然停课了一个多月,但毕竟才学OI四个月。 不过被高二连续虐了一个月这苦也不能白受,总得搞个奖回来的 (于是乎,考前一天疯狂背 $ emacs $ 的配置~~(然而考场还是咕咕了~~ $ Day1 $ : 考前: 阅读全文
posted @ 2018-11-14 13:52 一只不咕鸟 阅读(269) 评论(1) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-11-09 17:07 一只不咕鸟 阅读(14) 评论(1) 推荐(1) 编辑
摘要: 题解 P1525 【关押罪犯】:种类并查集 前言: 在数据结构并查集中,种类并查集属于扩展域并查集一类。 比较典型的题目就是: "食物链" (比本题难一些,有三个种类存在) 首先讲一下本题的贪心,这个是必须要懂的。我们假设最后Z 市长看到的那个冲突事件的影响力为 x (也就是有一对仇恨值为 x 的罪 阅读全文
posted @ 2018-11-06 20:20 一只不咕鸟 阅读(269) 评论(0) 推荐(1) 编辑
摘要: 前言: 对于这类带环的图,一般记忆化搜索不能很好的对所有遍历的边进行更新取值。因为环上的点可以相互到达,所以他们的答案因当是同步更新的,而dfs一旦你回溯完环上某个点就不会在更新这个点的答案了,做不到同时更新。 所以这类题dfs有后效性,于是我们打算消除这个后效性:我们从编号最大的点开始枚举,这样d 阅读全文
posted @ 2018-11-02 21:29 一只不咕鸟 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 这一题非常水,因为每个点的下一个目的地是唯一的,可以考虑对每一个还为访问过的点dfs直接找出所有的环,同时更新每一个点能去的点的数量(即答案)。 我们dfs时找到环上已经遍历过的一个点,用当前的dfn(即节点深度来算出环的大小,并在回溯时更新环上所有点的值(都是环的大小),知道回溯完整个环为止。如果 阅读全文
posted @ 2018-10-30 21:56 一只不咕鸟 阅读(246) 评论(0) 推荐(1) 编辑
摘要: 本萌新第一次发布题解,若有不严谨处请谅解。 我看了前面几位大佬的手笔,表示自己还是比较钟爱桶排序的。它非常简易直接,还省时间,尤其对于这类题目占用的的空间也很小。 我们看到题目下面的说明:xi using namespace std; int c[101];//定义一百个桶子,c[i]代表用i个力气 阅读全文
posted @ 2018-10-30 20:24 一只不咕鸟 阅读(549) 评论(0) 推荐(2) 编辑
摘要: 本萌新又来发布题解了 这一题,我们用搜索染色 在此提供一简易代码: 预处理: 搜索函数: 输入: 全方位搜索: cpp while(d){ i=c[d][0]; j=c[d][1]; for(o=1;o using namespace std; int c[10000][2],d=0,x[9]={0 阅读全文
posted @ 2018-10-30 20:23 一只不咕鸟 阅读(215) 评论(0) 推荐(1) 编辑
摘要: 看了前面大佬的代码,发现这道题的解题思路都大同小异。 首先肯定要定义一个变量累加方案数量,因为方案数量要最先输出,所以所有方案要先储存下来。个人不喜欢太多数组,就只定义一个字符串。 然后我们发现只有10种配料,每中在1~3以内,我们便可以模拟一下四进制(4^9==262144,在int范围内)。 累 阅读全文
posted @ 2018-10-30 20:23 一只不咕鸟 阅读(289) 评论(0) 推荐(1) 编辑
摘要: 桶排序大法好! 每次一看到这种范围小的题,本萌新就想用桶排。 因为题目中的m,n都小于1000,我们就可以定义两个1000的数组,表示每一行或每一列可以隔开几对讲话的童鞋。 然后再定义两个1000的数组用来对前两个数组的值进行桶排序,再用通道总数从大到小减下去直到为零,记录最后这个数,凡是能隔开这么 阅读全文
posted @ 2018-10-30 20:21 一只不咕鸟 阅读(340) 评论(0) 推荐(1) 编辑
摘要: 指针大法好!! 看见前面大佬都用广搜,我推荐一款指针加深搜: 这一题我们可以定义一个指针数组,把能相互到达的格子的指针指向同一个地址,这样就能同时改变多个格子的到达数。 主要步骤: cpp int m,n,tot[100000],c[100000],d[100000];//c,d数组为 m 的横纵坐 阅读全文
posted @ 2018-10-30 20:21 一只不咕鸟 阅读(154) 评论(0) 推荐(1) 编辑
摘要: 如果你想不耗费脑力做出这个题目,往下看: 本萌新看到这个题目,想到了乘法法则,题目中左右方向要判断两次,很耗脑力,和乘法中的正负号判断非常像。 抽象一点:这个人向内向外就是乘法中括号外的正负号,他的左右方向是括号内的正负号,所以我们以singer为标准,每个人的 0 (朝内)为 1 ,每个人的 1 阅读全文
posted @ 2018-10-30 20:20 一只不咕鸟 阅读(239) 评论(0) 推荐(1) 编辑
摘要: 我一开始还没看懂非正规数字的意义,以为那里写的单词不算,蒙了好久,而且这题非常考验仔细程度,一不小心就RE,WA。 嗯,好像讲了些废话,那我们看看思路,我的做法和前面的大佬们有些不同,因为这题只有六个字母,很多人都是单个判断它们是不是26种(one~twenty)情况中的一种,但是如果数据给的多了( 阅读全文
posted @ 2018-10-30 20:18 一只不咕鸟 阅读(579) 评论(0) 推荐(2) 编辑
摘要: 传纸条详解: 蒟蒻最近接到了练习DP的通知,于是跑来试炼场看看;发现有点难(毕竟是蒟蒻吗)便去翻了翻题解,可怎么都看不懂。为什么呢?蒟蒻发现题解里都非常详细的讲了转移方程,讲了降维优化,但这题新颖之处在于它走了两次,可大家貌似都没有重点去讲如何去重啊! 虽然去重很简易,限制一个for循环的范围就行了 阅读全文
posted @ 2018-10-30 20:16 一只不咕鸟 阅读(249) 评论(0) 推荐(1) 编辑
摘要: 不用快速幂,压位出奇迹! 本人是个蒟蒻,不太熟悉快速幂,这里给大家介绍一种压位大法。 让我们来分析一下题目,第一位是送分的,有一个专门求位数的函数:n log10(2)+1。 然后题目中p=20){ k=0; for(i=1;i=1){//注意:大于五百位也有可能有前导零 for(j=1;j=1;i 阅读全文
posted @ 2018-10-30 20:15 一只不咕鸟 阅读(297) 评论(0) 推荐(1) 编辑
摘要: 矩阵乘法 + 快速幂优化递推: 看到这个题目我们不难想到递推,题干中说3个连续的A出现在序列中是不合法的,所以可以分为三种情况: (1):序列前只有一个A,如:BA,BBA,BABA。 (2):序列前有两个A,如:BAA,BBAA,BABAA。 (3):序列前没有A而是B,如:BB,AB,AABAA 阅读全文
posted @ 2018-10-30 20:14 一只不咕鸟 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 这题其实并不难,重点在你对回文数的了解,根本就不需要高精度。 打个比方: 对于一个形如 ABCDEFGH 的整数 有且仅有一个比它大的最小回文数 有且仅有一个比它小的最大回文数 而整数 ABCDDCBA 一定是其中之一 ~ 如:99299是比99200大的最小回文数 10101 是比 10201 小 阅读全文
posted @ 2018-10-30 20:13 一只不咕鸟 阅读(700) 评论(0) 推荐(0) 编辑
摘要: 矩阵快速幂解法: 这是一个类似斐波那契数列的矩乘快速幂,所以推荐大家先做一下下列题目:(会了,~~差不多就是多倍经验题了~~) 注:如果你不会矩阵乘法,可以了解一下 "P3390" 的题解 "P1939 【模板】矩阵加速(数列)" "P3390 【模板】矩阵快速幂" "P1306 斐波那契公约数" 阅读全文
posted @ 2018-10-30 20:09 一只不咕鸟 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 高斯消元 + bitset 简介: 高斯消元其实就是以加减消元为核心求唯一解。这道题还是比较裸的,可以快速判断出来。我们将每一只虫子看作一个未知数,这样根据它给出的 m 组方程我们可以高斯消元得出每一只虫子的归属地。如果你还不清楚高斯消元的原理可以移步 "此处" 如果你只是以为这是一道板子题自信提交 阅读全文
posted @ 2018-10-29 20:05 一只不咕鸟 阅读(260) 评论(0) 推荐(1) 编辑
摘要: 考场配置: 语句解释: 注意事项: 1. 不要弄太多配置,考场容易码错 2. 一般考试会提前20分钟入场,这段时间可以码配置(如果管得比较松 平时码代码添加的一些小配置: 其他: 提醒一下:语句要去掉前面两个分号使用 以上代码直接复制到emacs配置可以正常运行! 阅读全文
posted @ 2018-10-29 16:55 一只不咕鸟 阅读(831) 评论(0) 推荐(2) 编辑
摘要: 题面: "UVA1386 Cellular Automaton" 矩阵乘法+快速幂解法: 这是一个比较裸的有点复杂需要优化的矩乘快速幂,所以推荐大家先做一下下列洛谷题目练练手: (会了,~~差不多就是多倍经验题了~~) 注:如果你还不会矩阵乘法,可以移步了解一下 "P3390" 的题解 "P1939 阅读全文
posted @ 2018-10-29 16:41 一只不咕鸟 阅读(291) 评论(1) 推荐(1) 编辑