随笔分类 -  洛谷

上一页 1 2 3 4 5 6 7 8 ··· 21 下一页
摘要:Jisoo 不显然的树上dp 定义$f_{i,j}$为第i位和为子树所选奇数个/偶数个点的方案数 然后显然会发现奇数加奇数等于偶数等规律 然后就可以转移了 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> 阅读全文
posted @ 2021-10-12 13:42 Simex 阅读(42) 评论(0) 推荐(0)
摘要:Jinnie 处理出所有可能的品,然后尺取法找所有的正好n个的地方,取答案 正确性?假如正确答案不是n个连在一起,那么中间无论多了谁,一定会不止多一个 并且一定会存在一种n个在一起的更优解 #include<iostream> #include<cstdio> #include<vector> #i 阅读全文
posted @ 2021-10-11 23:10 Simex 阅读(29) 评论(0) 推荐(0)
摘要:Jinnie 显然的线性dp 预处理谁是回文串就可以了 #include<iostream> #include<cstdio> #include<vector> #include<queue> #include<cstring> using namespace std; int all[1005][ 阅读全文
posted @ 2021-10-11 23:05 Simex 阅读(24) 评论(0) 推荐(0)
摘要:Jisoo 显然的转移,但是会是$O(n^3)$的,这很不好 但是可以意识到从不是同一颗树转移的时候,无需在意到底是那颗而只在意最大值 并且不会影响从自己转移 那就记录一下最大值 #include<iostream> #include<cstdio> #include<vector> #includ 阅读全文
posted @ 2021-10-11 17:59 Simex 阅读(40) 评论(0) 推荐(0)
摘要:Jisoo 思路比较显然的dp 我们怎么走?状压一波 当然可以,但是也不用 $f_{i}$表示第i天的最小花费,显然我们只要枚举上一个转换点就可以了 毕竟转换了之后,之前怎么走的就不重要了 然后spfa预处理一波 #include<iostream> #include<cstdio> #includ 阅读全文
posted @ 2021-10-11 11:13 Simex 阅读(47) 评论(0) 推荐(0)
摘要:Jennie k是给定的 把m和n扔到一个坐标系里 成了二维的了,我们又都知道$Cm_n=c_{n-1}{m-1}+c_{n-1}^m$ 然后求和那个奇特的范围 这就是个二维的前缀和啊 #include<iostream> #include<cstdio> #include<algorithm> # 阅读全文
posted @ 2021-10-07 14:05 Simex 阅读(59) 评论(0) 推荐(0)
摘要:#include #include #include #include #include #include #include #define int long long struct co{ int p; int c; int d; }c[500005]; int n,k,m; struct pp{ 阅读全文
posted @ 2021-10-07 13:56 Simex 阅读(32) 评论(0) 推荐(0)
摘要:Jennie 这也就是个裸的一批的换根dp #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<queue> #include<stack> #include<map> #define 阅读全文
posted @ 2021-10-07 13:43 Simex 阅读(29) 评论(0) 推荐(0)
摘要:Rose 用维护区间最长连续1的方法就可以维护 但是还要维护一下最左边,不过这问题不大 维护一个区间最长连续子段,不在意位置就可以了 然后就可以在查询的时候,先看一看在不在左边,在看一看在不在中间,最后看一看在不在右边 就解决了 可见学线段树靠背模板是不行的 #include<iostream> # 阅读全文
posted @ 2021-10-05 13:48 Simex 阅读(39) 评论(0) 推荐(0)
摘要:Lisa 显然的贪心思路就是尽可能的不浪费, 那么就首先从前往后扫,把能拿且不浪费的大的都拿到 然后从小往大,在第一次没取到过的情况下争取放一个就可以大于c 然后记录一下这个情况,加快运算速度 #include<iostream> #include<cstdio> #include<algorith 阅读全文
posted @ 2021-10-04 23:29 Simex 阅读(66) 评论(0) 推荐(0)
摘要:Lisa 有非常显然的一点是这个题可以二分 也可以不。 我们可以首先用普通牌凑出尽可能多的幅,然后对于缺的情况缺一张用joker添就行了,缺两张或更多就用joker去完整的一副里换出所需要的东西 二分的话思想也差不多 二分了mid的时候,最多可以用mid张joker, 然后结合上面的思想,缺了的用j 阅读全文
posted @ 2021-10-04 23:14 Simex 阅读(41) 评论(0) 推荐(0)
摘要:Jennie 很有意思 首先贪心的对每一个a中字符匹配B中出现的第一个对应未匹配字符,这样的话就有了顺序 然后每一次的操作是交换相邻的字符,很像某种求逆序对方式对不对 然后这个题就是求逆序对 #include<iostream> #include<cstdio> #include<algorithm 阅读全文
posted @ 2021-10-03 13:02 Simex 阅读(42) 评论(0) 推荐(0)
摘要:Lisa 贪心,贪心 首先考虑能打就打,我方最牛逼的能干过对方最牛逼的就干他 我们最垃圾的能干过对方最垃圾的就上去干他 如果都不行的话,那就派我方最垃圾的干翻敌方最垃圾的 我方最差情况就是敌方最好情况 #include<iostream> #include<cstdio> #include<algo 阅读全文
posted @ 2021-10-01 18:13 Simex 阅读(40) 评论(0) 推荐(0)
摘要:Jisoo 显然满足单调性,可以用单调队列优化 但是要维护两个值 考虑一下这两个值来说,因为每次疲劳值最多加1,那么无论如何优先选择疲劳值最小的来进行转移, 答案肯定不会更差 如果有两个数疲劳值相同但是高度不一样的话,显然保留高度更高的比较好 #include<iostream> #include< 阅读全文
posted @ 2021-09-27 11:49 Simex 阅读(54) 评论(0) 推荐(0)
摘要:Jisoo 首先可以意识到,对于这个数组,他的异或和一定不会超过数值和 所以说 \(u>v\) 直接挂了 然后意识到,区间和的奇偶性和异或和是一样的,(看第一位),这样$u!=v$也不行 剩下的呢,可以直接构造 \(u,\frac{v-u}{2},\frac{v-u}{2}\)(已经保证了分子为偶数 阅读全文
posted @ 2021-09-27 11:46 Simex 阅读(39) 评论(0) 推荐(0)
摘要:Jisoo 对于一个等差数列? 直接维护这个区间的首项和公差就可以了 最后的答案反正只有单点查询(区间也差不多) 返回那个小区间的“首项”就可以了 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #d 阅读全文
posted @ 2021-09-27 11:41 Simex 阅读(27) 评论(0) 推荐(0)
摘要:jennie 很经典的线段树维护最大子段和 我们只需要维护一下每一个区间的最大前缀,后缀,子段和区间和 对于每一个区间 他的最大前缀可能是左儿子的最大前缀或者左儿子的和加上右儿子最大前缀 后缀,同理 最大子段可能是左儿子最大后缀加上右儿子最大前缀或者说左,右儿子的最大子段 #include<iost 阅读全文
posted @ 2021-09-27 11:37 Simex 阅读(40) 评论(0) 推荐(0)
摘要:Lisa 显然对于每一个时刻,可以调到的温度是一个区间 那么这样来做的话,我们只需要算出这个区间,然后去$∪$就可以了 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define int long 阅读全文
posted @ 2021-09-27 11:33 Simex 阅读(56) 评论(0) 推荐(0)
摘要:Lisa 首先强行选择一个点 然后计算它左边最多长区间,右边也是 就可以了 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; int a[600001]; in 阅读全文
posted @ 2021-09-26 16:21 Simex 阅读(76) 评论(0) 推荐(0)
摘要:Jennie 从左往右处理骨牌,需要知道什么就可以确定状态了? 需要知道当前的差值,然后dp决定取不取反 怎样知道差值 当然是扔到状态里 然后这就是一个背包了 #include<iostream> #include<cstdio> #include<algorithm> #include<cstri 阅读全文
posted @ 2021-09-25 15:56 Simex 阅读(24) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 ··· 21 下一页