![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
基础算法
ACM
kunyuwan
ACMer,机器视觉,SLAM,研究生在读
展开
-
2021牛客多校1——K:Knowledge Test about Match(贪心)
题面 题意: 两个长度为n的序列,a序列从0到n-1.b序列里面的值的范围为[0,n-1],我们可以任意交换b序列里面的值的位置,使得从1到n两个序列差值的绝对值的根号值最小。 概括为:随机生成一个权值范围为 0~n-1 的序列,你要用 0~n-1 去和它匹配,匹配函数是 sqrt,要使得其根号和最小。要求平均情况下和标准值偏差不能超过 4%。 思路: 这道题目可以随便乱搞,我们可以直接重复冒泡的过程,如果当前两个值的根号和大于交换之和的根号和,就将其两个数字交换。这样子保证其始终再像最优状态转移,.原创 2021-07-26 09:41:14 · 408 阅读 · 2 评论 -
2021牛客多校1——G:Game of Swapping Numbers(贪心,结论)
题面 题意: 给定序列 A,B,需要交换恰好 k 次 A 中两个不同的数,使得 A,B 每个位置的绝对差值和最大。N <= 100000 思路: 参考题解 | #Game of Swapping Numbers#_牛客博客 (nowcoder.net) 代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; const ll MAXN = 5e5 + 10; ll a[MAXN]; ll b[.原创 2021-07-26 09:39:16 · 343 阅读 · 0 评论 -
2021牛客多校1——D:Determine the Photo Position(简单思维,前缀和)
题面 题意: 给出一个 n* 的 01 矩阵,要用一个 1*m 的矩阵去覆盖一段 0,问方案数。 思路: 利用前缀和维护每一行的前缀和。接着遍历每一行,利用前缀和是否为0来判断是否可以插入,是就加1,最后输出方案数即可。 代码: #include <bits/stdc++.h> using namespace std; const int MAXN = 5e3 + 10; char mp[MAXN][MAXN]; int sum[MAXN][MAXN]; char s[MAXN]; i.原创 2021-07-26 09:37:07 · 301 阅读 · 0 评论