![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
信息技术
文章平均质量分 66
LF_本心cy
时间好快好快,转眼间,什么都变了。物是人非,一切都终究归零。
展开
-
【NOIP2015模拟10.28B组】终章-剑之魂
首次写这解析题目介绍: 【背景介绍】 古堡,暗鸦,斜阳,和深渊…… 等了三年,我独自一人,终于来到了这里…… “终焉的试炼吗?就在这里吗?”我自言自语道。 “终焉的试炼啊!就在这里啊!”我再一次自言自语道。 “这背后可能有那个东西吗?”我自言自语道。 “这背后一定有那个东西呢!”我又一次自言自语道。 我沉默着,踏上黑漆漆的索桥,小心翼翼地,拿出锋利的注入我灵魂的双剑…… “原创 2016-03-09 20:37:44 · 493 阅读 · 0 评论 -
借教室
线段树+lazy题目介绍:在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来n天的借教室信息,其中第i天学校有ri个教室可供租借。共有m份订单,每份订单用三个正整数描述,分别为dj, sj, tj ,表示某租借者需要从第sj原创 2016-03-21 20:26:42 · 645 阅读 · 1 评论 -
总结
总结说起来这个所谓的总结已经是好久没有写了,平时一直在改题,有时候会适当弄几个题目出来,不过总结倒是基本没有写。没办法,智商较低,改题速度较慢,抽不出时间了。(借口?!)1.最近两个月多,改题速度变得很慢,一方面是因为后来的题目越来越难,改出来所学要的时间越来越久。又有一方面是自己的基础是不牢固的,打出了代码总会有这个那个的错误,正确率偏低。死在一个大数据上时,都不知道如何改了。 2.做完题目后,原创 2016-04-28 20:57:31 · 425 阅读 · 0 评论 -
封印一击
题目“圣主applepi于公元2011年9月创造了Nescafe,它在散发了16吃光辉之后与公元2011年11月12日被封印为一颗魂珠,贮藏于Nescafe神塔之中。公元2012年9月,圣主带领四大护法重启了Nescafe,如今已经是Nescafe之魂的第30吃传播了。不久,它就要被第二次封印,而变成一座神杯。。。”applepi思索着Nescafe的历史,准备着第二次封印。 Nescafe由n种原创 2016-05-28 15:45:44 · 802 阅读 · 0 评论 -
能量获取
题目“封印大典启动,请出Nescafe魂珠!”随着圣主applepi一声令下,圣剑护法rainbow和魔杖护法freda将Nescafe魂珠放置于封印台上。封印台是一个树形的结构,魂珠放置的位置就是根节点(编号为0)。还有n个其他节点(编号1-n)上放置着封印石,编号为i的封印石需要从魂珠上获取Ei的能量。能量只能沿着树边从魂珠传向封印石,每条边有一个能够传递的能量上限Wi,魂珠的能量是无穷大的。作原创 2016-05-28 15:06:28 · 458 阅读 · 0 评论 -
过河
题目在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,……,L(其中L是桥的长度)。坐标为0的点表示桥的起点,坐标为L的点表示桥的终点。青蛙从桥的起点开始,不停的向终点方向跳跃。一次跳跃的距离是S到T之间的任意正整数(包括S,T)。当青蛙原创 2016-06-26 20:48:20 · 695 阅读 · 0 评论 -
现世斩
题目时限2500ms,空限128MB 异变又发生了,魂魄妖梦作为幻想乡的一名自(cheng)机(guan),主动前去解决异变。 我们用一个n个点、m条边的无向联通图来表示妖梦可选择的路线,妖梦从白玉楼出发,白玉楼被视为编号为1的点,编号为2——n的点是幻想乡的村庄,其中编号为n的村庄发生了异变。 每条边上可能会有一些妖怪袭击人类(然而妖梦是半人半灵),所以对于第i条边,妖梦需要t[i]分钟通过原创 2016-07-09 20:07:12 · 454 阅读 · 0 评论 -
最近公共祖先学习小结1——在线倍增
学习时看网上资料空讲,难以理解,还是自己动手画一画,才好理解。这里记录下来,以防自己过久了忘记。切入正题先了解个概念: 最近公共祖先(Lowest Common Ancestors)(简称LCA),简单讲就是指在树上几个节点共有的祖先节点中,最近的那一个。 例如:3祖先(父亲)节点是2,1、4的祖先(父亲)节点是6,2,1,那么2,1就是这两个点的公共祖先节点,而2离这两个最近,所以2是他们的L原创 2016-07-10 11:13:46 · 573 阅读 · 0 评论 -
装饰大楼 NOIP2015模拟11.3
上升子序列问题其实和这东西只是扯上边而已,完全没有考算法…………..———————————–切入正题————————-题目:际信息学奥林匹克竞赛将要在日本召开了。为了欢迎全世界的选手们,委员会决定将从机场到宿舍沿路的大楼装饰起来。根据某著名设计师的设计,做装饰的大楼从机场到宿舍的方向必须高度严格递增。也就是说,如果做装饰的大楼从机场开始高度顺次为hi,那么必须满足hi是递增的。 为了使尽量多的装饰原创 2016-04-22 20:32:21 · 586 阅读 · 0 评论 -
种树
题目一条街的一边有几座房子。因为环保原因居民想要在路边种些树。路边的地区被分割成块,并被编号为1..n。每个块的大小为一个单位尺寸并最多可种一棵树。每个居民想在门前种些树并指定了三个号码b,e,t。这三个数表示该居民想在b和e之间最少种t棵树。当然,b<=e,居民必须保证在指定地区不能种多于地区被分割成块数的树,即要求t<=e-b+1。允许居民想种树的各自区域可以交叉。出于资金短缺的原因,环保部门请原创 2016-06-30 15:17:28 · 855 阅读 · 0 评论 -
树[NOIP2016模拟]
题目 样例输入: 5 5 1 2 1 3 2 4 2 5 Q 2 C 2 Q 2 Q 5 Q 3 样例输出: 1 2 2 1数据范围: 剖解题目:给一棵树,每次会有两个操作,一个是在某一个结点上打下标记,另一个是询问某一个结点它最近的打了标记的祖先。思路:暴力做法是O(1)查询然而却是接近O(n)修改,自然就能朝着log级别的方法去想,就会涉及到一些数据结构原创 2016-07-12 17:55:35 · 260 阅读 · 0 评论 -
线段树学习小结
线段树,嗯,是个好东西,可以高效率解决一些区间问题,一般来讲,对于这些问题,RMQ的效率应该是没有线段树高吧?(我不会RMQ,说错别打我(o´・ェ・`o))线段树是一棵完全二叉树,主要用于记录区间,执行区间加减,求和,查询最大最小等一系列操作,时间复杂度一般实在loglog级别的。(以下用最大值为例) 每个区间为left~right。 ———————–主要操作————————– 一:建(造线段原创 2016-06-30 20:55:20 · 327 阅读 · 0 评论 -
单调队列学习小结
单调队列? 哦。 就是一个具有单调性的队列。(什么?你不知道“单调性”和“队列”是什么意思?恭喜,以前我也不知道。) 单调队列自然就有着队列的一切性质+单调的性质。所以单调队列自然有个头指针h和尾指针t,且因为具有单调性质,队列里的每一个数是单调递增(递减,不下降,不上升……..)。 有个不同点就是单调队列只能从尾部进,但头部尾部都可以出,这是一个与队列的区别。 单调队列其实并不常用,但却原创 2016-07-03 15:22:19 · 371 阅读 · 0 评论 -
烽火传递
题目烽火台又称烽燧,是重要的军事防御设施,一般建在险要或交通要道上。一旦有敌情发生,白天燃烧柴草,通过浓烟表达信息;夜晚燃烧干柴,以火光传递军情,在某两座城市之间有n个烽火台,每个烽火台发出信号都有一定代价。为了使情报准确地传递,在连续m个烽火台中至少要有一个发出信号。请计算总共最少花费多少代价,才能使敌军来袭之时,情报能在这两座城市之间准确传递。 样例输入: 第一行:两个整数N,M。其中N表示原创 2016-07-03 16:05:43 · 906 阅读 · 0 评论 -
猴子
题目一个猴子找到了很多香蕉树,这些香蕉树都种在同一直线上,而猴子则在这排香蕉树的第一棵树上。这个猴子当然想吃尽量多的香蕉,但它又不想在地上走,而只想从一棵树跳到另一棵树上。同时猴子的体力也有限,它不能一次跳得太远或跳的次数太多。每当他跳到一棵树上,它就会把那棵树上的香蕉都吃了。那么它最多能吃多少个香蕉呢? 样例输入: 输入第一行为三个整数,分别是香蕉树的棵数N,猴子每次跳跃的最大距离D,最多跳跃原创 2016-07-04 09:13:42 · 718 阅读 · 0 评论 -
二叉树
题目在一个无穷的满二叉树中,有以下几个特点: (1) 每个节点都有两个儿子——左儿子和右儿子; (2) 如果一个节点的编号为X,则它的左儿子编号为2X,右儿子为2X+1; (3) 根节点编号为1。 现在从根结点开始走,每一步有三种选择:走到左儿子、走到右儿子和停在原地。 用字母“L”表示走到左儿子,“R”表示走到右儿子,“P”表示停在原地,用这三个字母组成的原创 2016-07-14 19:40:15 · 375 阅读 · 0 评论 -
猴子摘桃
题目动物园内最受欢迎就是猴子了,因为它们除了能爬能跳外还会很多技能。其中A类猴子特别擅长爬树摘桃,而B类猴子擅长把桃子掰成两半。 A类猴子有N只,编号为1到N,B类猴子有M只,编号为1到M。A类猴子中的第K只摘到第一个桃子需要花费A_k秒,此后每B_k秒就能摘到桃子;B类猴子中的第K只掰开第一个桃子需要花费C_k秒,此后每D_k秒就能掰开一个桃子。 不幸的是,B类猴子非常具有侵略性,两种原创 2016-07-14 19:50:10 · 980 阅读 · 0 评论 -
修路【NOIP2016提高组模拟】
题目 样例输入: 3 3 1 2 3 1 2 21 1 3 21 2 3 22 样例输出: 34数据范围: 解法:很裸的MST了,每条边上的值减去相连的两个点的值作为该边的值,然后直接MST了。代码:#include<cstdio>#include<algorithm>#include<cstring>#include<cstdlib>#define fo(i,a,原创 2016-07-16 11:25:50 · 442 阅读 · 0 评论 -
计数【NOIP2016提高A组模拟7.15】
题目 样例输入: 2 10 样例输出: 90数据范围: 剖解题目:题目说的很明了了。思路:求方案数,一般会设计道dp,规律之类的。解法:数位DP,设f[i][j]表示当前到了第i位,这一位的数字是j的方案数。 自然有:f[i][j]=f[i-1][l]+f[i][j]。(0<=l < k)且(l<>0 and j<>0). 看到这位数,很明显的高精度了。 然而单纯的高精加速度原创 2016-07-16 11:39:32 · 350 阅读 · 0 评论 -
颜料大乱斗【NOIP2016提高A组模拟7.15】
题目 样例输入: 2 2 4 C 1 1 2 P 1 2 C 2 2 2 P 1 2 样例输出: 2 1数据范围: 剖解题目:给一串初始值相同的数,每次操作将一段区间内的数修改成另一个数,中途穿插询问一段区间内数字的个数。思路:明显的区间修改询问,就是线段树咯。解法:1.注意到颜色的种数小于等于30种,我们可以在线段树里开三十个数组表示这段区间的数字情况,然后每次修改时暴原创 2016-07-16 15:28:50 · 492 阅读 · 0 评论 -
树状数组学习小结
BIT(树状数组),很强大,主要体现在时间,空间,编程复杂度都要比segmen tree(线段树)小,缺点就是适用范围比segmen tree小,也就是说它能解决的问题线段树一定能够解决。 搞了我一天,才终于搞会了树状数组以及一些变形的用法。 在这里推荐一片我认为讲的比较清楚的:(http://wenku.baidu.com/link?url=91qLGMGUKpOaaaRPjjY3l_axRB原创 2016-07-06 16:17:26 · 327 阅读 · 0 评论 -
寻找【NOIP2016提高A组模拟7.17】
题目:Bob和Alice出去度蜜月,但Alice不慎走失,Bob在伤心过后,决定前去寻找Alice。 他们度蜜月的地方是一棵树,共有N个节点,Bob会使用下列DFS算法对该树进行遍历。starting_time是一个容量为n的数组current_time = 0dfs(v): current_time = current_time + 1原创 2016-07-17 21:31:44 · 410 阅读 · 0 评论 -
锦标赛【NOIP2016提高A组模拟7.17】
题目:403机房最近决定举行一场锦标赛。锦标赛共有N个人参加,共进行N-1轮。第一轮随机挑选两名选手进行决斗,胜者进入下一轮的比赛,第二轮到第N-1轮再每轮随机挑选1名选手与上一轮胜利的选手决斗,最后只剩一轮选手。第i名选手与第j名选手决斗,第i名选手胜利的概率是a[i][j]. 作为一号选手的富榄想知道如何安排每轮出场的选手可以使得他获胜的概率最大,并求出这个最大概率。 样例输入: 第一个一原创 2016-07-17 21:52:19 · 353 阅读 · 0 评论 -
KMP算法学习小结
晕,弄了一上午总算是搞懂了kmp的原理了,代码虽然短,但要理解好真心是蛋疼啊! 其实网上的那些什么“彻底弄懂kmp算法”什么的,感觉讲的好生涩,对于一个学渣来讲还真是难懂。 所以这里推荐一篇,自认为这一篇是最好懂的了。 链接:(http://kb.cnblogs.com/page/176818/)其实,kmp的核心并不是这整一套算法,而是这套算法中的一个重要部分。毕竟还有更牛的叫“Boyer原创 2016-06-28 15:42:19 · 603 阅读 · 0 评论 -
逆序对
学了树状数组后,突然想到了这个逆序对,我也就顺便记了下来,以防以后忘掉后不知所措。(。・・)ノ逆序对:一个序列a中,如果有i < j&&a[i]>a[j],那么这就是一个逆序对。 那么如何求一个序列中逆序对的个数?o(^▽^)┛基本方法:n2n^2的两重循环,暴力寻找前面比当前位置大的数。 当然,这是最蠢的方法- -|||归并排序:我们可以通过归并排序(从小到大),每次二分区间,在合并时,这两个原创 2016-07-17 15:00:48 · 371 阅读 · 0 评论 -
Trie(字典树)学习小结1
学了一个上午,勉强会一点字典树,也只会用数组来构建字典树(。・・)ノ字典树,又叫前缀树,英文缩写是Trie,主要是因为其是一棵树,这可树根节点没有任何值,每一个子节点存储一个值(可以是字母,数字等),当遇到一些单词的前缀是一样时,这些单词会在同一条链上呈现,直到这些单词出现不同的值时。 先来一图,网上到处都是。 当我们在储存单词时,就这么储存。红点部分代表从这个点到根这一段形成了一个单词。这个有原创 2016-07-18 11:40:10 · 329 阅读 · 0 评论 -
统计难题(hdoj1251)
题目:Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). 样例输入: 输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.注意原创 2016-07-18 21:25:17 · 470 阅读 · 0 评论 -
弄提纲【NOIP2016提高A组模拟7.19】
题目:新日暮里中,比冲是一位博学的哲学教授。由于最近要帮学生准备考试,他决定弄个提纲给学生。然而同事van不服气,觉得这样学生就没有了自我思考,便在提纲中添加废话。 比冲很无奈,他想找回原稿。我们把现在的提纲看成是一个字符串S。他知道van只会在原稿结尾添加语句,也就是说,原稿是S的前缀。 现在比冲有m个询问,以此来找出原稿。每次给出两个位置l,r,问以l与r结尾的字符串中,有多少个字符串符合原原创 2016-07-19 20:42:05 · 648 阅读 · 0 评论 -
Password【NOIP2016提高A组模拟8.15】
题目 样例输入: 4 1 1 2 2 3 4 6 2 2 1 3 2 2 1 3 2样例输出: 6 4 3 2数据范围: 剖解题目有一个N位B数组,经过一个公式得到了N*N的A数组,现将A数组打乱,让你找回B数组。思路应该仔细研究两个数组之间的关系,没有其他想法了吧…….解法20%:因为所有的数都是互质的,只需要把gcd不是1的数拿出来,然后排个序输出。 ?%:会发现,这N个数中原创 2016-08-15 20:37:02 · 425 阅读 · 0 评论 -
Ned 的难题
题目 样例输入: 3 4 6 2 样例输出: 384 数据范围: 剖解题意:题目很明了了,这不懂我也没办法。思路:跟gcd有关,想想gcd方面的东西。解法: 20%:暴力(从后往前,有利于后面优化) 40%:如果枚举到的一个区间,计算出gcd=1后,可以直接退出了,进入下一个了。 100%(1):gcd的是如何来的?本质是这两个数的公共质因子的个数。 如:6=2*3,8原创 2016-07-09 15:45:31 · 470 阅读 · 0 评论 -
Throw 【NOIP2016提高A组模拟8.15】
题目(bzoj2144)样例输入: 1 2 3 0 3 5样例输出: YES 2数据范围: 剖解题目初始三个数,每一次操作可以改变两个数,问最少几次能够达到目标三个数。思路这题很不一般,做时一直是一脸懵逼,除了暴力什么都想不出来。(。・・)ノ解法20%:暴力,时间复杂度:O(n3)O(n^3)(注:这里的n指max|A[i]|)。 40%:捣鼓一段后,发现这三个数可以转换成其他三原创 2016-08-16 16:20:32 · 433 阅读 · 0 评论 -
Matrix 【NOIP2016提高A组模拟8.17】
题目 样例输入: 4 3 5 4 1 7 3 4 7 4 8样例输出: 59716数据范围: 剖解题目被虐,不多说了QwQ~~思路:这种题目,光看数据范围就知道暴力肯定不行,肯定是有规律或者公式的,努力推推看。 然而比赛上我推了好久好久,推出了个滑稽的公式,哭晕+_+|||。解法40%:暴力。 60%:当a=0时,左边的数不会对右边的数有影响,未知数只会受到上方数的影响,答案原创 2016-08-17 21:29:13 · 400 阅读 · 0 评论 -
Value【NOIP2016提高A组模拟8.17】
题目 样例输入: 5 8 2 10 7 5 1 11 8 13 3样例输出: 27数据范围: 剖解题目被虐,不想说了QwQ~~思路其实是因为在前几天做过一道类似的题目,所以自然而然就往背包dp方面去想,因为考虑到这个w会造成后效性,就试着证明些东西。结果后来的dp打错了QAQ~~解法40%:暴力。时间复杂度:O(n!)O(n!). 100%:对于一个确定的顺序,他的最优值原创 2016-08-17 21:54:00 · 350 阅读 · 0 评论 -
Binary 【NOIP2016提高A组模拟8.17】
题目 样例输入: 6 6 8 9 1 13 9 3 1 4 5 2 6 9 1 3 7 2 7 7 1 6 1 2 11 13样例输出: 45 19 21数据范围: 剖解题目被虐,不想说了了QAQ~~思路曾经做过一道类似的题,对于这种情况就是要把每个数拆成二进制去考虑,因为看到了每个数最大是2202^{20},也就是最多只有20位,所以要往这方面想。解法40%:暴力原创 2016-08-18 20:23:10 · 445 阅读 · 0 评论 -
树上摩托【NOIP2016提高A组模拟9.4】
题目Sherco是一位经验丰富的魔♂法师。 Sherco在第零次圣杯战争中取得了胜利,并取得了王之宝藏——王の树。 他想把这棵树砍去任意条边,拆成若干棵新树,并装饰在他的摩托上,让他的摩托更加酷炫。 但Sherco认为,这样生成的树不具有美感,于是Sherco想让每棵新树的节点数相同。 他想知道有多少种方法分割这棵树。 样例输入: 第一行一个正整数N,表示这棵树的结点总数。 接下来N-原创 2016-09-09 22:12:50 · 515 阅读 · 0 评论 -
树的重心
其实是因为我要打点剖,然而树的一堆概念都不懂(也不会求),所以我决定从小做起!! 入正题。树是什么就不说了吧- -|||。树的重心其实这东西定义很多,但全都是对的。 首先,树的重心是树上的一个节点。 定义1.把重心删去后,树会被分成几个子树。如果子树中size最大的子树的节点不超过整个树的一半,那么这个节点就是重心。 定义2.把重心去掉后,子树中最大的子树size最小。 定义3.把重心去掉原创 2016-08-20 11:43:04 · 371 阅读 · 0 评论 -
单峰【NOIP2016提高A组模拟9.2】
题目 样例输入: 2样例输出: 2数据范围: 剖解题目给出n,问n的全排列中,有多少个的数值是呈单调性或单峰性。思路比赛时,一直觉得当最高处在两边时,好像得额外算,WA了。解法20%:暴力。 50%:很明显最高处一定是n,那么剩下的n-1个数只可能放在比他高的数的左边或者右边,那么就是两种方案,所以ans=2n−1ans=2^{n-1},计算即可。时间O(n)O(n) 100%:原创 2016-09-03 09:49:16 · 539 阅读 · 0 评论 -
积木【NOIP2016提高A组模拟9.2】
题目 样例输入 3 8 7 6 3 9 4 1 10 5样例输出: 18数据范围: 剖解题目…….思路看到n如此小,而且又是求最优值,很容易想到状压dp。解法10%:友情送分 40%:暴力,枚举每一种放置情况。时间 O(n!⋅3n)O(n!·3n) 100%:状压dp。设fs,i,a,bf_{s,i,a,b} 表示当前使用的积木的状态为s,最上面的积木是第i块,并且是以a,原创 2016-09-03 10:34:06 · 665 阅读 · 0 评论 -
同余【NOIP2016提高A组模拟9.2】
题目样例输入: 5 2 1 5 2 3 7 1 3 2 1 2 5 3 0样例输出: 2 1剖解题目……思路一开始是想到开100000个树状数组存储,然后就看到了空间爆炸。之后就想到了莫队,不过虽然听说过,但没有了解过莫队算法,就一脸懵逼了。 其实也不需要用莫队。解法20%:ai<=1,所以转化位求区间0与1的个数,前缀和优化。注意p=1时。时间O(n+m). 60%:同上,原创 2016-09-03 10:57:50 · 415 阅读 · 0 评论 -
看电影 【NOIP2016提高A组模拟9.3】
题目听说NOIP2016大家都考得不错,于是CCF奖励省常中了 K 张变形金刚5的电影票奖励OI队的同学去看电影。可是省常中OI队的同学们共有 N(N >= K)人。于是机智的你想到了一个公平公正的方法决定哪K人去看电影。 N个人排成一圈,按顺时针顺序标号为1 - N,每次随机一个还存活的人的编号,将这个人踢出。继续上述操作,直到剩下K个人。 但这样显然太无聊了,于是小S又想出一个牛逼的方法。原创 2016-09-04 14:39:52 · 1099 阅读 · 0 评论