摘要:
B(贪心、fft) 将两数列排序后按照正负分离,最大值与最小值类似 考虑求最大值,对于两数列中同号的部分,显然按照绝对值顺序依次相乘;对于异号部分,需要令绝对值乘积尽可能小,简单列式子后可以得到该部分贡献为倒序卷积,按照不同情况翻转其中一个数列 最小值同理,只需先将其中一个数列翻转,后续步骤类似。 阅读全文
摘要:
A(模拟) 按题意模拟至指令达到上限 #include<bits/stdc++.h> #define rep(i,s,t) for(int i=(s),i##end=(t);i<=i##end;i++) #define dwn(i,s,t) for(int i=(s),i##end=(t);i>=i 阅读全文
摘要:
A(暴力) 暴力枚举所有可能的等式,按照要求check #include<bits/stdc++.h> #define rep(i,s,t) for(int i=(s),i##end=(t);i<=i##end;i++) #define dwn(i,s,t) for(int i=(s),i##end 阅读全文
摘要:
A(费马小定理) 当$n<100$的时候,用最后一行直接暴力 否则考虑费马小定理:$10^{p-1}\equiv 1\ (mod p)$,即步长为$p-1$时的和可以直接使用,利用$p-1$行计算即可 #include<bits/stdc++.h> #define rep(i,s,t) for(in 阅读全文
摘要:
A(预处理) 容易发现对于一段被0隔开的长度为$n$的连续的1,可以消去的0的个数为$\lceil\frac{n}{2}\rceil$,预处理这个答案 同时因为每次查询一个区间视为环形,需要将两个端点拼起来,预处理每个位置向左向右最远延伸到1的位置即可 #include<bits/stdc++.h> 阅读全文
摘要:
一坨*这个人 全队都犯病了,没啥好说的 A(签到 模拟) 签到题 #include<bits/stdc++.h> #define rep(i,s,t) for(int i=(s),i##end=(t);i<=i##end;++i) #define dwn(i,s,t) for(int i=(s),i 阅读全文
摘要:
hdu1 04 Ball(bitset) 把所有边升序排序后,枚举中间大小的边$e$ 考虑对每个点$i$记录所有$dis(i,j)\le e$的$j$构成的集合$S_i$ 在枚举到边$(u,v,w)$时,以该边为中位数的三角形答案为$S_i \cap \bar{S_j}$ 利用bitset容易维护 阅读全文
摘要:
打铜了 爬了 补题: $I$ 一道终极歪榜题 路线事实上一共有$2H$种,可以映射到$[-H,H)$上,$\ge 0 $的部分表示$x=0$时向上 用$map$简单维护一下即可 1 #include<bits/stdc++.h> 2 #define inf 2139062143 3 #define 阅读全文
摘要:
热身赛: 某题读假题+写假代码,搞了最难题1h未果之后跑路了 rk200+,感觉状态血差,正赛要寄(反向flag++ 正赛: 刚把基本的板子打完发现edgnb已经被过穿了(edgnb! 签到后yfz说能写M,于是写写写,写完过不了样例,似乎做法假了 换我写签到题B,很快啊就WA了,又改一个很明显的错 阅读全文
摘要:
2019 NWERC(最短路+凸包、线段树二分、智慧题) D. Disposable Switches 显然最终的答案只与经过的边数和经过的最短路径长度和有关 令$dis[x][k]$表示到$x$点经过$k$条边的最短路(因为记录了边数,这个东西可以直接$n^2$预处理 完全不可能的点不容易求,考虑 阅读全文