- 2024-11-21[COCI2015-2016#6] PAROVI | 互质覆盖 题解
前言不能在同一个坑上栽第三次!题目链接:原题;加强版。题意简述\(1\simn\)数轴,你可以使用若干条线段\([l,r]\)来覆盖,其中要满足\(\gcd(l,r)=1\)。问你能够完全覆盖数轴的方案数,对\(M\)取模。\(2\leqn\leq10^4\),\(2\leqM\leq10^9+7\)。不保证\(M\)为质数。
- 2024-10-19P6533 [COCI2015-2016#1] RELATIVNOST 题解
考虑当$q=0$时怎么做。注意到性质$c\le20$,因此不妨正难则反,将**至少有$c$个人购买彩色画**的方案数转化为总方案数减去**不足$c$人购买彩色画的方案数**。这个是一个类似凑数的dp,不妨考虑背包。我们有$f_{i,j}$表示前$i$人中**恰好**$j$人购买彩色画的方
- 2024-09-24[COCI2015-2016#2] VUDU
[COCI2015-2016#2]VUDU题意求一个序列中有多少个子段平均数大于\(P\)。思路区间和相关的问题可以考虑前缀和。对于原序列前缀和序列\(a\),询问等价于求数对\((l,r)(l\ler)\)的个数,满足:\[\frac{a_r-a_{l-1}}{r-l+1}\geP\]移项整理得:\[a_r-Pr\gea_{l-1}-P(l-1)\]
- 2024-09-10P7230 [COCI2015-2016#3] NEKAMELEONI
这个做法与\(k\)无关。非常好常数,爱来自Hanghang。Hanghang给出了一个空间\(O(n)\),常数很小,代码很短的单侧递归做法。我们考虑维护哪些区间是不符合要求的,对于一个数\(a_x\),下一个\(a_x\)下标是\(d_x\),则满足\(x<l\ler<d_x\)的区间\((l,r)\)是不符合要求的。然
- 2024-08-12P8037 [COCI2015-2016#7] Prokletnik
思路:首先考虑离线。设\(Min-nxt_i\)表示下一个小于\(a_i\)处的位置,\(Max-nxt_i\)表示下一个大于\(a_i\)处的位置。那么\([l,r]\)是魔法区间当且仅当:\(r\)是\([l,r]\)的最大值,且\(r<Min-nxt_l\)。\(r\)是\([l,r]\)的最小值,且\(r<Max-nxt_l\)。
- 2024-08-10[COCI2015-2016#3] NEKAMELEONI 题解
前言题目链接:洛谷。题意简述你要维护一个序列\(a_i\in[1,k]\)(\(k\leq50\)),支持:单点修改;询问最短的包含全部\(1\simk\)的自区间长度,或报告无解。题目分析我想到了两种做法,写题解以加深印象。方法\(1\):直接用线段树维护只有单点修改,尝试用线段树维护分治。考虑
- 2024-08-05[COCI2015-2016#3] NEKAMELEONI 题解
前言题目链接:LOJ;洛谷。题意简述在二叉树上,不断删除叶子,你要维护其树链剖分后重儿子编号和。如果两个孩子大小相同,在一开始连向左儿子,或者保持修改前的连接。\(n\leq2\times10^5\)。题目分析有分块的、有二分的,那我来讲一讲我的想法——树剖维护树剖。首先反转操作,不断
- 2024-07-22[COCI2015-2016#1] UZASTOPNI 题解
前言题目链接:洛谷。题意简述一棵有根树,节点数\(n\leq10^5\),每个点有权值\(v_i\leq2000\),现在选出一些点,满足:一个点的父亲点若未被选择则其不能被选择。所选点的集合内不能有相同的权值。对于每一个选择的点,其子树中所有被选择点的权值必须可以构成公差为\(1\)的等
- 2024-07-22[COCI2015-2016#1] RELATIVNOST 题解
前言题目链接:洛谷。这道题有很多做法,但是模拟赛寄了,故记之。题意简述给你两个长为\(n\)的序列\(A\)和\(B\),和一个常数\(c\leq20\),有\(q\)次修改。每次修改后求:\[\large\sum_{S\subseteq\lbracei\rbrace_{i=1}^{n}\land|S|\geqc}\prod_{x\inS
- 2024-07-14[COCI2015-2016#6] PAROVI 的题解
题意选择一些\(n\)一下互质的二元组\(\{a,b\}\),求对于任意\(x\in\big[2,n\big]\)都不满足\(a,b<x\)和\(a,b\gex\)的个数。简化题意因为无解的情况只发生在所有的\(\{a,b\}\)之间没有多余的位置用于放置\(x\),所以题意可以抽象成这样:选择一些区间互质的区间\([a
- 2024-06-05P7860 [COCI2015-2016#2] ARTUR
原题链接教训1.计算几何,能用乘法就不用除法2.计算几何,开longlong3.计算几何,注意直线的特殊性code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;structnode{llx1,y1,x2,y2;}sk[5005];intcheck(nodea,nodeb){if(a.x2<b.x1||a.x1>b.