随笔分类 -  51nod

训练
摘要:1,首先就是 (13%3=((1×10)%3+3)%3) 用同余定理,如果a%n=c,b%n=c,a<b,那么这个时候b就不用入队了,因为答案只看余数(这是第一种剪枝, 2,另外一个剪枝就是相同的余数不必继续入队列 3,上代码了 4() #include <algorithm>#include <s 阅读全文
posted @ 2018-04-11 19:52 Xzavieru 阅读(170) 评论(0) 推荐(0)
摘要:(1)题目大大意就是寻找一个(arr[i],arr[j]),(j>i&&arr[j]>arr[i])求(j-i)的最大值 (2)贪心思路,见代码1 (3)思路1维护一个单调递减的栈,如果发现此时的arr[i]小于此时栈顶元素,或者栈为空那么进,else(不二分最后一组数据会超时,)二分查找栈(数组模 阅读全文
posted @ 2018-04-10 23:40 Xzavieru 阅读(161) 评论(0) 推荐(0)
摘要:这题刚开始可能想的复杂了,(想用并查集判断是否有圆,之后Tarjan判断触手),看了大神的代码,orz,可能对图论的基本概念不是很了解,这个东西叫做环套树 (N==M时成立) 上代码了orz #include <algorithm>#include <stdio.h>#include <stack> 阅读全文
posted @ 2018-04-09 19:32 Xzavieru 阅读(214) 评论(0) 推荐(0)
摘要:切完之前那么最大奖励就来做的这个,思路是一样的= =,直接上代码了 #include <bits/stdc++.h>using namespace std;const int manx = 1e5+10;int hp[manx];struct fuck{ int val; int spend;}cn 阅读全文
posted @ 2018-03-18 11:14 Xzavieru 阅读(180) 评论(0) 推荐(0)
摘要:orz网上大神并查集做法...之前确实想到类似的想法,不过复杂度有点高= =!,看了题解,给跪了!! (不过网上好多并查集的代码有点错误,题目中数据范围是1e9,可能大神们看错了,没处理下? 在我这里用min(总的活动数量,当前所需的时间)预处理了下。 不多说,上代码orz #include <bi 阅读全文
posted @ 2018-03-18 08:48 Xzavieru 阅读(184) 评论(0) 推荐(0)
摘要:2.21 1,首先根据唯一分解定理,任意一个大于1的自然数N,都可以分解成有限个自然数的乘积 2,根据1,我先手动筛选了一波,(首先,质数在这里是必须要加到ans里的,orz先上代码 #include <algorithm>#include <stdio.h>#include <string.h># 阅读全文
posted @ 2018-02-21 00:34 Xzavieru 阅读(300) 评论(0) 推荐(0)