AtCoder
whoammiiiiii
这个作者很懒,什么都没留下…
展开
-
atcoder Picking Goods(DP)
题目链接 题意: 有个n*m的矩阵,里面放了k个数,现在让你从左下角走到右上角,只能向上走和向右走,路过一个数就可以把那个数加进答案,也可以不加,限制是每一行最多只能选3个数,现在问你答案最大值是多少。 r,c<=3000 k<=1e5 放进去的数<=1e9 思路: dp[i][j][k]表示在i行j列该行已经取了k个数的最大值,dp即可。 记得开ll。 #include <bits/stdc++.h> #define ll long long using namespace原创 2020-08-17 01:55:04 · 181 阅读 · 0 评论 -
AtCoder Beginner Contest 174 复盘
A,B 签到 C 看了一眼没思路,下一题 D 给你一个只有’W’和’R’的字符串,现在有两个操作,改变一个字符的颜色,或者将两个字符调换位置。 大胆猜测,把所有W全都集中在右侧就行了,所以只要记录一下一共有x个’W’,然后从右往左数x个,记录有ans个‘R’,输出ans就行了。 E 给你n个有各自长度的木头,现在让你砍k刀,让你求砍完后的木头中最长的木头的最小值。 大胆猜测直接二分答案,设某个木头长度为len,现在二分的长度为mid,那么砍的最少次数为(len - 1) / 2。然后就可..原创 2020-08-03 17:18:53 · 156 阅读 · 0 评论 -
AtCoder Beginner Contest #164 (DE)
比赛链接 D 题意: 给你一个长度2e5的字符串,由数字组成,问你有多少个子串能被2019整除。 思路: 跟这道题一样:基本一样的题,ABC round 158的E题,这种求子串满足整除某个数p的问题,基本套路就是维护一个从结尾到首的数模p的值,然后扫完一遍,就从模下来每个可能的值随意取两个,因为这相同的两个模数的位置之间的那个数字串肯定是能整除p的,注意如果模p是2和5就要特别讨论一下,因为他们...原创 2020-04-27 02:05:49 · 190 阅读 · 0 评论 -
AtCoder Beginner Contest #161 (DEF)
比赛链接 d: 题意: 现在有个数叫lunlun数,他的定义是每个相邻的数位之间差<=1,(1~9,10,11,12,21,22,23),现在输入一个k(<=1e5),问你第k小的数是什么? 思路: 利用队列一个个构造 先OEIS了一下,搜到了,但公式看不懂。 然后就想能不能打表,其实可以用利用队列来打出所有可能,比如当前的数字是x,如果x对10取模的数是0, 那就推入x10和x10+...原创 2020-04-05 21:47:14 · 162 阅读 · 0 评论 -
AtCoder beginner contest #159 题解(EF)
比赛地址 E: 题意: 给你一个高为h宽为w的矩阵,里面由01构成,现在问你最少切几刀能使每块1的和不超过k。 思路: 一开始没看到h<=10, 就觉得枚举肯定做不了,后来看到<=10就豁然开朗,用状压来枚举嘛。所以题目条件对于思路的提示也是很重要的,以后看到数据范围很小的,又感觉可以枚举每个条件做的,就可以考虑一下状压了。 ac代码: /** * Think twice, code ...原创 2020-03-23 04:08:40 · 265 阅读 · 0 评论 -
AtCoder Beginner Round #156 DE题解
比赛链接 D 题意: 给你n个花,让你选大于等于1朵花组成花束,花束的个数不能为a或b。 解法: 2^n - 1 - C(n)(a) - C(n)(b) #include <bits/stdc++.h> #define eb emplace_back #define mp make_pair #define mt make_tuple #define fi first #define...原创 2020-02-23 01:56:55 · 199 阅读 · 0 评论 -
AtCoder Beginner Contest #148 题解
比赛链接 D. 给你n个数,问你最少取走多少个后剩下的n个能组成1~n的有序数列。 思路: 找原来n个数中最长的1~n的序列的长度,用n减去这个长度即可。 E. 给你一个n(0 <= n <= 1e18), 问你n * (n - 2) * (n - 4) * …的值是多少。 其中你可以认为n = 0和n = 1时的值都是1。现在问你乘积结尾有多少个0。 思路: 此题是求 !n 结尾有多...原创 2019-12-23 04:06:13 · 164 阅读 · 0 评论