
模拟/搜索
逐梦起航-带梦飞翔
为了更加长远的快乐!
展开
-
CH0802 占卜DIY(模拟)
题目lyd学会了使用扑克DIY占卜。方法如下:一副去掉大小王的扑克共52张,打乱后均分为13堆,编号1~13,每堆4张,其中第13堆称作“生命牌”,也就是说你有4条命。这里边,4张K被称作死神。初始状态下,所有的牌背面朝上扣下。流程如下:1.抽取生命牌中的最上面一张(第一张)。2.把这张牌翻开,正面朝上,放到牌上的数字所对应编号的堆的最上边。(例如抽到2,正面朝上放到第2堆牌最上面,又...原创 2018-07-20 16:52:04 · 872 阅读 · 0 评论 -
洛谷1490 买蛋糕(搜索)(剪枝)
题意选一些最少的数,每个数只能用一次,且能把1~n中的每个数用加法表示出来。题解搜索+超级剪枝先解决第一个问,给你p个数,要做到最大的n,那么构造方法是1,2,4,...,2^p-1,那么可以拼出2^p-1的n。根据这个可以求到第一问。关键在第二问。假设当前已经拼出1~n,那么还能选的数首先前提是没有用过的,还有一定不能大于n+1(想一想)。所以如果再加上一个数,最大可以去到n+...原创 2018-11-06 14:40:21 · 555 阅读 · 0 评论 -
洛谷1662 数7(打表)(模拟)
题目1337个人排成一个圈,从1号人开始报数,初始方向是1,2,3…。如果某个人报的数是7的倍数或数字中含有7,那么报数的方向就反一下。问报数字X的是哪个人?题解间接打表没想到打表也成正解了hhh。能全打没问题,间接打是一个新方法。因为10^8以内可以轻松解决,只要把10^9的那个给压缩成10^8级别就好了。那么可以考虑打出k*10^8的表。对于x,从0暴力求到x%1e8,初始状...原创 2018-10-30 13:50:40 · 690 阅读 · 0 评论 -
CH1101 火车进栈(爆搜)||(枚举+判断)
题意有n个元素,编号1~n,它们依次进栈,随时可以出栈。请你按《字典序》输出前20种可能的出栈方案。 题解1爆搜对于一个数k要进栈,先让栈内的元素考虑出栈,然后再入栈。当出栈数等于n时,输出。代码#include<cstdio>#include<cstring>#include<algorithm>using namespace...原创 2018-08-13 15:51:10 · 806 阅读 · 0 评论 -
CH1801 括号画家(栈)(模拟)
题目Candela是一名漫画家,她有一个奇特的爱好,就是在纸上画括号。这一天,刚刚起床的Candela画了一排括号序列,其中包含小括号( )、中括号[ ]和大括号{ },总长度为N。这排随意绘制的括号序列显得杂乱无章,于是Candela定义了什么样的括号序列是美观的:(1) 空的括号序列是美观的;(2) 若括号序列A是美观的,则括号序列 (A)、[A]、{A} 也是美观的;(3) 若括号...原创 2018-08-13 15:10:48 · 1013 阅读 · 0 评论 -
poj3630 Phone List(trie树)||(排序)(暴力)
题意给出n个数,判断是否有数为另一个数的前缀。 题解1排序+暴力比较这个方法好简便。以字符串的形式记录下来,排序后,相邻两个字符串比较即可。时间复杂度O(nlogn)。 题解2trie树是前缀要考虑两种情况,有可能先是一个短位的数字A,再是一个长位的数字B。根据常识,B不可能是A的前缀。对于这种情况,在A数字的末尾做一个标记,如果由数字B从这个标记上经过,则A是B的...原创 2018-08-13 14:48:44 · 316 阅读 · 0 评论 -
poj1220 Number Base Conversion(模拟)
题意进制转换。 题解模拟一个比较粗暴易懂的方法是像手工做一样,先把p进制转为10进制,再用短除法转为q进制。这样会涉及高精度加、乘、除(高精除低精),比较麻烦。要注意到,高精度间的运算是没有进制限制的。所以在一开始,我们就可以把全部运算切换到q进制下进行。相当于我们把p进制数分解时,不以10进制为记录其数的进制,而是在运算中直接%q,将其切换乘q进制。如果不懂的可以看代码...原创 2018-08-03 08:32:37 · 310 阅读 · 0 评论 -
poj2259 Team Queue(模拟)
题意有n个小组,要进行排队。当一个人来到队伍时,若队伍中有自己小组成员时,他就直接站到其后面(类似有熟人就插队);如果没有,则站到队伍最后面。 出队列时和普通队列一样。给出小组成员,入队指令与入队成员号码,再给出出队指令,输出出队成员号码。 题解模拟很容易想到,一条队伍中同小组的成员一定聚集在一起,所以我们可以直接用队伍的编号来表示这些聚集区。在每个小组中,要记录他们的先后顺序。...原创 2018-08-06 22:04:35 · 369 阅读 · 0 评论 -
洛谷3396 哈希冲突(分块)(预处理)(暴力)
题意有n个数,分别为a[i]。对于询问操作,给定一个模数x,求所有下标mod x等于y的数的和。对于修改操作,把位置x上的数改成y。 思路朴素做法不难想到,复杂度O(n^2)。接着可以考虑预处理的问题了,毕竟询问有15W个。设ans[p][k]表示模数是p,余数是k的数的和。虽然询问O(1),但预处理O(n^2),还是不能接受。何况空间复杂度还是O(n^2)的。先解决空...原创 2018-08-06 21:50:30 · 278 阅读 · 0 评论 -
poj2965 The Pilots Brothers' refrigerator(贪心)
题意有一个4*4的由+和-组成的矩阵,通过 某个点所在行和列的所有点由+变-或由-变+ 这种操作,使所有的点变成-。 题解1暴搜每个点最多进行一次操作,所以暴力枚举O(2^16),算上常数O(2^21)。 代码#include<cstdio>#include<cstring>#include<algorithm>using ...原创 2018-07-21 16:33:51 · 210 阅读 · 0 评论 -
洛谷3322 [SDOI2015]排序(搜索)(剪枝)
题目洛谷3322 [SDOI2015]排序题解搜索+超级剪枝方案是说有先后顺序之分的,但是操作先后并不影响答案啊。所以对于一个操作次数为k的方案,它的不同顺序的方案数有k!种,这就大大减少了搜索复杂度所以,我们只要按一定的顺序来枚举,使得每一个组合操作只记录一次就好。其顺序应当从小到大,这样就能使小的区间有序之后再来考虑大的区间。从小到大枚举dfs到k,表示现在要交换两个大小为的...原创 2018-11-06 15:27:49 · 347 阅读 · 0 评论