ICode9

精准搜索请尝试: 精确搜索
  • Split Into Two Sets2022-08-04 01:00:43

    传送门 题意: P最近准备多米诺骨牌,每张多米诺骨牌包含两个数字从1 ~ n, 他能把多米诺骨牌分配给两个集合使得每个集合中的元素都是不相同的吗? 每张多米诺骨牌只能去一个集合 思路: 先考虑特殊的,如果牌的数字重复,一个数字出现 >= 3, 牌的数量是奇数,这些就是不可能的,而且每个数字1 ~

  • 2022.8.3 颓废记录2022-08-04 00:31:10

    Preface 数据结构题太珂怕了QAQ Content [CF165D]Beard Graph 给定一棵 \(n\) 个结点的数,初始所有边均为黑边,\(m\) 次操作,操作分 \(3\) 种: 1 u:把第 \(u\) 条边变成黑边。 2 u:把第 \(u\) 条边变成白边 3 u v:若 \((u,v)\) 路径上存在白边则输出 -1,否则输出路径上的黑边数量。

  • 220803 总结2022-08-03 23:33:09

    220803 总结 总之就是挂大分 顺序开题 T1 解方程:意料之中,没想到可以边读入边取模。 T2 三角形:明明暴力能拿 \(40\) 分,非要人类智慧乱搞,痛失 \(20\) 分 T3 游戏(屠龙勇士):屠龙勇士反被龙屠考场上推出来式子了但是忘了 \(x\) 前面有系数该怎么解于是去打暴力,盯着 \(p=1\) 的 \(30\) 分

  • 基环树的直径2022-08-03 22:33:45

    转载自LIOI_TEos的题解 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e6 + 100; const ll mod = 20040820; const int INF = 2147483647; const int lim = 1e4 + 1; int n, v[maxn], v2[maxn], r[maxn]; ll anss, st, ans2,

  • 八一特别行动2022-08-03 08:35:46

    题目背景:(为啥放图片你可以猜猜) A. 南 设\(g_i\)表示有\(i\)种武器,要拿到\(n\)种的期望花费 根据拿到与已有武器种类是否相同的概率,显然有 \(g_i = \frac{i}{n}g_i + \frac{n - i}{n}g_{i + 1} + cost\) \(cost\)为该次购买对总期望的贡献,每次购买会令后面所有购买花费\(+1\),那么

  • 来自学长的馈赠82022-08-03 08:00:38

    IOI 难度略微上升 A. 跳一跳 简单的期望\(DP\) \(f_i\) 表示跳到 \(i\) 再跳到 \(n\) 的期望时间 显然有 \(f_i = \frac{1}{n - i + 1}f_i + \frac{n - i}{n - i + 1}(f_{i + 1} - 1) + 1\) 最后答案为 \(f_1 - 1\) code #include<cstdio> #include<cstring> #include<algorit

  • 2022.8.2 颓废记录2022-08-03 00:34:33

    Preface 之前有看别人写过每天的做题记录,今天准备写题解时突然想起来了这个。 感觉一题一个题解太占空间了QAQ,不如以后都以这样的形式记录我的训练生活。 今天还是挺开心的,切了三道题,然后愉快地颓了一天。 Content [CF980D]Perfect Groups 题意:对于一个长度为 \(len\) 的序列 它

  • 红色的幻想乡题解2022-08-02 08:01:06

    题目传送门:https://www.luogu.com.cn/problem/P3801  由于数据范围是1e5 so 二维树状数组一定挂 因此我们想到降维即用一维树状数组,那我们该如何构造数组由于本题涉及行和列的关系我们不妨构造两个一维树状数组lin[], row[],row[]记录前i行有多少行有迷雾,lin[]记录前i列有多少列有

  • LOJ #3341. 「NOI2020」时代的眼泪2022-08-02 01:32:20

    看题解不要在多个题解之间反复横跳! 题目叙述 平面上若干个点 \((i,p_i)\) ,其中 \(p_i\) 为一个 \(1\sim n\) 的排列,\(m\) 次询问,每次询问一个矩形内部点对满足一个在左下一个在右上的数量。 题解 直接分块。 散块对整块/散块的贡献 预处理 \(s_{i,j}\) 表示 \(1\sim i\) 这些块内,

  • SP3267 DQUERY - D-query2022-08-01 22:01:38

    题目大意: 给出一个长度为n 的数列,\(a_{1},a_{2},...,a_{n}\),有q 个询问,每个询问给出数对 \((i,j)\),需要你给出 \(a_{i},a_{i+1} ,...,a_j\) 这一段中有多少不同的数字 分析: 考虑到树状数组对于处理前缀和问题很方便,自然,尝试用树状数组来进行处理。设 \(tree[i]\) 表示前 \(i\) 个

  • 后缀自动机(SAM)习记2022-08-01 21:03:10

    前言 本文没有构造证明,因为我不会 基础概念看看就好,自娱自乐。 后期重点更新相关题目的简单总结,方便复习 SAM 基础概念 S 的后缀自动机是一种能够识别所有 S 的子串的自动机类型的数据结构(DFA)。 暴力后缀自动机 对于字符串 \(S\),建立插入了 \(|S|\) 个后缀的 Trie 树。这样显然可

  • CodeTon Round 2 (Div. 1 + Div. 2, Rated, Prizes!)2022-08-01 15:33:59

    \(\texttt{Rating Change:}\color{orange}{2213}\color{black}\to \color{orange}{2225}\) \(\Delta={\color{green}{\texttt{12}}}\qquad \texttt{rank:510}\) 最近质量最高的一场 Chinese Round 吧。 A 可以转化成每次将前面两个中选一个留下。这样也就是说只有 \(b\) 的第一位

  • "蔚来杯"2022牛客暑期多校训练营32022-08-01 09:33:43

    是我太菜了 加上补提也才三个题 A Ancestor 题目主要是让我们求长度为k-1的点集的最近公共祖先(一个点被删了) 方法一用到结论 我们只用取这些点中dfs序最小和最大的两个点来求最近公共祖先就行。 方法二可以维护一个前缀和后缀lca数组 每次删除该点 相当于是求lca(pre[i-1],suf[i+1

  • 【Coel.学习笔记】莫队(下)- 树上莫队和二次离线莫队2022-07-31 16:33:45

    树上莫队和二次离线莫队都比较难,所以只讲几个模板(明明是你太懒了)。 树上莫队 我们之前处理的问题都是在数列上的,如果换成树,怎么办呢?下面这题给出了一个常用的方法。 SP10707 COT2 - Count on a tree II 洛谷传送门 给定一棵点带权的树,静态询问每两个节点之间(包括端点)路径上的不同

  • [CSP-S 2021]廊桥分配 题解2022-07-30 19:04:07

    传送门QAQ Preface 这道题当时在考场上就大致想清楚了做法,考场下写了个巨丑无比的树状数组+二分+线段树+ STL set,我都不知道我是怎么写下来的。 现在回看这道题,发现真的不难QAQ,当时太菜了。当然,现在也菜。 Analysis 注意:这道题的“先到先得”是让我们按照飞机到达的时间升序排序。

  • [NOIP2021]方差 题解2022-07-29 22:34:38

    传送门QAQ Preface 现在看来当时的我还是太菜了啊QAQ(虽然现在也很菜 Analysis 显然,原序列中每个数都减去同一个数后,方差也不会有任何改变。 为了方便,这里我们先让原式中每个 \(a_i\) 减去 \(a_1\)。 考虑将题中要求的这个式子化简(很简单,过程省去): \[n\times \sum_{i=1}^n a_i^2-(\s

  • 字符串2022-07-29 22:01:19

    哈希与哈希表 • 使用一个哈希函数将某个特定的数字变成另一个数字,这种操作称之为hash。 • 通常我们会以取模运算来作为哈希函数。 • 举例: hash(key)=key%23, 这样数组 [1 ,75,324] -> [1 ,6,2] • 如果哈希后得到的值相同,我们则可用该值建一个链表,把相同的值都放一起, 这样我们

  • 2022.7.28 模拟赛2022-07-28 17:02:32

    T1 数据结构 第一个操作很好实现,只需要增加 \(x^k\) 即可 第二个操作是瓶颈,暴力做是不行的 瓶颈在操作 \(2\),若是可以减少操作 \(2\) 的复杂度,就可以通过本题 怎么做呢?我们知道每个数到底被加了几次,就可以一次性算出它的贡献 我们每次操作 \(2\) 使用一个懒标记,加入 \(x\) 就是加

  • 【题解】Educational Codeforces Round 83(CF1312)2022-07-28 07:31:30

    A.Two Regular Polygons 假设构造多边形的边数为 \(n\),给定多边形的边数为 \(m\),若顶点完全覆盖也就意味着给定的多边形可以被平均分成 \(n\) 份,也就是 \(m\) 是 \(n\) 的倍数 点击查看代码 #include<bits/stdc++.h> using namespace std; int main(){ int t; cin>>t;

  • 【题解】AT53352022-07-27 21:32:24

    思路 这只是一道普通的模拟题…… 这道题中无解的情况有两种: 不是一位数并且首位为 0。 每一位上为两个不同的值。 除此之外,我们要找到最小的 好数, 就应该把首位赋值为 1, 其余赋值为 0。 Code #include <cstdio> #include <cstring> using namespace std; const int MAXN = 15;

  • 【题解】AT52272022-07-27 21:31:32

    思路 我们可以将这一个矩阵转化为一个一维数组。 之后输入的 n 个数中,有相同的,就打上标记。 由于矩阵是 3 * 3 的,所以我们可以用 \(\Theta(1)\) 的时间复杂度进行判断。 Code #include <cstdio> const int MAXN = 15; int n; int a[MAXN]; bool flag, v[MAXN]; int main() { for

  • 【题解】AT39092022-07-27 21:31:07

    思路 看到这道题,我首先想到求到数组 \(a\) 的和 \(s1\),和数组 \(b\) 的和 \(s2\)。 如果 \(s1 > s2\), 那就不可能让两个数组完全相同。 但是样例就已经把这种方法否定了。 但是我们不难发现: 若 \(a\) 数组中的这个值小于 \(b\) 数组中的这个值,则增加 \(a\) 数组中的数字。如果

  • 悬线法初涉及其应用2022-07-27 20:34:37

    悬线法用于找出矩阵中满足特定条件的最大的矩形 说实话,像这种P4147 玉蟾宫这样的题我本来是用从上而下向下找最大值的方法(有点像悬线法,但要麻烦一点),又看了一遍题解,发现了悬线法这种比较容易理解的做法 悬线法的思想很简单,就是记录每个点向上延伸的最大长度,再算出延伸这么长时最左

  • CF1699D Almost Triple Deletions 题解2022-07-27 19:35:15

    可能更好的阅读体验 题目传送门 题目大意 给定一个长度为 \(n\) 的序列 \(a_1,a_2,\dots,a_n\),每次操作你可以选择相邻的两个不同的数字删去,然后剩下的部分连成一个序列。 现在求让这个序列所以值相等的前提下,序列的最长长度。 多组数据,数据组数 \(T\le 1000\) \(1\le n\le 5000\)

  • HDU 7171 - Range Reachability Query(分块 bitset)2022-07-27 14:03:59

    题面传送门 一道感觉思路挺自然的题,不知道为什么赛时只有三个队过(?) 首先这题肯定严格强于有向图任意两点连通性对吧,所以此题 std 时间复杂度肯定不低于有向图任意两点连通性的复杂度,即 \(\dfrac{nm}{\omega}\),而此题 \(5\times 10^4\) 的数据范围肯定 \(n^2\) 不可能过,因此 bitset

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有