上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 29 下一页
摘要: https://scut.online/p/337 这个东西是个阶梯状的。那么可以考虑存两棵树,一棵树是阶梯的,另一棵树的平的,随便一减就是需要的阶梯。 优化之后貌似速度比树状数组还惊人。 cpp include using namespace std; typedef long long ll; 阅读全文
posted @ 2019-06-17 15:22 韵意 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 区间线段树: cpp const int MAXM=100000; int a[MAXM+5]; ll st[(MAXM 1; st[o 1; build(o 1; if(a=m+1) update(o 1; ll ans=0; if(a=m+1) ans=ans+query(o 1; build( 阅读全文
posted @ 2019-06-17 14:57 韵意 阅读(240) 评论(0) 推荐(0) 编辑
摘要: https://scut.online/p/321 第一次做区间线段树。 感觉和单点的一样啊。pushdown的时候要注意一些问题,st的值有可能是跟区间长度有关的。 cpp include using namespace std; typedef long long ll; inline int 阅读全文
posted @ 2019-06-17 14:56 韵意 阅读(119) 评论(0) 推荐(0) 编辑
摘要: https://codeforc.es/gym/102222/problem/F 注意到其实用unsigned long long不会溢出。 cpp include using namespace std; typedef long long ll; inline int read() { int 阅读全文
posted @ 2019-06-17 10:18 韵意 阅读(464) 评论(0) 推荐(0) 编辑
摘要: https://codeforc.es/gym/102222/my 好像在哪里见过这个东西?字符的左右移还是小心,注意在mod26范围内。 cpp include using namespace std; typedef long long ll; inline int read() { int x 阅读全文
posted @ 2019-06-17 00:02 韵意 阅读(403) 评论(0) 推荐(0) 编辑
摘要: https://codeforc.es/gym/102222/problem/H 题意:有一堆怪兽,怪兽有HP和ATK。你有一个英雄,英雄每次先被所有怪兽打,然后打其中一个怪兽。打的伤害递增,第一次1,第二次2,以此类推。 为什么感觉是贪心呢?证明一波。 首先开始打一个怪兽肯定一直打到死为止。那么打 阅读全文
posted @ 2019-06-16 23:45 韵意 阅读(552) 评论(0) 推荐(0) 编辑
摘要: https://codeforces.com/contest/1181/problem/B 从中间拆开然后用大数搞一波。 当时没想清楚奇偶是怎么弄,其实都可以,奇数长度字符串的中心就在len/2,偶数长度字符串的中心恰好是len/2和len/2 1。 但是要是作为末尾指针的位置来说的话 奇数长度字符 阅读全文
posted @ 2019-06-16 21:33 韵意 阅读(502) 评论(0) 推荐(0) 编辑
摘要: https://scut.online/p/289 一个水到飞起的模板数位dp。 cpp include using namespace std; typedef long long ll; bool notp[2000]; const int MAXS1=200; const int MAXS2= 阅读全文
posted @ 2019-06-15 23:57 韵意 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 其实一般都只是求一个组合数: cpp namespace combinatorics{ //注意需要init(),必要时修改常量 const ll MOD=1e9+7; const int MAXN=2000000; ll inv[MAXN+5],fac[MAXN+5],invfac[MAXN+5] 阅读全文
posted @ 2019-06-15 21:48 韵意 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 每个世界可以和别的世界连通,也可以直接联通虚拟的已经毁灭的世界,这样变成一个最小生成树问题。 但是好像哪里不对? 有人用dp过掉的? 不太清楚怎么搞的。 其实就是最小生成树…… 阅读全文
posted @ 2019-06-15 21:22 韵意 阅读(137) 评论(0) 推荐(0) 编辑
摘要: https://scut.online/p/278 第一次遇到不需要并查集的左偏树。 cpp include using namespace std; typedef long long ll; int n,m; const int MAXN=1000005; int tot,v[MAXN],l[M 阅读全文
posted @ 2019-06-15 17:40 韵意 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 这个并不是左偏树+并查集。 左偏树+并查集里面,每个节点是主要的元素,要关心的节点当前处在哪棵左偏树的管辖内。 而纯粹的左偏树里面,左偏树本身是主要的元素,只关心左偏树本身的合并。 个堆合并了之后,把其中一个完全加入另一个,空的堆就自己去新建一个位置。 多套一层指针来记录各个工厂对应的树现在到了哪里 阅读全文
posted @ 2019-06-15 17:28 韵意 阅读(135) 评论(0) 推荐(0) 编辑
摘要: https://scut.online/p/299 $dp[i][k]$ 为前 $i$ 个数分 $k$ 组的最大值,那么 $dp[i][k]=max_{p=1}^{i 1}\{dp[p][k 1] sum(p+1,i)\} $ 带FFT优化,反而更慢。这个可以理解。本身乘法是$O(nm)$,这里m小 阅读全文
posted @ 2019-06-15 01:46 韵意 阅读(164) 评论(0) 推荐(0) 编辑
摘要: https://scut.online/p/157 鉴于多年(都没几个月)搞数论的经验,这种时候枚举g肯定是对的。 那么肯定是要莫比乌斯函数作为因子,因为很显然? 但是为什么要搞个负的呢?其实是因为这个题目的g==1的时候并不都是合法的,反而是g==2的时候都是合法的,所以g==6的时候才是重复的。 阅读全文
posted @ 2019-06-14 23:18 韵意 阅读(173) 评论(0) 推荐(0) 编辑
摘要: https://scut.online/p/205 连着做所以一开始就觉得是网络流。 这种至多分配几次的很有网络流的特征。 一开始想从食物和饮料流向牛,但是怎么搞都不对。 其实可以从s流向食物,食物流向牛,牛流向饮料,饮料流向t。 cpp include using namespace std; t 阅读全文
posted @ 2019-06-14 18:34 韵意 阅读(156) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 29 下一页