随笔分类 - 刷题
摘要:1.D. Fixed Prefix Permutations 题解 对于每个排列p,能得到答案最大值等价于排列p与所有q能匹配的最长前缀. 对于前缀问题可以使用字典树(Trie)解决 点击查看代码 #include <bits/stdc++.h> #define int long long #def
阅读全文
摘要:1.E. Red-Black Pepper 题意: 题解: 那么我们求出一个关于x的通解,我们只需要三分找到分布在极值两边的x的解即可。 点击查看代码 #include <bits/stdc++.h> #define ll long long #define pa pair<int,int> #de
阅读全文
摘要:1. D2. Xor-Subsequence (hard version) 题解 easy版本 点击查看代码 #include <bits/stdc++.h> #define ll long long #define pa pair<int,int> #define mp make_pair #de
阅读全文
摘要:1.E - Red and Blue Graph 题意:n个点m条边的图,选k个点染色,使得特殊边的个数为偶数,特殊边指连接这条边的2点一个染色一个未染色 题解: 由此可见,特殊边的奇偶性和选的k个点的度数和的奇偶性相同 那么我们进行枚举,枚举奇数度数的点选x个,偶数度数的点选k-x个 点击查看代码
阅读全文
摘要:1.Ex - Yet Another Path Counting 题意: 的棋盘,每个格子有一个颜色标号 两个有相同颜色棋格,它们的路径方案数为从其中一个棋格只能向下或向右移动到另一个棋格的方案数 问任何两个有相同颜色棋格的路径方案数的总和
阅读全文
摘要:1.E - Addition and Multiplication 2 显然选的数越多,那么最后结果的长度就越大,值就越大 设minn为C中最小的花费 那么最长长度就是 那么长度确定了,我们要答案最大肯定是选的数的位置越大,答案就越大
阅读全文
摘要:1.永世乐土 具体题面 因为是与运算,不妨一位一位的处理, 2进制位从高往低枚举是否能把第i位加入到答案(搜索是否能由起点到终点) 能到达就答案加(1<<i)(i为当前枚举的2进制位),并将原图中的点改变 比如: 2*2的图 4 7 3 4 枚举第2位,那么图转变为 1 1 0 1 问题等效到给你一
阅读全文
摘要:1.D - Index Trio 设M为最大值,可以证明三元组不会超过MlogM个 d为最大正整数,且,所以三元组不超过 暴力枚举 点击查看代码 #include<bits/stdc++.h> #define ll long long #define pa pair<l
阅读全文
摘要:1.B - Triple Shift 不难发现,只要数组A和B的集合不一样就是No 如果一样,那么一定能从头往后的前N-2项都能匹配上 那么n-1和n项的顺序是关键,因为后两项不能操作 这道题关键是奇偶排列,若A和B排列(先假设A和B无重复数)的奇偶性相同,那么一定能A变为B 因为,一次operat
阅读全文
摘要:###前缀和和差分 令 那么sum[]的差分数组就是a[], a[]的前缀和数组为sum[] ###普通差分 1.积木大赛 每次操作为区间操作,可看作差分b[l]++,b[r+1]-- 所以题目所给的a[]就是差分数组b[]的前缀和 差分数组的正负是相
阅读全文
摘要:1.E1. Cats on the Upgrade (easy version) 点击查看代码 #include<functional> #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #inclu
阅读全文
摘要:1.蜃楼观光 求解式子的转化十分巧妙 2.灵力之泉 树形换根dp 注意vector边界等问题 3.「Nhk R1 C」Zet'ubou Another 一共就2500个障碍 我们可以对nn的图进行转化, 对于每一列把连续的无障碍的区间缩成一个点 对于每个障碍物的纵坐标排序、离散化,把2个障碍物纵坐标
阅读全文
摘要:###题目描述 ###题解 首先考虑非余数情况下 在余数下,ln可以转换为ind指标形式 则 \(k\cdot ind(x)\equiv
阅读全文
摘要:##比赛 ###A 肯定从小到大构造,不难发现最大序列就是斐波那契数列 点击查看代码 #include<functional> #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #include<st
阅读全文
摘要:###题目 题目简单来说就是给出两个序列A和B,通过两种操作使得序列A与B相同 操作: 1 . 选择加或减1,需要X花费 2 . 交换,需要Y花费 ###题解 首先两个操作是可以独立操作的,我们可以先对序列A进行操作2 然后对操作完的序列A进行操作1使得A=B 进
阅读全文