上一页 1 2 3 4 5 6 ··· 38 下一页
摘要: Trial Round: Rectangles 枚举子矩阵的长和宽,乘以对应的子矩形数。 时间复杂度$O(nm)$。 #include<cstdio> int n,m,p,i,j,ans; int main(){ scanf("%d%d%d",&n,&m,&p); for(i=1;i<=n;i++) 阅读全文
posted @ 2022-01-19 23:27 Claris 阅读(221) 评论(0) 推荐(1) 编辑
摘要: 题解: https://files.cnblogs.com/files/clrs97/2021CCPCguilin.zip Code: A. A Hero Named Magnus #include <bits/stdc++.h> #define pb push_back #define mp ma 阅读全文
posted @ 2022-01-14 22:57 Claris 阅读(364) 评论(0) 推荐(0) 编辑
摘要: A. 公交线路 检查坐对方向和坐反方向两种情况对应的报站序列是否符合输入,如果都符合那就是''Unsure'',否则可以确定有没有坐反。 #include<cstdio> const int N=15; int n,m,S,T,i,A,B,a[N],b[N]; bool check(int d){ 阅读全文
posted @ 2022-01-14 22:52 Claris 阅读(616) 评论(0) 推荐(0) 编辑
摘要: 题解: https://files.cnblogs.com/files/clrs97/2020icpc-macau-analyze.zip Code: A. Accelerator #include<cstdio> #include<vector> using namespace std; type 阅读全文
posted @ 2022-01-14 21:51 Claris 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题解: https://files.cnblogs.com/files/clrs97/ZJCPC2021analyze.zip Code: A. League of Legends #include<cstdio> using namespace std; #define rep(i,n) for( 阅读全文
posted @ 2022-01-14 21:45 Claris 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 题解: https://files.cnblogs.com/files/clrs97/ZJCPC2020analyze.zip Code:(Part) A. AD 2020 #include<cstdio> int f[10005][13][33],is[10005][13][33],i,j,lim 阅读全文
posted @ 2022-01-14 21:31 Claris 阅读(194) 评论(0) 推荐(0) 编辑
摘要: A. Bookshop 对树进行轻重链剖分并求出DFS序,在DFS的过程中先DFS一个点的重儿子,再DFS它的轻儿子们,那么每条重链在DFS序上是连续的。对于每个询问$(x,y,z)$,令$t$为$x$和$y$的LCA,那么从$x$出发走到$t$的过程在DFS序里对应从右往左的$O(\log n)$ 阅读全文
posted @ 2022-01-14 21:08 Claris 阅读(194) 评论(0) 推荐(0) 编辑
摘要: A. Total Eclipse 根据题意,每次要选择一个极大连通块,将里面所有数同时减小,直到最小值变成$0$,然后将变成$0$的点删除,分裂成多个连通块再接着做。 将整个过程倒过来看,变成按照$b$的值从大到小依次加入每个点。加入每个点$x$时遍历与$x$相连的所有边$(x,y)$,如果$y$在 阅读全文
posted @ 2022-01-14 20:59 Claris 阅读(124) 评论(0) 推荐(0) 编辑
摘要: Trial Round: Obraz 按题意模拟。 #include<cstdio> const int N=1005; int n,m,i,j;char a[N],b[N][N]; int main(){ scanf("%d%d",&n,&m); for(i=n;i;i--)for(scanf(" 阅读全文
posted @ 2022-01-05 22:02 Claris 阅读(117) 评论(0) 推荐(0) 编辑
摘要: Trial Round: Kwadrat 分解质因数后判断每个质因数的幂是奇数还是偶数,如果是奇数则补成偶数。 时间复杂度$O(\sqrt{n})$。 #include<cstdio> long long n,ans=1;int i,j; int main(){ scanf("%lld",&n); 阅读全文
posted @ 2022-01-05 03:00 Claris 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 模拟费用流,从左往右依次考虑每个订单,在下面两种情况里选代价较小的进行增广。 1. 产品在订单之后产生: 因为之前考虑的订单都在当前订单的左侧,因此往右走时不会遇到反悔边。 线段树上查询出对应后缀内仍能供给的且代价最小的生产季度,然后将该区间内的往左走的边的流量增加$1$,表示反悔边。 2. 产品在 阅读全文
posted @ 2020-01-22 02:55 Claris 阅读(834) 评论(1) 推荐(0) 编辑
摘要: $O(n^2)$枚举公共部分,需要满足以下条件: (3)可以直接在枚举的时候判断掉,对于(1)和(2),可以将(1)哈希,对于哈希值相同的角度对$(a,b)$,将它们按照$a$排序,然后在双指针时维护$b$的最小值即可。 时间复杂度$O(n^2\log n)$。 阅读全文
posted @ 2020-01-17 01:36 Claris 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 令$NX=PQ$,其中$N<P\leq B$,则$1\leq Q<X$,对于每个满足条件的$N$,在最大的$Q$处统计它的贡献。 枚举最大的$Q$,那么$NX$要是$Q$和$X$的倍数,且不是$Q+1,Q+2,...,X-1$的倍数。 考虑容斥原理,指数级枚举$NX$一定是$Q+1$到$X-1$这些 阅读全文
posted @ 2020-01-14 02:52 Claris 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 暴力枚举第一个矩形的四条边,那么找出未覆盖部分的2的包围盒作为第二个矩形即可。 预处理二维前缀和来$O(1)$判断一个矩形内部是否有1,预处理前后缀坐标最值来$O(1)$得到包围盒。 时间复杂度$O(n^4)$。 阅读全文
posted @ 2020-01-08 19:25 Claris 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 将裁判作为原点,求出原点到每个圆的切点。 将这些切点以及矩形的顶点极角排序,用堆维护最靠近裁判的圆。 对于一段相邻的极角区间,如果没有圆,那么对答案的贡献是三角形的面积。 否则求出两条射线与圆的交点$A,B$,则对答案的贡献是三角形$OAB$的面积减去三角形$OAB$与圆的交的面积。 时间复杂度$O 阅读全文
posted @ 2020-01-07 21:43 Claris 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 如果小地图存在欧拉回路,那么对于大地图的每条边,都可以恰好走两次使得小地图每条边恰好经过一次,令$sum$为小地图的边权和,则此时答案为$m\times sum$。 否则小地图存在欧拉路径,找到两个奇点$A$和$B$,那么最优解中大地图每条边一定经过$1$次或者$2$次,且仅保留经过$1$次的边后大 阅读全文
posted @ 2020-01-07 17:30 Claris 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 如果一个矩形$A$包含另一个矩形$B$,那么选矩形$A$显然不优。 把坐标离散化,给每个矩形一个随机的unsigned long long权值,并把对应范围内每个格子的权值都异或上它。Floodfill找出所有权值相同的四连通格子,如果某个连通块的形状是矩形,那么就是一个可行的矩形,一共$O(n^2 阅读全文
posted @ 2020-01-05 23:17 Claris 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 如果$x$和$y$相关,则连无向边$(x,y)$,边权为$0$表示相同,为$1$表示相反。 每个连通块随便选个点作为根,那么答案就是每个连通块里到根节点异或和为$0$或者$1$的点数的最大值之和。 注意到加边操作不会成环,所以用支持子树信息维护的Link-Cut Tree维护这个森林即可。 对于操作 阅读全文
posted @ 2020-01-04 00:00 Claris 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 假设从光源$(0,0)$射出的一束光第一次碰到右边墙上的$(x,y)$,那么第$k$次的坐标是$(kx,ky)$。 如果在第$k$次到达了左边某个点且$k$是$2^d\times o$的形式,其中$o$是奇数,那么在第$2^d$次一定也能到达这个点。 枚举所有不超过最大坐标两倍的$2^d$,判断左边 阅读全文
posted @ 2020-01-03 15:12 Claris 阅读(330) 评论(0) 推荐(0) 编辑
摘要: Runda próbna: A + B 设$f[i]$表示两数相加得到前$i$位的方案数,由$f[i-1]$和$f[i-2]$转移得到。 #include<cstdio> #include<cstring> typedef long long ll; const int N=50; int n,i, 阅读全文
posted @ 2019-12-21 00:29 Claris 阅读(888) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 38 下一页