摘要: P1242 新汉诺塔 此题的最后一个数据点不适用于贪心算法,所以每次将大的优先移到目标位置有很小的概率不是最优解,但是毕竟是最优解的概率还是很大的。所以用模(yi)拟(tong)退(luan)火(gao)就可以了,反正也是随机碰碰运气的。概率嘛~~~~,只要你的srand能过,那就能过啦。 //退火 阅读全文
posted @ 2019-10-06 15:25 D_O_Time 阅读(358) 评论(0) 推荐(1) 编辑
摘要: P3372 【模板】线段树 1 #include<cstdio> #include<iostream> using namespace std; #define MAXN 1000099 #define LLD long long int #define ls id*2 #define rs id* 阅读全文
posted @ 2019-07-26 10:28 D_O_Time 阅读(137) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-07-26 09:46 D_O_Time 阅读(2) 评论(0) 推荐(0) 编辑
摘要: Withdraw From OI 已经退役一周了,但还是迟迟没有去写退役记,在这个2017年的最后一天,写下这一篇沉重的“withdraw from OI”。 距离联赛成绩出来已经一个多月了。这一个月,真是充斥着人生中从未有过的犹豫,不甘,悔恨,以及信念。 联赛之前,总想着自己要凭借稳中求胜的理念好 阅读全文
posted @ 2017-12-31 16:26 D_O_Time 阅读(319) 评论(0) 推荐(1) 编辑
摘要: 这么久没有考试了,一连翘掉了期末、入学、第一次月考、期中考试。本来这一次的第三次月考是要求全组参加的,但是,俗话说:“计划赶不上变化”。确实如此,在明天就要第三次月考的晚自习前,我们还在搞大扫除,忽然,远远望见教练的身影,他过来说:“联赛400分以上的不要参加月考,从明天开始准备冬令营。”我们这些人 阅读全文
posted @ 2017-12-24 19:19 D_O_Time 阅读(303) 评论(0) 推荐(3) 编辑
摘要: 标签:Splay+Hash 题解: 首先肯定不是后缀数组,当然splay比后缀数组要简单一些。 求解这个问题,我们可以二分,对于两个串A,B他们的最长公共前缀是可以二分出来的。 那么我们对于每一个后缀,二分一下,但是需要维护这一个东西,那么我们使用splay来维护序列。按照下标为关键字来把初始字符串 阅读全文
posted @ 2017-12-21 17:28 D_O_Time 阅读(221) 评论(1) 推荐(2) 编辑
摘要: 洛谷:P3391 【模板】文艺平衡树(Splay) #include <algorithm> #include <cstdio> #include <iostream> using namespace std; const int MAXN = 110000; int n, m, tp, root, 阅读全文
posted @ 2017-12-17 20:29 D_O_Time 阅读(403) 评论(0) 推荐(2) 编辑
摘要: 洛谷:P3384 【模板】树链剖分 阅读全文
posted @ 2017-12-14 21:37 D_O_Time 阅读(151) 评论(0) 推荐(1) 编辑
摘要: 洛谷:P3690 【模板】Link Cut Tree (动态树) 阅读全文
posted @ 2017-12-14 21:35 D_O_Time 阅读(446) 评论(0) 推荐(1) 编辑
摘要: 标签:链表+数论知识。 题解: 对于这道题,其实就是两个问题的拼凑,我们分开来看。 首先要求xi与yi。这个可以发现,x每增加1,则pos增加d;y每增加1,则pos增加1。然后,我们把x与y分别写在二维平面上,比如样例: x= 0 1y=0 {0 4}y=1 {1 5}y=2 {2 6}y=3 { 阅读全文
posted @ 2017-12-07 23:08 D_O_Time 阅读(177) 评论(0) 推荐(2) 编辑
摘要: 标签:dfs+剪枝。 题解: 这道题看着就像一道dfs题目,没有什么算法可以用来算这个东西,于是想想暴搜。 如果我们确定因为是2*2的子矩阵的和,如果确定了其中三个,那么就可以确定第四个,发现如果确定了第一行和第一列的话,就可以确定整个矩阵了,于是我们枚举只有399个了。 因为要求字典序最小,我们先 阅读全文
posted @ 2017-12-07 16:54 D_O_Time 阅读(379) 评论(0) 推荐(3) 编辑
摘要: 标签:二分图判定。题解: 首先可以把题目中给你的那个环给画出来,这样就可以发现对于任意一个图来说,如果两条边要相交,就不能让他们相交,那么这两条边就要一条在里面一条在外面,如果把环画成一条链,那么就是一条在下面,一条在上面。于是我们想到对于边,O(n2)的枚举,判断是否相交即可,如果相交的话,就要连 阅读全文
posted @ 2017-12-07 13:14 D_O_Time 阅读(638) 评论(0) 推荐(2) 编辑
摘要: 标签:状态压缩+矩阵快速幂。 题解: 首先看范围,p<=10,那么我们可以想到状态压缩。我们把从一个长度为10的区间进行压缩,1代表可以,那么当值一个区间的1的个数为k个,我们就认为他是合法的。要注意这里所定义的区间,是有起点的,但是没有记下来,因为没有必要。然后我们就可以想一下状态是怎么转移的。那 阅读全文
posted @ 2017-12-05 17:14 D_O_Time 阅读(265) 评论(0) 推荐(2) 编辑
摘要: 标签:扩展卢卡斯+方案数推导。题解: 首先要想到使用组合数而不是DP,否则就会深陷泥潭而不可自拔了。 我们把两个序列拼起来,也就是a+b个位置,每一个位置都是0或1。自然有2^(a+b)种方案。我们分a==b和a>b两种情况来讨论(我也不知道怎么想到这两种情况是不一样的): a==b:首先a的赢和输 阅读全文
posted @ 2017-12-05 13:52 D_O_Time 阅读(530) 评论(0) 推荐(1) 编辑
摘要: 标签:分块。题解: 200000,而且标号从0开始,很符合分块的条件啊。看看怎么实现。 首先分成√n个区间,然后如果我们对于每一个位置i,求出一个Next[i]和step[i],分别表示跳到的后一个位置与步数,因为是分块所以就是跳到下一个区间的步数与位置了。处理这两个数组要从前到后,只需要O(n)。 阅读全文
posted @ 2017-12-05 13:17 D_O_Time 阅读(180) 评论(0) 推荐(1) 编辑
摘要: 标签:区间DP。题解: 首先分析题目,根据题目中的列队方式以及数据范围,我们容易想到O(n2)的算法,也就是区间DP。发现直接dp[L][R],不能转移,于是添加一个dp[L][R][0/1],0表示这个区间最后从左边插入,1则表示右边。 然后分析从左边插入,上一个数要么是从左的要么是从右的,因为这 阅读全文
posted @ 2017-12-05 13:15 D_O_Time 阅读(144) 评论(0) 推荐(1) 编辑
摘要: 因为可以加上一个常数C,说是非负整数,但其实A手环加上,就等于B手环减去,于是把m范围扩充到[-100,100]即可。 然后所求变为: $$\sum (x_i-y_i+C)$$ 接着拆开,可以得到: $$\sum(x_i^2+y_i^2+C^2)+2*C*\sum(x_i-y_i)+2*\sum(x 阅读全文
posted @ 2017-12-02 17:50 D_O_Time 阅读(214) 评论(0) 推荐(2) 编辑
摘要: 标签:DP+map(Hash)+单调性题解: 觉得这道题很妙,题目说每天每天有那么多选择,但是其实只要不死,那么选择最大伤害可以枚举,而不死又可以DP。 具体来说:首先要保证不死,那么我们设dp[i][j]代表在前i天,第i天的自信值为j,那么前i天中可以最多不刷题几天,也就是,可以用来打伤害。其实 阅读全文
posted @ 2017-12-02 09:39 D_O_Time 阅读(626) 评论(0) 推荐(4) 编辑
摘要: 标签:线段树 题解: 首先对于题目的条件进行分析,p1的条件是一个区间的两个端点必须是这一个区间的最大与次大值。p2的条件是一个区间的一个端点是最大值,而另一个端点不是次大值。显然,他们都需要两个条件(对于两个端点都有要求,这样的话不太好操作)。感受一下,p1的条件更为严苛,于是我们这样考虑: 一个 阅读全文
posted @ 2017-11-29 20:15 D_O_Time 阅读(499) 评论(0) 推荐(4) 编辑
摘要: 标签:线段树+set 题解: 此题的标题为splay,所以我们可以排除这道题的正解是splay的可能性。然后我们发现只有最值的单旋,而且,三点一线不需要先旋转父亲。通过手玩我们可以发现,就是把最值直接移到最顶端作为根节点,然后其他的点以及他们之间的父子关系全部都没有变化。于是就只要求深度了。 我们发 阅读全文
posted @ 2017-11-29 20:13 D_O_Time 阅读(302) 评论(0) 推荐(1) 编辑
摘要: NOIP2017 确实,一场很深刻的考试结束了。 现在也已经搞了两周的学科了,在补之前两个月的学科的内容。 距离11.12已经过去12天了。 姓名准考证号mathcomplexityparktreasurephalanxcheese总成绩 *** HN-0615 5 100 30 70 80 100 阅读全文
posted @ 2017-11-24 19:27 D_O_Time 阅读(184) 评论(2) 推荐(0) 编辑
摘要: 最后两天了,第三天就是NOIP2017--Day1了。 刚刚考完了这个学期从开学以来的最后一场模拟赛了。首先要对于这场模拟赛做一次深刻的反思。 考完才猛地惊叹这是最后一场模拟赛了,然而题目并不难,也保留了T1送分的原则,但是这场考试下来,很多地方都是不尽人意的。两天的T2要好好反思反思,自己为什么就 阅读全文
posted @ 2017-11-08 20:19 D_O_Time 阅读(128) 评论(1) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-11-07 23:02 D_O_Time 阅读(11) 评论(0) 推荐(1) 编辑
摘要: 传送门:http://codeforces.com/problemset/problem/543/B B. Destroying Roads time limit per test:2 seconds memory limit per test:256 megabytes B. Destroying 阅读全文
posted @ 2017-10-30 22:01 D_O_Time 阅读(208) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-10-29 13:07 D_O_Time 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 传送门: 题目大意:给你一个字符串,可以平均分成很多段,每一段之内的元素可以任意排序,最后再按原来的顺序把每一段拼起来,问最少的块数。(块:连续相同的一段字符成为一个块) 题解: 首先我们可以发现,每一个段之内先排好序,然后如果相邻的两端有相同的元素,就可以把这两个元素分别放在尾和首,就可以减少一个 阅读全文
posted @ 2017-10-23 22:27 D_O_Time 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有一些老师,每一位都有自己的工资以及教授的课程。共s<=8个课程。其中的一些老师必须选择,问你保证每节课至少有一个老师的最少总工资。 题解: 首先很容易想到状态压缩,搞一个3进制的数,分别表示每一门课程的情况,一共38=6561。但是这样是不行的,相当于暴力啊! 一个套路:三进制转化为二进 阅读全文
posted @ 2017-10-23 17:10 D_O_Time 阅读(298) 评论(0) 推荐(0) 编辑
摘要: NOIP2017赛前小结 前言 从新学期的第二周开始就是停课集训了,这也是一段很有意义的时光。集训期间,各方面的能力都得到了提升,代码能力,应试技巧,知识水平等等。NOIP2017即将来临,集训也要拿出自己的成果来。为了对学过的知识,也让自己的知识更加有条理,做一次“NOIP2017赛前小结”。 F 阅读全文
posted @ 2017-10-23 16:43 D_O_Time 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 2457: [BeiJing2011]双端队列 Description Sherry现在碰到了一个棘手的问题,有N个整数需要排序。 Sherry手头能用的工具就是若干个双端队列。 她需要依次处理这N个数,对于每个数,Sherry能做以下两件事: 1.新建一个双端队列,并将当前数作为这个队列中的唯一的 阅读全文
posted @ 2017-10-22 16:51 D_O_Time 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 传送门:https://vjudge.net/problem/UVA-10564 题目大意:给你一张形如沙漏一般的图,每一个格子有一个权值,问你有多少种方案可以从第一行走到最后一行,并且输出起点最靠前的方案,以及此方案的起点编号,起点相同则字典序最小。 题解: 很容易想到一个DP,dp[i][j][ 阅读全文
posted @ 2017-10-20 20:35 D_O_Time 阅读(264) 评论(0) 推荐(0) 编辑