[CERC2016]凸轮廓线】的更多相关文章

题目描述 一些几何图形整齐地在一个网格图上从左往右排成一列.它们占据了连续的一段横行,每个位置恰好一个几何图形.每个图形是以下的三种之一:$1.$一个恰好充满单个格子的正方形.$2.$一个内切于单个格子的圆.$3.$一个底边与格子重合的等边三角形. 已知每个格子的边长都为$1$,请求出这些几何图形的凸包的周长. 输入格式 第一行包含一个正整数$n$,表示几何图形的个数.第二行包含$n$个字符,从左往右依次表示每个图形,$"S"$表示正方形,$"C"$表示圆形,$&q…
题意 https://www.luogu.org/problem/P3680 思考 拆点即可. 注意精度. 代码 // luogu-judger-enable-o2 #include<bits/stdc++.h> using namespace std; typedef long double ld; ; ); const ld inf=1E9; inline bool equal(ld x,ld y) { return abs(x-y)<=eps; } struct pt { ld x…
Key Knocking bzoj-4796 CERC-2016 题目大意:描述没有题面短系列..题目链接 注释:$1\le n\le 10^5$. 想法: 乱搞稳AC.考试的时候调试信息又一次杀死了我... 我们考虑:因为总长度是$3n$,要求答案不小于$2n-1$,所以我们期望每$3$个数都贡献$2$,而且最多对于每$3$个数更改一次. 分类讨论一下: 我们只需考虑$0$开头的三元组($1$开头的同理) 如果是$001$,我们动后两位,变成$010$,贡献为$2$,以此类推. $010$不动…
题目大意 有一个 \(2^n\times 2^n\) 的网格,左下角坐标为 \((0,0)\),右上角坐标为 \((2^n,2^n)\). 定义格点 \((x,y)\) 为坐标系中坐标为 \((x,y)\) 的整点. 定义格子 \((x,y)\) 为左下角格点为 \((x,y)\),右上角格点为 \((x+1,y+1)\) 的格子. 你要给每个格子标号:若一个格子的坐标为 \((x,y)\),其中 \(x=(x_0x_1\ldots x_{n-1}),y=(y_0y_1\ldots y_{n-1…
题面 \(solution:\) 某蒟蒻的心路历程: 这一题第一眼感觉很奇怪 带障碍物的图,最大的集装箱? 首先想到的就是限制我集装箱大小条件的是什么: 如果我要在某一个点上放一个集装箱且使它最大, 那就相当于求这一个点往外扩出去的最大正方形. 然后考虑从一个点到与它相邻的点移动时最大的箱子, 这不就是这两个点的最大正方形中较小的那一个吗? 于是考虑把所有点上的最大正方形都求出来,这个n^2即可 然后我就是要求两个点之间所有路径上的最小的那个最大正方形了 仔细一想,嗯?,这不就是货车运输吗?难道…
题目链接 \(Description\) 有一个\(n\times n\)的正方形网格,上面有若干障碍点.\(q\)次询问,每次询问把一个正方形箱子从\((x1,y1)\)推到\((x2,y2)\) ,不能接触障碍点且不超出边界,箱子的边长最大能是多少. \(n\leq1000,q\leq3\times10^5\). \(Solution\) 我们可以直接将非障碍点看做顶点,向周围四个非障碍点连边.这样是要求一棵最大生成树. 从每个障碍点做八连通BFS,可以得到通过每个非障碍点位置的最大直径.…
正解: 解题报告: 传送门! 首先不难想到这题主要有两个问题需要解决,一个是预处理出各个点的箱子半径最大值,一个是求ans 然后分别港下QwQ 首先关于预处理要说下昂 预处理有三种方法,分别港下 第一种是从障碍点出发,八联通bfs 就bfs,最开始是所有障碍点加入队列中,然后八联通bfs地转移,每个点第一次被找到的时候就是它能放的最大箱子的半径 第二种是二维前缀和 这个我还马油get等看了代码再来repo趴QAQ 第三种是二分 同上QAQ 然后关于具体求解,有两个正解和一个听说是假的但是听说跑得…
题意 题目描述 你正在评估一些关于一个巨型飞机仓库的建设计划.飞机仓库的地面可以表示为n行n列的网格图,其中每个格子要么是空的,要么有障碍物.行从上到下依次被编号为1到n,列从左到右依次被编号为1到n. 存放飞机零件的大型集装箱能在飞机仓库的地面上自由移动是很重要的.我们可以将每个集装箱看作一个以某个格子为中心的边平行于坐标轴的正方形.对于一个奇数k,一个尺寸为k的集装箱是一个包含k行k列的正方形.一个集装箱的坐标为其中心格子的坐标.集装箱可以向上下左右移动,但不能碰到障碍物,且不能移出仓库的边…
传送门(洛谷) 题目大意 给定$n$个位置,和一个长为$m$的序列$A$,你需要经过一条直接的边从第$A_i$个位置到第$A_{i+1}$个位置. 每条有向边$(u,v)$分为两种,第一种可以花费$C$的代价从$u$到达$v$. 第二种可以花费$C'$的代价从$u$到达$v$,并使得下一次从$v$到$u$的代价变为$0$. 保证操作一定能完成.$n,m\leq 3\times 10^5$. 题解 考虑每两个位置之间$(a,b)$或$(b,a)$的若干次移动式独立的,不同的位置对之间互不影响. 所…
考虑当前合法的一个点集s,如果他合法,那么一定有一个完备匹配的点集包含这个点集,也就是两边都满足hall定理的话这两边拼起来的点集也满足要求 所以分别状压两边点集用hall定理转移判断当前点集是否合法,然后分别对两边点集的权值和排个序2point扫一下计算答案即可 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int N=2000005; int n,…