摘要: 1 #include <iostream> 2 #include <chrono> 3 #include <thread> 4 #include "wampcc/wampcc.h" 5 6 using namespace wampcc; 7 using namespace std::chrono_l 阅读全文
posted @ 2025-03-05 20:38 _suta 阅读(32) 评论(0) 推荐(0)
摘要: 二分函数很容易写错(理解问题),需要仔细想一想。 1 #include<bits/stdc++.h> 2 #define rep(i,a,n) for(register int i = a;i <= n;++i) 3 #define per(i,n,a) for(register int i = n 阅读全文
posted @ 2020-11-05 21:37 _suta 阅读(138) 评论(0) 推荐(0)
摘要: 没什么特殊的,与以前的相比会条理一些吧。 1 #include<bits/stdc++.h> 2 #define rep(i,a,n) for(register int i = a;i <= n;++i) 3 #define per(i,n,a) for(register int i = n;i < 阅读全文
posted @ 2020-11-05 21:36 _suta 阅读(137) 评论(1) 推荐(0)
摘要: http://codeforces.com/contest/1445/problem/C 1 #include<cstdio> 2 #define rep(i,a,n) for(register ll i = a;i <= n;++i) 3 #define per(i,n,a) for(regist 阅读全文
posted @ 2020-11-02 21:13 _suta 阅读(156) 评论(0) 推荐(0)
摘要: 双向dfs可以把2^n的复杂度变为(1+x)*2^(n/2)(我不太确定x是多少,我认为应该是n/2,但是貌似其他人不是这么说的) 思路:把需要枚举的值拆成两半,第一遍dfs处理出前一半中所有的可能情况记录在一个数组里,排序、去重,第二遍dfs搜索后一半每得到一个部分解就到数组中寻找相应的最优的另一 阅读全文
posted @ 2020-10-29 23:46 _suta 阅读(103) 评论(0) 推荐(0)
摘要: 1 int main(){ 2 int x; 3 while(1){ 4 x = read(); 5 printf("%d&%d == %d\n",x,-x,x&-x); 6 } 7 8 return 0; 9 } x&-x 为什么单点加时要+x&-x? ——因为令y = x+(x&-x),则x区间 阅读全文
posted @ 2020-10-24 15:13 _suta 阅读(71) 评论(0) 推荐(0)
摘要: 一晚上一共四节自习到十点钟下课,作业留了六科每科还都不止一节课能做完,怎么会这样??? 阅读全文
posted @ 2020-10-22 22:52 _suta 阅读(78) 评论(0) 推荐(0)
摘要: 数据合并的LCA,写的时间不算太长,查错查了好久,出现的问题有: 1.jph与jpg手误打错 2.双向边只加了一遍 代码: 1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> 4 #include<algorithm> 5 #incl 阅读全文
posted @ 2020-10-14 00:02 _suta 阅读(115) 评论(0) 推荐(0)
摘要: 今天的洛谷日报,seems good,果断收藏qwq 阅读全文
posted @ 2020-10-04 23:40 _suta 阅读(97) 评论(0) 推荐(0)
摘要: 没有做什么准备,也没什么惊喜。 自我感觉:50+100+100=250 民间数据:50+0+100=150 第二题是什么鬼啊,为啥我爆零了??好像是看错题了吗??? 好吧确实理解错了,没有仔细看题面一轮冒泡排序的定义,当成每轮只换一个了TwT这毛病要改啊 T1 50pts 1 #include<io 阅读全文
posted @ 2020-03-08 15:29 _suta 阅读(243) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-03-07 11:48 _suta 阅读(78) 评论(0) 推荐(0)
摘要: csp2019过去好久了,也确实好久没碰信竞了,因为明天要参加一个考试所以今天就打开了洛谷看了看,发现遗忘现象很严重!这显然不行!我还没拿到省一呢,我不能把这门技术就这么荒废掉,我得复习啊!确实不怎么值钱了,但是总不能就这么成了个遗憾吧??不行,我要立刻制定一个复习计划,非常紧急,要不然到NOIP2 阅读全文
posted @ 2020-03-06 22:45 _suta 阅读(181) 评论(0) 推荐(0)
摘要: 写题思路一定要清晰后再动键盘,否则肯定死得很惨。。(被绿题虐系列) 题目要求所有满足颜色相同且两点间存在一点小于等于某值的方案数。 显然2e6的数据一般是O(n)的做法,所以从一开始就在想递推式,然后由于思路比较乱,一直没有写出来,直到今天才好好理了理思路: 对于读入到的一点,颜色为cl,价格为wi 阅读全文
posted @ 2019-11-14 21:12 _suta 阅读(155) 评论(0) 推荐(0)
摘要: 如题 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<queue> 5 #define rep(i,a,n) for(register int i = a;i <= n;++i) 6 using names 阅读全文
posted @ 2019-11-07 22:43 _suta 阅读(213) 评论(0) 推荐(0)
摘要: 二分答案ans,可让精度恶心死我了 找到使a[i]-l*b[i]最大的l。 阅读全文
posted @ 2019-11-03 15:00 _suta 阅读(86) 评论(0) 推荐(0)
摘要: 区间加,区间乘,单点查询。 跟线段树的差不多,为了避免精度问题要先乘再加。区别也和其他的差不多,残块暴力。然后就没什么了。scanf读int要& ! 阅读全文
posted @ 2019-11-03 10:51 _suta 阅读(248) 评论(0) 推荐(0)
摘要: 单点插入,单点查询。 因为要么插入O(1)查询O(sqrt(n)),要么插入O(sqrt(n)),查询O(1),所以选择代码难度更小的非链表暴力后移。 但是直接这样做虽然在随机数据上表现不错,但是在那些特意构造出的在某个区间疯狂加点的数据上会退化到与暴力差不多。 解决办法是每sqrt(n)次inse 阅读全文
posted @ 2019-11-03 10:23 _suta 阅读(186) 评论(0) 推荐(0)
摘要: 区间开方,求和。 分析性质可发现sqrt(0)= 0,sqrt(1) = 1,所以记录每块是否已不能改变。 区分l与r啊。。错了这么个关键字母可不爆零了么。。 阅读全文
posted @ 2019-11-03 08:55 _suta 阅读(197) 评论(0) 推荐(0)
摘要: 分块实现的区间加,区间求和。(1152 ms) 线段树(583 ms) 阅读全文
posted @ 2019-11-03 07:50 _suta 阅读(141) 评论(0) 推荐(0)
摘要: 把做过的题争取都看一遍,弄明白出现过的所有问题,省一不是问题! 具体一点的话,那就把黄题及以上写一下思路吧。(按题号) 2019年11月6日 Y P1017进制转换 将一个整数装变成某负进制 类比正进制的转换,手写一下负数的模运算(整数模运算后判负加至非负) Y P1020导弹拦截 用单调队列求最长 阅读全文
posted @ 2019-11-02 22:46 _suta 阅读(207) 评论(1) 推荐(0)
摘要: 诡异而冗长的名字下一般没什么难题 坐标的本质是与原点的相对位置关系,所以改变全部坐标只要改变坐标系就好了。 阅读全文
posted @ 2019-11-02 17:55 _suta 阅读(160) 评论(0) 推荐(0)
摘要: a0+a1*x+a2*x^2+a3*x^3...+an*x^n =a0+x*(a1+x*(a2+x*(a2+...+x*(an+0) ) ) ) 正好可以递归计算。 一个小技巧是过程在一个大质数的同余系中计算,没有降低太多正确性,却避免了高精度。(重要) 阅读全文
posted @ 2019-11-02 16:59 _suta 阅读(188) 评论(0) 推荐(0)
摘要: 模板 注意exgcd中把y当作x丢下去后y = x',x = y',所以y = x'-a/b*y' = y-a/b*x ! 阅读全文
posted @ 2019-11-02 16:28 _suta 阅读(118) 评论(0) 推荐(0)
摘要: 求树上距离为二的点对权积之最值、和。 70pts:枚举每个点,bfs两层求和求最值和和。 100pts:枚举每个点,先统计所有可达节点的权值和,再枚举可达点求权值和 第二种做法较第一种的优化: a1*a2+a1*a3+a1*a4+..a2*a1+a2*a3+... =>a1*(sum-a1)+a2* 阅读全文
posted @ 2019-11-02 16:07 _suta 阅读(180) 评论(1) 推荐(0)
摘要: 如题,缩完点后数一下有几个入度为1的scc,+1再/2即可。 教训:加一个cntf处理重边!否则重边会被认为是同一条。 阅读全文
posted @ 2019-11-02 15:12 _suta 阅读(149) 评论(0) 推荐(0)
摘要: 以spfa为框架,将入队的条件改为当前节点有更优解即可。f[i]表示到i点的最小花费。 有的样例真的是水到一定程度了啊,非常严重的错误都可以跑过。。。 惨痛教训:无权图微改add_edge的同时也要改一下Edge结构体,否则照我的写法就会把ne赋给wi! 不过这道题还是挺简单的 阅读全文
posted @ 2019-11-02 14:25 _suta 阅读(188) 评论(0) 推荐(0)
摘要: 给出一个长为 n 的数列,以及 n 个操作,操作涉及区间加法,询问区间内小于某个值 c 的前驱(比其小的最大元素)。 先在每个块内排序,然后残块暴力,整块lower_bound。 指针形式运用lower_bound一定要小心啊啊啊 (调了1h+) 阅读全文
posted @ 2019-11-02 10:56 _suta 阅读(187) 评论(0) 推荐(0)
摘要: hzwer tql! 渐渐找到了分块的套路。 给出一个长为 n 的数列,以及 n 个操作,操作涉及区间加法,询问区间内小于某个值 c*c 的元素个数。 残块先在原数组上暴力,然后拿原数组更新块数组(效率高于结构体存id!),整块就标记。 code: 阅读全文
posted @ 2019-11-02 09:56 _suta 阅读(202) 评论(0) 推荐(0)
摘要: 终于知道分块怎么写了。 要注意特判在同一块内的操作,防止l与r分别把这个块进行了错误的处理。 https://loj.ac/problem/6277模板题 阅读全文
posted @ 2019-11-02 00:01 _suta 阅读(124) 评论(0) 推荐(0)
摘要: 第13次提交终于0->100的原因居然是——没有判重???! https://www.luogu.org/problem/P3879算是道略显恶心的板子题吧,唯一一点以后可以继承的经验是trie数组利用了结构体+vector的方式解决了空间与维度的问题。 阅读全文
posted @ 2019-11-01 00:03 _suta 阅读(123) 评论(0) 推荐(0)
摘要: 用于字符串匹配,复杂度O(n+m) 步骤: 1.b串自我匹配出f数组,其中f[i]表示以b[i]为结尾的后缀与前缀的最大匹配长度-1 2.依次与a串中每个字符匹配。i、j分别作为a与b的指针。 若a[i]==b[j] 两个指针后移,再判断j是否到达b末 否则 若j非0 j = 上一个匹配位置f[j- 阅读全文
posted @ 2019-10-31 20:23 _suta 阅读(122) 评论(0) 推荐(0)
摘要: 感谢https://www.luogu.org/blog/user38385/solution-p2252 自从昨天考了博弈论的一道程序填空题,博弈论的阴云便一直在我的心上徘徊,今天把这个坑填一下。 一.巴什博弈(Bash Game) A和B一块报数,每人每次最少报一个,最多报四个,看谁先报到三十. 阅读全文
posted @ 2019-10-20 14:49 _suta 阅读(501) 评论(0) 推荐(0)
摘要: 2019年10月18日23点12分 明天就是初赛了,恰逢今天周五,在机房随便看了看知识点,感觉没什么大问题。实际上我并不是特别重视初赛,我承认,但是我认为初赛还是比较好过的,但愿明天不要出什么意外吧。保持一个比较好的心态,不会有问题的。 2019年10月19日17点32分 九年的初赛题没白做啊啊啊q 阅读全文
posted @ 2019-10-18 23:15 _suta 阅读(156) 评论(0) 推荐(0)
摘要: 太简单了 不粗心的话感觉可以满分。。。 阅读全文
posted @ 2019-10-17 20:53 _suta 阅读(1222) 评论(0) 推荐(0)
摘要: 可能这是一类题目吧,这道题比较典型,可以当作模板。 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 5 const int Maxn = 30030; 6 7 int fa[Maxn],d[Maxn],size[Max 阅读全文
posted @ 2019-10-16 22:47 _suta 阅读(198) 评论(0) 推荐(0)
摘要: 线性筛。注意循环终止条件不要写成判断,否则及影响效率又可能导致re 1 for(int i = 2;i <= m;i++){ 2 if(!not_p[i])prime[++cntp] = i; 3 for(int j = 1;j <= cntp;j++){ 4 if(i*prime[j] > m)b 阅读全文
posted @ 2019-10-15 23:19 _suta 阅读(116) 评论(0) 推荐(0)
摘要: 分别预处理每行每列前缀合,然后枚举两顶点坐标即可。读取线段上值时要注意去重! 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 5 const int Maxn = 110; 6 int xs[Maxn][Maxn],y 阅读全文
posted @ 2019-10-15 11:06 _suta 阅读(171) 评论(0) 推荐(0)
摘要: 这道题被我秒了是我太强了还是这道题太水了 苹果在树枝上,然后用子树更新节点的f数组即可。 code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<vector> 5 using namespace std 阅读全文
posted @ 2019-10-14 23:06 _suta 阅读(148) 评论(0) 推荐(0)
摘要: 因为每个W被有效利用一次,共logmaxm次,又每次都要查很多可能有重叠的区间,所以可以每次求前缀和,从而加速每次查询。 一开始并没有想到用前缀和,因为没有注意到每次查询有大量重复计算及本题可用两个前缀和处理的性质。 阅读全文
posted @ 2019-10-13 19:12 _suta 阅读(114) 评论(0) 推荐(0)
摘要: 题目背景 东方CannonBall(译名东方大炮弹)是近期发布的第一款获得ZUN授权的商业东方二次创作手机游戏,游戏关卡中玩家在类似大富翁的棋盘上与CPU或是玩家进行对战。 东方CannonBall(译名东方大炮弹)是近期发布的第一款获得ZUN授权的商业东方二次创作手机游戏,游戏关卡中玩家在类似大富 阅读全文
posted @ 2019-10-13 14:41 _suta 阅读(191) 评论(0) 推荐(0)