ICode9

精准搜索请尝试: 精确搜索
  • #539. 「LibreOJ NOIP Round #1」旅游路线2020-10-08 08:00:42

    题目描述 https://loj.ac/problem/539 题解 显然是跑到没油了才加油,所以设f[i,j]表示从点i开始钱为j的最大距离,逆着做 转移考虑设g[i,j,k]表示从i到j走2^k步的答案,倍增求 再求出w[i,j,k]表示从i到j走k步的答案,拆位后做log次 最后二分答案 code #pragma GCC optimize(3) #include <

  • HIT暑期集训 网络流建图2020-08-24 20:01:11

    A    LibreOJ 2979 D    LibreOJ 6014 E    LibreOJ 6015 F    LibreOJ 2031 G    LibreOJ 6226 题解参考:https://www.cnblogs.com/mrclr/p/9694664.html #include<cstdio> #include<cstring> #include<queue> #include<cmath> #define maxn 40005 #de

  • LibreOJ - 10202 樱花 数论,因子个数,唯一分解2020-08-11 20:34:15

        int prime[maxn]; int vis[maxn]; int euler_sieve(int n) { int cnt = 0; vis[1] = 1; for (int i = 2; i <= n; i++) { if (!vis[i]) prime[cnt++] = i; for (int j = 0; j < cnt; j++) { if (i * prime[j] >

  • 「LibreOJ NOI Round #2」简单算术2020-07-02 19:35:09

    令\(b_i\)为在答案中我们选择\(x^i\)系数的次数 那么显然 \(\sum_{i=0}^n b_i=m\) \(\sum_{i=0}^n i*b_i=k\) 把方案数列出来 \(\prod_{i=0}^n (^{m-\sum_{j=0}^{j-1}b_j}_{b_i})\) 我们发现 若\(p|m\) 那么对于任意\(b_i\) 均有\(p|b_i\) 所以\(p|k\) 所以当\(p|m\)时 设\(f(i,j)

  • 数列分块入门 1 LibreOJ - 62772020-05-08 20:02:52

        有趣的分块理论讲解   数列分块入门 1 LibreOJ - 6277    给出一个长为 nn 的数列,以及 nn 个操作,操作涉及区间加法,单点查值。 Input 第一行输入一个数字 nn。   第二行输入 nn 个数字,第 ii 个数字为 aiai,以空格隔开。   接下来输入 nn 行询问,每行输入四

  • [LOJ#500]「LibreOJ β Round」ZQC的拼图2020-04-24 23:00:07

    题目   点这里看题目。 分析   首先不难发现答案具有单调性,因此可以二分答案。答案上限为\(V=2m\times \max\{a_i, b_i\}\)。   考虑如何去判断当前的答案。设这个答案为\(mid\)。   我们可以将一块三角形拼图看做一个向量,表示在这个拼图内走过的位移。因此我们的叠放的拼

  • 「LibreOJ β Round #3」绯色 IOI(危机)(单调栈+动态规划+复杂度分析)2020-04-22 12:53:56

    https://loj.ac/problem/522 第一个性质是在告诉我们这是个DAG。 所以暴力的做法就是设\(f[i]\)表示\(i\)结尾的最大答案,去枚举能够到达\(i\)的\(j\),转移即可,转移顺序可以按半径从大到小。 注意到那个转移式显然是不可优化的,也就是我们只能暴力枚举\(j\),事实上对于每个\(i\)可能的

  • 最敏捷的机器人 LibreOJ - 10120 RMQ问题分别做一个最大值与最小值2020-04-21 20:53:30

    Wind 设计了很多机器人。但是它们都认为自己是最强的,于是,一场比赛开始了…… 机器人们都想知道谁是最敏捷的,于是它们进行了如下一个比赛。首先,他们面前会有一排共 nn 个数,它们比赛看谁能最先把每连续 kk 个数中最大和最小值写下来,当然,这些机器人运算速度都很快,它们比赛的是谁

  • LOJ#508. 「LibreOJ NOI Round #1」失控的未来交通工具2020-01-29 21:03:17

    题意 一个带边权无向图,有两种操作:加边以及询问在\(x,x+b,...,x+(c-1)b\)这些数中,有多少个数存在至少一条与之模\(m\)同余的从\(u\)到\(v\)的路径(可以不是简单路径)。 做法 奇数 考虑某一边\((u,v,w)\in E\),从\(u\)到\(v\),通过来回绕圈的方式,能形成\(2k+1\)的关于\(w\)系数,将其放

  • LOJ526「LibreOJ β Round #4」子集2019-11-24 20:56:19

    题目 算是比较裸的题吧。 首先我们把符合要求的\((i,j)\)建一条边,那么我们要求的就是最大团。 转化为补图的最小独立集。 然后我们来证明补图是一个二分图。 \((u,v)\)有边\(\Leftrightarrow(u,v)=1\wedge(u+1,v+1)=1\)。 那么\(u,v\)的奇偶性显然不能相同,所以我们可以把这个图

  • LOJ576 「LibreOJ NOI Round #2」签到游戏2019-11-19 11:52:55

    题目 先进行一个转化: 每次花费\(\gcd\limits_{i=l+1}^rB_i\)的代价,可以连\((l,r)\)这一条边。 然后我们需要求\(0\sim n\)的最小生成树。 根据Kruskal的思想,\((0,n)\)这条边一定会被选。 然后根据Prim的思想,对于某个点,我们需要找到其最短的出边。 而显然对于\(i\),它最短的出边为

  • [loj#539][LibreOJ NOIP Round #1]旅游路线_倍增_dp2019-08-27 23:02:30

    「LibreOJ NOIP Round #1」旅游路线 题目链接:https://loj.ac/problem/539 题解: 这个题就很神奇 首先大力$dp$很好想,因为可以把一维放到状态里以取消后效性。 然后就能倍增了...因为就是个智障$dp$ 我没想出来/px 代码: #include <bits/stdc++.h>#define N 110 #define M 1010 #de

  • 题解【loj537】「LibreOJ NOIP Round #1」DNA 序列2019-07-21 10:02:55

    题目描述 \(NOIP\)复赛之前\(HSD\)桑进行了一项研究,发现人某条染色体上的一段\(DNA\)序列中连续的\(k\)个碱基组成的碱基序列与做题的 \(AC\) 率有关!于是他想研究一下这种关系。 现在给出一段 \(DNA\) 序列,请帮他求出这段 \(DNA\) 序列中所有连续\(k\)个碱基形成的碱基序列中,出现最

  • LOJ504「LibreOJ β Round」ZQC 的手办2019-07-03 08:48:31

    https://loj.ac/problem/504 题解 对于区间取\(\max\),这个比较好办,直接在线段树上打标记就行了。 如果让我们弹出前\(n\)个数,我们可以用类似超级钢琴的思想,队列中每个元素是一个线段树节点,弹出时记录最值的位置,然后分成两半继续做就行了。 代码 #include<bits/stdc++.h> #define N

  • 「LibreOJ β Round #2」计算几何瞎暴力2019-06-26 18:41:29

    https://loj.ac/problem/517 题解 首先我们如果没有排序这个骚操作的话,可以直接记一下各个数位的前缀和,然后异或标记给全局打,查询的时候先把区间信息提取出来然后整体异或就好了。 对于排序,我们考虑对所有排好序的节点建\(trie\)树,这样即使有全局异或标记,我们也可以在\(trie\)树上

  • 「LibreOJ β Round」ZQC 的手办2019-06-23 20:03:48

    https://loj.ac/problem/504 一类套路题. 首先这个玩意可以两个logn树套树做。。。。 naive地,把区间内的所有数拿出来放进堆里。不断取出。 太多了。 所以开始只保留那初始logn区间最小值,弹出之后再找出左右区间下一个 线段树维护最小值和最小值位置。   和超级钢琴,异或粽子,K个串

  • 【杂题】[LibreOJ #6608] 无意识的石子堆【容斥原理】【FFT】2019-06-11 08:54:04

    Description Solution 943718401=225*2^22+1 显然每行必须有两个,我们不妨枚举有k列有2个石子,那么有2(n-k)列有1个石子。 \[Ans=\sum\limits_{k=0}^{n}{m\choose k}{m-k\choose 2(n-k)}S_k\] 抽象一下问题,我们有n种颜色的球,每种颜色的球有两个且没有区别,现在要将它们放进k+2(n-k)个

  • LOJ#503. 「LibreOJ β Round」ZQC 的课堂(容斥+FHQTreap)2019-05-19 20:41:42

    题面 传送门 题解 首先\(x\)和\(y\)两维互相独立,可以分开考虑,我们以\(x\)为例 我们把\(x\)做个前缀和,那么就是问有多少\(i\)满足\(s_is_{i-1}<0\),其中\(s_0=1\)。这个条件等价于\(\max(s_i,s_{i-1})>0\)且\(\min(s_i,s_{i-1})<0\)。我们可以容斥一下,就是总数减去\(\max(s_i,s_{i-1}

  • 「LibreOJ β Round #4」求和2019-03-24 21:37:58

    题目链接 题意分析 \[\sum_{i=1}^n\sum_{j=1}^mμ^2(gcd(i,j))\] \[=\sum_{i=1}^n\sum_{j=1}^m\sum_{d=1}^{min(n,m)}μ^2(d)[gcd(i,j)==d]\] \[=\sum_{d=1}^{min(n,m)}μ^2(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}[gcd(i,j

  • 「LibreOJ NOI Round #1」验题2019-02-22 18:00:48

     麻烦的动态DP写了2天 简化题意:给树,求比给定独立集字典序大k的独立集是哪一个   主要思路: k排名都是类似二分的按位确定过程。 字典序比较本质是LCP下一位,故枚举LCP,看多出来了多少个独立集,然后判断;枚举完LCP,再往回做过去。   外面: 假如是一串0101010表示每个点有没有在独立集里,

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

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

ICode9版权所有