模拟
meopass
即使摸爬滚打,满身泥泞,我也要前进
展开
-
codeforces 855A 模拟
简略题意:给出n次询问,问之前的询问中是否出现个这个字符串。用map记录一下询问就可以了。#include <bits/stdc++.h>using namespace std;typedef long long LL;const int maxn = 110000;int n;map<string, int> M;int main() { scanf("%d", &n); for原创 2017-09-25 11:29:14 · 425 阅读 · 0 评论 -
codeforces 864C 模拟
简略题意:在一维坐标下,初始有一辆油量为b的车,每走1单位距离消耗1单位的油,在x=0的位置,向x=a的位置开去。在x=f的地方有一个加油站,可以把油加到b。每次从x=0到x=a或者从x=a到x=0,都记作一个行驶周期。问行驶k个周期至少需要加几次油。注意到k很小,因此模拟就可以了。 当k=1时,若b > f && b > a - f,必然可以。 当k = 2时,需要额外判定 b > 2 * (原创 2017-09-26 11:04:00 · 376 阅读 · 0 评论 -
codeforces 864D 模拟 + 贪心
简略题意:给出n个数,所有数的值都在[1,n][1, n],可以选择某个数变成任意数。问至少需要几次才能将原序列变成一个排列,保证改变次数最小的情况下需要保证字典序最小。我们只需要记录哪些数没有出现过,这些数就必然会替换原来重复出现的数。 我们记录下所有重复出现的数出现的位置,从小到大去替换。我们需要讨论的就是当前位置的数应不应当被替换。 1. 若当前重复出现的数为x,我们打算用y去替换x。原创 2017-09-26 11:16:48 · 266 阅读 · 0 评论 -
BZOJ 1088 模拟
题意:现在棋盘是n×2的扫雷游戏,第一列里面某些格子是雷,而第二列没有雷。由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即根据第二列的信息确定第一列雷有多少种摆放方案。只要确定了第一行的前两列是什么,后面都可以唯一确定。因此讨论一下即可。#include <bits/stdc++.h>using namespace std;namespace solver { int n, t[原创 2017-09-28 16:17:50 · 213 阅读 · 0 评论 -
HDU 6213 模拟
简略题意:A比B大,现在知道两人的生肖,问两人的最小年龄差是多少。…样例就把所有情况都告诉完了。#define others#ifdef poj#include <iostream>#include <cstring>#include <cmath>#include <cstdio>#include <algorithm>#include <vector>#include <stri原创 2017-10-09 16:02:16 · 286 阅读 · 0 评论 -
HDU 6215 模拟链表 + 队列优化
简略题意:对一个序列做如下操作:每次同时将一个数,以及这个数右边的比他小的数删除,执行若干次直到整个序列单调不递减。输出最终序列。假若直接模拟的复杂度是O(n^2)的。 用pre[i]代表与i相连的,在i之前的数。 用suf[i]代表与i相连的,在i之后的数。 其实如果我们需要删除[l,r][l, r]区间,那么我们下次有可能删除的只有pre[l]pre[l],用队列存下这个pre[l]pre原创 2017-10-09 16:16:10 · 319 阅读 · 0 评论 -
HDU 6216 模拟
简略题意:每次给出一个质数,问这个质数是不是两个立方数的差。直接模拟即可。#define others#ifdef poj#include <iostream>#include <cstring>#include <cmath>#include <cstdio>#include <algorithm>#include <vector>#include <string>#endif原创 2017-10-09 16:18:27 · 280 阅读 · 0 评论