OJ-GYM
pocket_legend
这个作者很懒,什么都没留下…
展开
-
[SWERC 2015] GYM 101128A Promotions [dfs]
Description: 给出一张DAG表示每个人之间的关系,问选出A/B(A<=B)个人时多少人必须选,选出B个人时多少个人肯定不被选。 Solution: 计算每个点之前最少要选几个点才能选到自己,这样可以算出每个人是否可能被选。再计算可能被选的人中有多少需要自己先选才能被选,统计一下即可。 #include <bits/stdc++.h> using na...原创 2018-03-07 14:10:06 · 262 阅读 · 0 评论 -
[SWERC 2015] GYM 101128F Landscaping [网络流]
Description : 一块n*m的草坪,有两种高度的草,#表示较高的草,.表示较矮的草,现在要从左往右和从上往下用收割机收割,在相同高度的草坪上收割机不耗油,当高度变化时需要耗花费为a的油,还可以花费b改变任一块草坪的高度,问这n+m排收割机扫过这块草坪需要的最小花费 Solution: 经典二元最小割模型。源点连向较矮的草,容量为B;较高的草连向回店,容量为B;高度不同的草之间...原创 2018-03-07 14:18:44 · 248 阅读 · 0 评论 -
[SWERC 2015] GYM 101128C Canvas Painting [贪心]
Description: 给nnn块木板,每块木板涂色花费AiAiA_i,先开始所有木板为白色,每次选择一个颜色CCC和一个数字FFF,代表选择一个出现过的颜色CCC,把颜色为CCC的前FFF块木板涂成另一种颜色,并把剩下的CCC涂成另外一种颜色,每次花费为前FFF块木板的价值,问把每块木板涂成不同颜色的最小代价。 Solution: 考虑倒着的过程,可以看成把相邻两段不同的颜色合并成一...原创 2018-03-07 15:16:42 · 293 阅读 · 0 评论 -
[SWERC 2015] GYM 101128C Dice Cup [概率与期望]
Description: 给两个点数分别为nnn,mmm的色子,问最大概率投出的点数是哪些。 Solution: 对于投出点数kkk的概率为∑0<i<=n,0<j<=mi+j=k1nm∑i+j=k0<i<=n,0<j<=m1nm\sum_{i+j=k}^{0m≤nm≤nm\leq n,那么最大的概率自然是iii能取到所有值。考虑i∈[1,n...原创 2018-03-07 15:52:30 · 200 阅读 · 0 评论 -
[SWERC 2015] GYM 101128I Saint John Festival [凸包]
Description: 给出一个坐标系,其中有L个大点和S个小点,询问有多少个小点在至少一个三个大点构成的三角形内部(边界上也算)。 Solution: 其实是求有多少个小点在大点构成的凸包中。 问题转化成了查询一个点是否在给定凸包中。 把凸包按一个基准点剖分成三角形,然后二分判断一个点属于哪个三角形,确定位置后再判断是否在三角形内,这样就可以O(logn)O(logn)O...原创 2018-03-07 18:42:55 · 251 阅读 · 0 评论 -
[NW Pacific 2016-2017] GYM 101201J Shopping [rmq+二分]
Description: 每次给定一个数并询问这个数模区间[l,r][l,r][l, r]中的所有数的值 Solution: 容易想到每次取模至少减少一半,那么每次二分下一个小于当前值的位置就行了。 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 2e...原创 2018-03-08 14:15:23 · 145 阅读 · 0 评论 -
[NEERC Moscow] GYM 100792H Hashing [dp]
Description: 给一个16进制数列,选出一个子序列,求子序列每项异或在子序列中下标的和。 Solution: 发现数列最大255,那么只用考虑后8位。dp[i][j]表示必须选第i个数,并且当前下标后8位为j的最大和。由于后八位确定,所以我们自然希望当前下标尽量大。求出最大下标然后转移即可。 #include <cstdio> #include <cst...原创 2018-03-10 17:21:05 · 224 阅读 · 0 评论