
计蒜客
邵光亮
要为自己喜欢的事情不留余力
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
H. H to O
题意: 是你有 kkk 个所给分子数,你通过将这个分子拆分再组合成另一个分子,问你最多能组合几个你想要的分子。 统计个数按照最小的那个就行。 AC代码: const int N = 1e5 + 10; int n, m; string s, t; int a[1000], b[1000]; int ans, res, cnt, tmp, num; int main() { cin >&...原创 2020-04-15 20:53:40 · 147349 阅读 · 0 评论 -
L. Leverage MDT
题意 给一个 010101 矩阵,可以选择一些行翻转。最大化全为 111 的长宽相等的子矩阵 按列枚举 对于每一列正反跑两遍单调栈即可 AC代码: const int N = 1010; char s[N][N]; int len[N][N]; int up[N], down[N]; int st[N], pos; int n, m; int ans; int main() { ...原创 2020-04-08 20:57:11 · 143490 阅读 · 0 评论 -
G. Gluing Pictures(SAM)
题意 给字符串 sss 和 ttt,你需要给 sss 拍若干张照片,然后把它们按某种顺序拼起来得到字符串t,求最少拍多少张照片、其实就是在找最少需要多少原串中的子串构成询问串。 每次贪心地选择极长的一段拍照,SAMSAMSAM进行匹配就行了。 AC代码: const int N = 500010; struct SAM { struct node { int parent, next[...原创 2020-04-08 20:55:30 · 143526 阅读 · 0 评论 -
I. Improve SPAM
题意: DAG上从1号点到其他终止点的路径方案数 AC代码: const int N = 1010; char s[N][N]; int len[N][N]; int up[N], down[N]; int st[N], pos; int n, m; int ans; int main() { sdd(n, m); rep(i, 1, n) ss(s[i] + 1); rep(i,...原创 2020-04-08 20:52:20 · 141843 阅读 · 0 评论 -
E. Eggfruit Cake
题意: 给一个首尾相连的字符串,求有多少区间长度不大于 sss 且至少有一个字符 eee。 对于每一个位置,一共有 pos+spos+spos+s 种选取方法,对于他选取的这个区间里面只有他后面最近的那个 eee 位置之后的 eee 的位置可以选,所以先找的每个 eee 的位置然后遍历即可 。 AC代码: const int N = 2e5 + 10; int t; int n, m; ch...原创 2020-04-08 20:49:11 · 141761 阅读 · 3 评论 -
M. Mountain Ranges
题意: 最长的连续字段,相邻差不超过 xxx 。 两重循环暴力。 AC代码: const int N = 1010; int t; int n, m; int a[N]; int ans, res, tmp, cnt; int main() { sdd(n, m); rep(i, 1, n) sd(a[i]); sort(a + 1, a + 1 + n); ans = -1;...原创 2020-04-08 20:45:08 · 141550 阅读 · 0 评论 -
UCF Local Programming Contest 2017 I. Rotating Cards
题意: 有一堆数字 1 n1~n1 n 的卡片,你需要按照数字 1 n1~n1 n 的顺序将他们删去。你只能删去最上面的那张卡片,但你可以将最上面的卡片移动到最底部,也可以将最底部的卡片移动到最上面,问移动次数最少是多少。 很显然,想删去一张卡片,要么把它上面的所有卡片移动到底部,要么从底部将它拿上来。如果将这堆卡片的最上面和底部看作是首尾相连的,那么不...原创 2020-04-06 19:52:58 · 140656 阅读 · 0 评论 -
UCF Local Programming Contest 2017 C. Singin' in the Rain
题目大意: 给出一个歌单顺序,每次听完上一首歌后需要通过按上一曲或下一曲直至达到下一首要听的歌,问要听完整个给出的歌单顺序,需要按多少次按钮, 由于每次都必须达到并听完某首歌后,才能去听下一首歌单里的歌,所以每次的转换是互不影响的,所以只需用两个函数分别计算从当前歌跳至下一首目标歌曲时,往前跳和往后跳所需次数,取 minminmin 记录,最后求和即是答案。 AC代码: int a[1010]...原创 2020-04-06 19:44:39 · 140766 阅读 · 0 评论 -
UCF Local Programming Contest 2017 B. Simplified Keyboard
题意: 给出一个字母分布图,如果两个字符串对应位置的字母全都相等,字符串属性为 111 ,否则若两个字符串对应位置字母均相邻或相等,字符串属性为 222,否则字符串属性为 333. 现给出两个字符串,问这两个字符串的属性。 对于情况 222 ,就是相差 1,8,9,101,8,9,101,8,9,10 这些位置的可以其他的不行,看看表就知道了。 AC代码: const int N = 1e5 ...原创 2020-04-06 19:21:47 · 140808 阅读 · 0 评论 -
UCF Local Programming Contest 2017 A. Electric Bill
题意: 进行电量分级制收费,1000kwh1000kwh1000kwh 及以下一档收费,1000kwh1000kwh1000kwh 以上按另一档收费,给出每个人的电量总额,问每人应支付多少钱。 签到。 AC代码: const int N = 1e5 + 10; int n, m, d; int main() { int t; sdd(n, m); sd(t); while (t--) ...原创 2020-04-06 19:19:04 · 140545 阅读 · 0 评论 -
E. Exits in Excess
题意: 移除最多一半的边使得图没有环。 将所有边分成两部分, 第一部分为 u<vu < vu<v, 第二部分为 v>uv > uv>u, 将小的边集合删去即可。 AC代码: int n, m; vector<int> v1, v2; int main() { sdd(n, m); rep(i, 1, m) { ...原创 2020-03-14 19:31:38 · 139154 阅读 · 0 评论 -
I. Inquiry I
题意: 给定数组 aaa, 求公式的最大值。 求 aaa 数组前缀, 遍历一遍即可。 AC代码: const int N = 1e6 + 10; int n, m; ll ans, res, tmp, cnt; int a[N]; int main() { sd(n); ll sum1 = 0; ll sum2 = 0; rep(i, 1, n) ...原创 2020-03-14 19:23:39 · 139055 阅读 · 0 评论 -
F. Floor Plan
题意: 给定 nnn, 求满足 n=m2−k2n=m^2-k^2n=m2−k2 的 m,km,km,k。 对于 nnn 为奇数时, 有 (x+1)2−x2=2x+1(x+1)^2-x^2=2x+1(x+1)2−x2=2x+1 即 (n2+1)2−n22=n(\frac{n}{2}+1)^2-\frac{n}{2}^2=n(2n+1)2−2n2=n 对于 nnn 为 444 的倍数时, ...原创 2020-03-14 19:21:24 · 138722 阅读 · 0 评论 -
A. Architecture
题意: 给定第一行的值表示 mmm 列的最大值, 第 mmm 行的值表示 nnn 行的最大值, 问是否会 行列冲突。 求出行列最大值判断是否相同即可。 AC代码: const int N = 1e6 + 10; int n, m; ll ans, res, tmp, cnt; int a[N]; int main() { sd(n); ll sum1 = 0; ll ...原创 2020-03-14 19:12:15 · 149063 阅读 · 0 评论