- 博客(5)
- 收藏
- 关注
原创 P11323 Happy Card
仔细分析一下这几种出牌方式,实质上只有三种:单、对子、三带一,炸是一种特殊的三带一。能三带一就绝对不会对子或者单。简单想想可以得到,能出炸一定不会出对子,能出对子一定不会单着出。至于三带一可以单独讨论。这样的话我们可以对每种数量大于等于 3 的牌进行。于是可以有简单无脑的暴力,拿到 20 pts。那么剩下的就是对子或者单。
2024-11-27 23:05:51
1279
原创 CSP-S 2023 消消乐
这提醒我们想到 map,由于 map 的强大映射,我们完全可以将栈进行哈希得到哈希值,并用 map 记录出现次数。看完题意可以想到用栈相关,于是可以有一个朴素的暴力:枚举左端点,从左端点开始向右每个元素依次入栈,时时检测栈内是否为空。令当前左端点为 i,右端点为 j,我们可以发现,当 i 到 j 的元素依次入栈的时候,如果当前的区间是可消除的,那么。也就是说,如果指针指在 i 时的栈 和 指针指在 j 时的栈完全相同,则 [ i, j ] 这个区间是可消除的。给出一个字符串,相邻的两个相同字母是可消除的。
2024-11-16 00:38:34
579
原创 CSP-S 2023 货币系统
题意可以简化为:对于当前的任意一种面额,我们在当前的金币集合中查询是否可以用其他的金币凑出当前面额,若可以则当前面额可丢弃,若不能则记录当前为必需面额。发现这个东西和完全背包很像,所以实现起来就按照模版实现即可。: 令当前目标面额为。这使我们想到动态规划。
2024-11-10 16:03:17
945
原创 【算法学习】线段树
线段树,顾名思义,就是以线段(区间)为结点的树对于一个整区间 1~n,我们用一棵线段树来表示,任意一个节点储存某一区间内所有元素的和根节点表示(1~n),则左儿子表示区间(1,n122n1),右儿子表示区间(n1212n11,n),本质上是对一个区间进行无限二分的过程,直到每个节点中只有一个元素(即到达叶节点)停止,每个节点将作为一个单独的值储存在数组的一格中这样,在处理区间更新,区间求和等问题时,暴力求解为OnO(n)On,如果使用线段树,复杂度可以近似O。
2023-04-24 20:20:26
101
1
原创 Openjudge 题目详解 1.1
Openjudge 题目详解1.1编程基础之输入输出超级玛丽游戏1.1编程基础之输入输出超级玛丽游戏知道cout的用法就好说呵呵其实当时也看懵了“一个cout语句可以分写成若干行。如:cout<<“This is a simple C++ program.”<<endl;可以写成cout<<"This is " //注意行末尾无分号<<"a C++ "<<“program.”<<endl; //语句
2021-11-30 22:47:42
3426
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅