「JOISC 2020 Day1」汉堡肉】的更多相关文章

我终于学会打开机房的LOJ了! description LOJ3272 有\(n(n<=2*10^5)\)个矩形,让你找\(k(k<=4)\)个点可以覆盖所有矩形(点可重复),输出一种方案.(保证有解) Solution 可以注意到k很小. 从边界考虑.找到x=max(l[]),y=min(r[]),x=max(d[]),y=min(u[])的四条关键线.四条关键线围成了一个关键矩形(注意:只考虑边线,是空心的). 每条关键线必须要被覆盖,此时脑海中yy出了很多种情况.容易发现如果不选择矩形端…
LOJ#3032. 「JOISC 2019 Day1」馕 处理出每个人把馕切成N段,每一段快乐度相同,我们选择第一个排在最前的人分给他的第一段,然后再在未选取的的人中选一个第二个排在最前的切一下,并把第二段给他,这样下去一定有解 代码细节具体在比较大小的时候成绩可能需要int128 然后在给每个人分段的时候,把一个馕的长度当成\(Nq\),把要得到的每段长度当成\(sum\)(所有段快乐度的总和)就可以1去分了 #include <bits/stdc++.h> #define fi first…
LOJ#3031. 「JOISC 2019 Day1」聚会 听说随机可过? 我想了很久想了一个不会被卡的做法,建出前\(u - 1\)个点的虚树,然后找第\(u\)个点的插入位置,就是每次找一条最长链,询问链的两个端点和u的虚树,如果u在链上那么二分找出u的位置,如果u不在链上且和链相连的点不在链上,那么建出那个点然后连上u,否则删除整条链,保留与u相连的那个点,继续这个操作 二分的代价应该最多是11,每次差不多删掉两个儿子是18/2 = 9 然而这个上限肯定跑不到,最后实测操作次数最多的数据点…
LOJ#3030. 「JOISC 2019 Day1」考试 看起来求一个奇怪图形(两条和坐标轴平行的线被切掉了一个角)内包括的点个数 too naive! 首先熟练的转化求不被这个图形包含的个数 -- 也不好求 我们把c转化成max(c,a + b) 就会发现这条斜线把不合法的刚好分成了三个部分,也就是第一门小于a的,总分大于c的,和第二门小于b的总分大于c的,和总分小于c的 你可以发现前两个部分是不相交的,于是开个树状数组把询问按c排序做一遍就好了,然后点集按s + t排序,小于c的就从所在的…
「JOISC 2014 Day1」巴士走读 将询问离线下来. 从终点出发到起点. 由于在每个点(除了终点)的时间被过来的边固定,因此如果一个点不被新的边更新,是不会发生变化的. 因此可以按照时间顺序,依次提高终点的时间,然后跑dijkstra(记得把访问标记回滚清空掉). 每条边被跑过了就不再跑了.可以用set,也可以vector(排序,记当前在第几条边) #include <bits/stdc++.h> #define rep(q, a, b) for (int q = a, q##_end…
「JOISC 2014 Day1」 历史研究 Solution 子任务2 暴力,用\(cnt\)记录每种权值出现次数. 子任务3 这不是一个尺取吗... 然后用multiset维护当前的区间,动态加,删点即可. 子任务4 目前可以支持在\(o(log(n) )\)的时间里动态加,删单点了. 容易想到莫队. 直接用multiset维护复杂度\(o(n \sqrt n log(n))\).(一脸不可过) 稍微优化一下 ​ 若使用cnt记录的话,是没法很好的删点的. ​ 对于目前要处理的块\([l,r…
题目又臭又长,但其实题意很简单. 给出一个长度为\(N\)的序列与\(Q\)个询问,每个询问都对应原序列中的一个区间.对于每个查询的区间,设数\(X_{i}\)在此区间出现的次数为\(Sum_{X_{i}}\),我们需要求出对于当前区间\(X_{i}*Sum_{X_{i}}\)的最大值. 数据范围:\(1\leq N,Q\leq10^{5},1\leq X_{I}\leq1 0^{9}\) 众所周知,对于没有修改的区间查询问题且数据范围在\(1e5\)的题目,我们首先就可以考虑使用莫队来解决,事…
目录 题目 考场思考 思路分析及标程 题目 点这里 考场思考 大概是标准的莫队吧,离散之后来一个线段树加莫队就可以了. 时间复杂度 \(\mathcal O(n\sqrt n\log n)\) . 然而被卡常了...只有 \(40pts\) ... 自闭中... #pragma GCC optimize(2) #include<cstdio> #include<vector> #include<algorithm> #include<cmath> using…
题目   点这里看题目. 分析   做法比较容易看出来.我们对于每个城市,找出那些 " 如果这个城市在首都内,则必须在首都内的其它城市 " ,也就是为了让这个城市的小镇连通而必须选的城市.   接着,我们新建一个有向图,将一个城市看成一个点,一条边\((u,v)\)代表 " \(u\)在首都则\(v\)必在首都 " ,即上文所说的关系.对这个图进行强连通分量分解.假想我们对这个图缩点.缩点后的图上,一个点如果被选在首都内,它所能到达的点都必须选在首都内,我们称选定它…
题目传送门 注意 同性必定不同色 必有一个同色异性,且不相互不喜欢 Solution 我们发现,我们问题比较大的就是如何确定性别问题.我们可以一个一个加进去,在原来已经确定了的二分图上增加新的性别关系,这个可以用线段树上二分找到. 设找到的集合为 \(S\),元素为 \(S_0,S_1,...\),那么你可以发现 \(|S|\) 只有两种情况. \(|S|=1\) 这种时候说明 \(L_{L_x}=x\),所以 \(S_0\) 就是与 \(x\) 同色的. \(|S|=3\) 这个时候 \(S_…
Solution 考虑从\((x_1,y_1)\)走到\((x_2,y_2)\)满足只改变一次方向,则容易求出先向南走当且仅当 \[\frac{a_{x_1} - a_{x_2}}{x_1 - x_2}<\frac{b_{x_1} - b_{x_2}}{x_1 - x_2} \] 我们思考,没有用的行或列满足什么条件. 以行为例,考虑有三行:\(x=i, x=j,x=k\),两列:\(y=l,y=r\),从\((i,l)\)走到\((k,r)\)我们的条件是在\(x=j\)上走过一定更劣,故而能…
「JOISC 2019 Day3」穿越时空 Bitaro 题解: ​ 不会处理时间流逝,我去看了一眼题解的图,最重要的转换就是把(X,Y)改成(X,Y-X)这样就不会斜着走了. ​ 问题变成二维平面上每个横坐标上只有一块区间是空的,你要求的是你从(A,B)走到(C,D)的最短路,直接上线段树维护区间答案和状态. ​ 大概就是一段区间,要么它最后等价于一个(L,R),L是这段区间L的最大值,R是最小值:要么它最后被压成唯一一条路径. ​ 代码不想放了,想要的话上loj看吧.…
LOJ#3036. 「JOISC 2019 Day3」指定城市 一个点的可以dp出来 两个点也可以dp出来 后面的就是在两个点的情况下选一条最长的链加进去,用线段树维护即可 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #…
LOJ#3034. 「JOISC 2019 Day2」两道料理 找出最大的\(y_{i}\)使得\(sumA_{i} + sumB_{y_i} \leq S_{i}\) 和最大的\(x_{j}\)使得\(sumA_{x_{j}} + sumB_{j} \leq T_{j}\) 然后我们相当于从\((0,0)\)走到\((n,m)\)一条路径,如果\(i,y_{i}\)在路径上或路径上方,那么就加上\(P_{i}\),如果\(x_{j},j\)在路径上或路径下方,就加上\(Q_{j}\) 我们加上…
LOJ#3033. 「JOISC 2019 Day2」两个天线 用后面的天线更新前面的天线,线段树上存历史版本的最大值 也就是线段树需要维护历史版本的最大值,后面的天线的标记中最大的那个和最小的那个,区间中最小的可用天线值,区间中最大的可用天线值 \(i\)可以被\(j\)用到,那么\(j\)在\([i + A_{i},i + B_{i}]\)中,我们枚举右端点的时候,假如到了\(i + A_{i}\)就把\(i\)标记为可用,如果到了\(i + B_{i} + 1\)就把\(i\)标记为不可用…
「BalkanOI 2018 Day1」Election 记C为1,T为-1,\(sum[i]\)为\(i\)点的前缀和. 对于询问\([l,r]\),分两步计算答案. 要求所有点的\(sum[i]-sum[l-1] \geq 0\),那么就把一些点拔高,需要删去的点数为\(max(sum[l-1]-sum[i])\),最终得到\(sum^{'}[i]\),记需要删去的点个数为\(ans_1\). 要求所有点\(sum^{'}[r]-sum^{'}[i] \geq 0\),那么就把一些点降低,需…
「BalkanOI 2018 Day1」Minmaxtree 每个点都有一个最大和最小权值的限制. 然后每一个权值的限制都必须要取到. 每个点显然可以直接让他取到最大或最小权值. 可以想到每个点匹配一个权值. 不就是一个二分图吗... 每个点连向最大和最小权值,然后跑dinic,输出方案,当然本题匈牙利可以跑过. 接下来就是要求每个点的权值限制:可以用LCT直接链标记,也可以离线下来,排序后,依次加入,用一个并查集跳过已经访问过的点. #include<bits/stdc++.h> #defi…
\(\mathcal{Decription}\)   Link.   这是一道通信题.   给定一个 \(n\) 个点 \(m\) 条边的连通无向图与两个限制 \(A,B\).   程序 Anthony 需要用 \(0\sim A-1\) 共 \(A\) 中颜色为无向图的每条边染色.   程序 Catherine 需要帮助一只猫行走:已知猫所在结点邻接每种颜色的边的数量,你需要告诉猫走哪种颜色的边(但不能让它走特定某条),并保证猫从起点 \(s\) 到 \(0\) 所走的距离不超过两点最短距离…
题目描述 译自 BalticOI 2011 Day1 T3「Switch the Lamp On」有一种正方形的电路元件,在它的两组相对顶点中,有一组会用导线连接起来,另一组则不会.有 N×M 个这样的元件,你想将其排列成 N 行 M 列放在电路板上.电路板的左上角连接电源,右下角连接灯泡.试求:至少要旋转多少个正方形元件才能让电源与灯泡连通,若无解则输出 NO SOLUTION. Casper is designing an electronic circuit on a N×M rectan…
题目链接:bzoj4237 ​ loj2880 考虑\(cdq\)分治,按\(x\)坐标排序,于是问题变成统计左下角在\([l,mid]\),右上角在\([mid+1,r]\)的矩形数量 我们先考虑固定左下角,来看一下右上角是如何变化的 当我们固定左下角A(橙色点)的时候,我们注意到右上角的点的\(x\)坐标单调递减,\(y\)单调递增 我们再考虑左下角发生变化的情况 此时左边有三个点\(A,B,C\),右边有四个绿色的点(不含点\(D\)),\(A\)可以和右边上方的三个点产生贡献,\(B\)…
题意 题目链接 分析 如果走到了下行车站就一定会在前面的某个车站走回上行车站,可以看成是一对括号. 我们要求的就是 类似 代价最小的括号序列匹配问题,定义 f(i,j) 表示到 i 有 j 个左括号没有匹配. 转移时注意一个车站可以有多个左括号和右括号,如果选多个类似无限背包顺着倒着递推一遍即可. 复杂度 \(O(n^2)\) 代码 代码链接…
题面 传送门 题解 我们发现如果两个三角形相离,那么这两个三角形一定存在两条公切线 那么我们可以\(O(n^2)\)枚举其中一条公切线,然后可以暴力\(O(n^3)\)计算 怎么优化呢?我们可以枚举一个定点,然后把其它所有点按到这个定点的极角排序,那么就可以\(O(n^2)\)得出答案了 //minamoto #include<bits/stdc++.h> #define R register #define ll long long #define inline __inline__ __a…
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4244 https://loj.ac/problem/2878 题解 挺妙的一道题. 一开始一直往最短路上面想,然后怎么想发现都没有用. 然后就又开始自闭了.最后又去拜读题解了.(今天怎么读了两次题解啊,没救了没救了 一条合法的路线一定是从 \(0\) 到 \(n + 1\) 的链上套了无数个环.每一个邮戳台至少被一个环经过. 经过邮戳台的方式有 \(4\) 类: 上行 -> 邮戳台 ->…
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=2213 https://loj.ac/problem/2161 题解 做一道简单题来放松一下. 不过这道题细节挺多的,可以作为一道练细节的好题. 直接钦定出现最多的字母和出现最少的字母,这样把原序列转化成 \(\pm1\) 的序列做最大字段和就可以了. 我们可以在扫这个序列的时候用一个数组 \(s[i][j]\) 表示以 \(i\) 为出现最少的,\(j\) 为出现最多的的最大子段和,直接更新…
目录 @description@ @solution@ @accepted code@ @details@ @description@ 今天是 IOI 酱的生日,所以她的哥哥 JOI 君给她预定了一个生日蛋糕.虽然他计划买一整个蛋糕,但是他不小心订成了 N 块蛋糕.这 N 块蛋糕编号为 1\ldots N ,每块蛋糕都有价值和颜色.第 i 块蛋糕的价值为 V_i ,颜色深度为 C_i . 为了做成一整块蛋糕,他决定选择 M 块互不相同的蛋糕,然后将它们按一定顺序排成一个环.整块蛋糕的美观程度定义…
这种图论问题都挺考验小思维的. 首先,我们把从 $x$ 连出去两条边的都合并了. 然后再去合并从 $x$ 连出去一条原有边与一条新边的情况. 第一种情况直接枚举就行,第二种情况来一个多源 bfs 即可. code: #include <cstdio> #include <string> #include <vector> #include <queue> #include <algorithm> #define N 100006 #define…
非常好的一道图论问题. 显然,我们要求城市间的最小生成树,然后查询路径最大值. 然后我们有一个非常神的处理方法:进行多源 BFS,处理出每一个城市的管辖范围. 显然,如果两个城市的管辖范围没有交集的话连边一定不是优秀的(一定会有一种都在管辖范围之内的连边方式来代替这种连边方式) 然后由于每一个点只属于一个城市的管辖范围,所以每个点只会扩展一次,这个 BFS 的复杂度是线性的. code: #include <bits/stdc++.h> #define N 2006 #define M 200…
首先突破口肯定在三角形不交,考虑寻找一些性质. 引理一:两个三角形不交当且仅当存在一个三角形的一条边所在直线将两个三角形分为异侧 证明可以参考:三角形相离充要条件,大致思路是取两个三角形重心连线,将其中一个三角形延重心连线平移两三角形总会相交,同时也能根据相交情况找到一条这样的直线. 引理二:若三角形任意三点不共线,则两个三角形不交当且仅当存在两条内公切线 根据引理一,将所得到的直线平移并旋转一定能得到两条内公切线. 直接借助引理一不好将问题分割,考虑利用引理二. 注意到一对不相交的三角形公切线…
loj 3039 NKOJ Description \(n\)个蛋糕,每个蛋糕有\(w_i,h_i\).选\(m\)个蛋糕满足\(\sum\limits_{j=1}^mw_{k_j}-\sum\limits_{j=1}^m|h_{k_j}-h_{k_{j+1}}\ |\) 因为蛋糕摆成一个环所以\(k_1=k_{m+1}\) Solution 我因为最近天天做dp,直接就往dp上想的,其实是思维僵化. 然后本来可以骗46分的,因为没有考虑到答案可能是负数+数据点捆绑直接宝菱. dp就前缀和优化d…
Loj 2731 「JOISC 2016 Day 1」棋盘游戏 JOI 君有一个棋盘,棋盘上有 \(N\) 行 \(3\) 列 的格子.JOI 君有若干棋子,并想用它们来玩一个游戏.初始状态棋盘上至少有一个棋子,也至少有一个空位. 游戏的目标是:在还没有放棋子的格子上依次放棋子,并填满整个棋盘.在某个格子上放置棋子必须满足以下条件之一: 这个格子的上下一格都放有棋子: 这个格子的左右一格都放有棋子. JOI 君想知道有多少种从初始状态开始,并达到游戏目标的方案,这个答案可能会非常大.请你帮 JO…