随笔分类 - 数据结构与算法
摘要:题目传送门 sol:主席树,模板题 PS:这题从第一次错误提交到成功AC隔了半年,然后从半懂到现在会用了又隔了将近一年。前几天回顾了主席树,补上代码。 主席树 #include "cstdio" #include "algorithm" using namespace std; const int
阅读全文
摘要:题目传送门 官方题解传送门 这次的题目出的不错,有9题是我赛后能做出来的。但是数据太智障了,重配好几次还是有问题。 A .斑羚飞渡 sol:贪心:如果x[i] + y[i] < m,则第i只斑羚一定到不了对岸,所以要尽量多的使用这种斑羚当跳板;如果x[i] + y[i] >= m,则两只这样的斑羚一
阅读全文
摘要:题目传送门 sol:很基础的二分答案板子题。一开始方向搞错了往动规贪心那边想了,想了一个多小时都没思路。 二分答案 #include "cstdio" #include "algorithm" using namespace std; const int MAXN = 1e5 + 5; int ar
阅读全文
摘要:题目传送门 sol:dp[i]为前i头牛按题目要求分组后的最大技能水平和。然后dp方程式就显而易见了; 动态规划 #include "bits/stdc++.h" using namespace std; const int MAXN = 1e4 + 5; int arr[MAXN], dp[MAX
阅读全文
摘要:题目传送门 A .淘宝商品价格大PK sol:枚举删除每一个数,然后求最大上升子序列。 枚举 #include "bits/stdc++.h" using namespace std; const int MAXN = 105; int arr[MAXN], n, ans; map<int, int
阅读全文
摘要:题目链接:https://ac.nowcoder.com/acm/contest/879#question 官方题解:https://ac.nowcoder.com/discuss/189446?type=101&order=0&pos=1&page=1 A .简单计数 sol:考虑两个数组a和b,
阅读全文
摘要:题目链接:http://codeforces.com/contest/1163 A .Eating Soup sol:在n / 2、n - m、m三个数中取最小值,结果受这三个值限制。但是m == 0的情况需要特判 思维 #include "bits/stdc++.h" using namespac
阅读全文
摘要:E .Sequence in the Pocket sol:将数组copy一份,然后sort一下,找寻后面最多多少个元素在原数组中保持有序,用总个数减去已经有序的就是我们需要移动的次数。 思维题 #include "bits/stdc++.h" using namespace std; const
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/webcontest/contest_show.php?cid=13137 A .Problem A(ZOJ1048普通签到题) sol:不解释 水题 #include "cstdio" using namespace std; int main
阅读全文
摘要:昨天打的重现赛,感觉是我打的发挥的最好的一场比赛了,六题都一次AC。那么就来总结一下吧 题目链接:http://codeforces.com/contest/1133 A .Middle of the Contest sol:简单模拟,注意一下跨天的情况就好了。 模拟 #include "bits/
阅读全文
摘要:pro:给出n, k和长度为n的数组a, 两个人轮流取数1先取,设a[i]是当前数组中最大值,则取走a[i - k]到a[i + k]这段数,然后把a[i + k + 1]和后面的补到 a[i - k]的位置。(当然要考虑前后边界,i - k不能小于1,i + k不能大于n)输出一个字符串s[i]表
阅读全文
摘要:题目链接:http://codeforces.com/contest/1153 A .Serval and Bus pro:给出n种公交车的首班车时间和两班车之间的时间间隔,找t时间以后的第一辆车是第几种车 sol:对于每种车,找到t时间以后的第一班车的时间,计算这个时间和t的差距,然后找离t最近的
阅读全文
摘要:感觉这场小白赛给我难度正好,可能我就是个小白吧。今天总结一下。 题目链接:https://ac.nowcoder.com/acm/contest/549#question 官方题解:https://ac.nowcoder.com/discuss/177449 A .小A的签到题 sol:复制给出的代
阅读全文
摘要:广度优先搜索+动态规划 Accepted 2157 0MS 1376K 1415B G++ #include "bits/stdc++.h" using namespace std; typedef pair<int, int> PII; const int MAXN = 25; const int
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/548/C来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 立华奏是一个刚刚开始学习 OI 的萌新
阅读全文
摘要:题意: 给出一个无向联通图,要求你给出每条边的方向,使得无论从哪个点出发最多只能走一条边; 思路: 对于每个点,要么出度为0,要么入度为0即可。所以这就是一个判断二分图。 二分图 #include "cstdio" #include "cstring" #include "iostream" #in
阅读全文
摘要:题解: 我的解法是用一个类似字典树结构的结构体来表示节点。看到另一种解法是用数组来映射二叉树的,开到14000就过了,但是我觉得是数据水了,因为题中说最多 256个节点,如果256个节点连成链型,除根节点外每个节点都是父节点的右儿子。那么数组要开pow(2, 256)个。可见这种方法是不可行的; 类
阅读全文
摘要:这是2017年蓝桥杯C组C++的压轴题,拿到之后没什么想法。但是蓝桥杯有部分分。所以直接敲了个大暴力提交上去过了一半的数据。后来想到了DP,但是没能实现出来,感觉还是有问题的。后来看了解题视频发现是预处理。 大暴力 图形排版 739B C++ 运行超时 50 运行超时 1.585MB #includ
阅读全文
摘要:题解: 用优先队列和pair来模拟栈,这个很好想。关键点是开第三个栈,因为可能有多次A栈和B栈的合并,如果转移次数多了会超时。这时候就用到第三个栈了,把所以合并都合并到C栈里去。取的时候,先从A/B栈里取。如果是空栈,就从C栈里取; 思维题+优先队列+栈 Accepted 5818 858MS 21
阅读全文
摘要:卡片换位 你玩过华容道的游戏吗?这是个类似的,但更简单的游戏。看下面 3 x 2 的格子 在其中放5张牌,其中A代表关羽,B代表张飞,* 代表士兵。还有一个格子是空着的。 你可以把一张牌移动到相邻的空格中去(对角不算相邻)。游戏的目标是:关羽和张飞交换位置,其它的牌随便在哪里都可以。 输入格式:输入
阅读全文