
算法设计-模拟
JeraKrs
本人目前就职于百度商业研发部,有需要内推的朋友简历可发我邮箱 jerakrs@qq.com
展开
-
hdu 4831 Scenic Popularity(模拟)
题目链接:hdu 4831 Scenic Popularity题目大意:略。解题思路:对于休闲区g[i][0]和g[i][1]记录的是最近的两个景点的id(只有一个最近的话g[i][1]为0),对于景点来说,g[i][0]为-1(表示该id对应的是景点),g[i][1]为该景点的热度值.主要就是模拟,注意一些细节就可以了。#include #include #include原创 2014-05-25 18:44:34 · 1512 阅读 · 0 评论 -
hdu 5063 Operation the Sequence(模拟)
题目链接:hdu 5063 Operation the Sequence题目大意:4种操作,见题目。解题思路:因为询问只有50次,所以每次碰到询问的时候,就去模拟一下,查哪个位置,就倒着推回去。#include #include #include using namespace std;typedef long long ll;const ll mod = 10原创 2014-10-12 08:55:58 · 818 阅读 · 0 评论 -
zoj 3826 Hierarchical Notation(模拟)
题目链接:zoj 3826 Hierarchical Notation题目大意:给定一些结构体,结构体有value值和key值,Q次询问,输出每个key值对应的value值。解题思路:思路很简单,写个类词法的递归函数,每次将key值映射成一个hash值,用map映射每个key的value起始终止位置,预处理完了查询就很简单了。这题是最后10分钟出的,因为没有考虑value为{}原创 2014-10-13 09:22:31 · 2657 阅读 · 6 评论 -
hdu 5374 Tetris(模拟)
题目链接:hdu 5374 Tetris模拟,每次进行操作时判断操作是否合法,合法才执行,否则跳过。每次一个token落地,判断一下是否有消除整行。#include #include #include using namespace std;/******* Token **********/const int C[3] = {1, 2, 4};const原创 2015-08-12 22:57:19 · 969 阅读 · 1 评论 -
hdu 5336 XYZ and Drops(模拟)
hdu 5336 XYZ and Drops#include #include #include #include using namespace std;typedef long long ll;const int maxn = 105;const int dir[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};int R,原创 2015-08-15 11:34:02 · 838 阅读 · 0 评论 -
hihoCoder 1228 Mission Impossible 6(模拟)
题目链接:hihoCoder 1228 Mission Impossible 6解题思路纯模拟,因为限制了字符串的长度,所以时间上可以接受。代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 1e4 + 5;struct Stack { int n;原创 2015-10-07 12:05:09 · 642 阅读 · 0 评论 -
hdu 4782 Beautiful Soup(模拟)
题目链接:hdu 4782 Beautiful Soup解题思路注意空行。代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 1e6 + 5;int N, P, C;char word[maxn], text[maxn];bool idx(char ch)原创 2015-10-22 19:47:23 · 772 阅读 · 0 评论 -
hdu 5466 Clarke and expression(模拟)
题目链接:hdu 5466 Clarke and expression解题思路模拟,注意细节。代码#include <cstdio>#include <cstring>#include <string>#include <vector>#include <map>#include <algorithm>#include <iostream>using namespace std;con原创 2015-10-11 21:43:05 · 586 阅读 · 0 评论 -
hdu 4600 Harvest Moon(模拟)
题目链接:hdu 4600 Harvest Moon代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;const int maxn = 1005;int W, H, N, D, M, S[20];ll V[maxn], A[maxn];void原创 2015-10-27 20:10:04 · 718 阅读 · 0 评论 -
hdu 4634 Swipe Bo(模拟+最短路)
题目链接:hdu 4634 Swipe Bo解题思路只有靠墙的点才会停留并且转弯,所以将所有靠墙的点预处理出4个方向会移动到哪个位置,这一步用模拟即可,注意绕圈的情况,即single强制方向形成环。还有出口的点比较特殊,在靠墙的时候有可能要转移向,做法是可以拆成两点考虑。 剩下的就是最短路问题。代码#include <cstdio>#include <cstring>#include <vec原创 2015-10-28 21:43:01 · 6594 阅读 · 0 评论 -
hdu 5071 Chat(模拟)
题目链接:hdu 5071 Chat题目大意:模拟题。。。注意最后说bye的时候只要和讲过话的妹子说再见。解题思路:用一个map记录每个等级的妹子讲过多少话以及是否有这个等级的妹子。数组A和N记录等级的顺序,增加删除等操作完全可以同过数组上的模拟,时间足够。T和flag标记是否有置顶窗口。#include #include #include #include #原创 2014-10-23 19:42:25 · 1241 阅读 · 0 评论 -
hdu 4995 Revenge of kNN(模拟)
题目链接:hdu 4995 Revenge of kNN题目大意:给定一维坐标下的n个点,以及每个点的权值,有m次查询,每次将查询的x点上的权值修改为离x最近的k个点权值的平均和,有相同取序号小的。最后输出修改值的总和。解题思路:模拟一下就行了,注意下标关系。#include #include #include using namespace std;const in原创 2014-09-14 10:20:00 · 900 阅读 · 0 评论 -
Codeforces 439C Devu and Partitioning of the Array(模拟)
题目链接:Codeforces 439C Devu and Partitioning of the Array 题目大意:给出n个数,要分成k份,每份有若干个数,但是只需要关注该份的和为奇数还是偶数,要求偶数堆的个数为p。输出方案。解题思路:首先先将数组按照奇偶排序,也可以分开储存。然后先单独分k-p个奇数,然后后面的就将两个奇数当一个偶数分配,分配过程中计算是否满足,比如原创 2014-06-15 22:59:43 · 1242 阅读 · 0 评论 -
hdu 4884 TIANKENG’s rice shop(模拟)
题目链接:hdu 4884 TIANKENG’s rice shop题目大意:TIANKENG开了个饭馆,提供n种炒饭,每次抄需要T的时间,每次可以炒K份,在炒的时候不可以接单,以及时间超过1天的情况。给组样例:11000 10 3 523:00 12 1023:01 99 923:05 100 423:10 12 1023:40 100 10解原创 2014-07-28 14:07:55 · 1747 阅读 · 0 评论 -
hdu 4891 The Great Pan(模拟)
题目链接:hdu 4891 The Great Pan题目大意:给出一个文本,问说有多少种理解方式。1. $$中间的,(s1+1) * (s2+1) * ...*(sn+1), si表示连续的空格数。2.{}中间,即 | 的个数+1.解题思路:模拟。#include #include #include using namespace std;原创 2014-07-29 19:25:25 · 1242 阅读 · 0 评论 -
hdu 4930 Fighting the Landlords(模拟)
题目连接:hdu 4930 Fighting the Landlords题目大意:就是两个人玩斗地主,有8种牌型,单张,一对,三张,三带一,三带对,四带二,四炸,王炸。要求上家这一轮出牌下家管不上或者上家将牌走完则输出yes。解题思路:总共就20张牌,枚举220种出牌方法,然后保留每种牌型的最大值,判断一下就可以了,注意细节。#include #include #inclu原创 2014-08-07 18:13:33 · 1276 阅读 · 0 评论 -
hdu 4964 Emmet(模拟)
题目链接:hdu 4964 Emmet题目大意: 给定语句,按照语法翻译并输出。解题思路:用递归模拟文法分析,主要注意几点:括号并且的情况:(fuck)(you)括号嵌套的情况:((fuck.you))优先输出id,然后是class(题目中有说)乘法的部分:fuck*2>you*3 (每次执行fuck时,you的地方同样被执行了3次)其他跑出样例基本没问题,具体看代原创 2014-08-19 23:11:34 · 1634 阅读 · 0 评论 -
uva 246 - 10-20-30(双端队列+模拟)
题目链接:uva 246 - 10-20-30题目大意:一个人在玩纸牌游戏,给定牌的顺序,轮流为7堆牌发牌。如果满足条件,可以一直收取堆上的3张牌,直到不满足为止如果牌堆出现空的情况,那么以后的发牌将跳过这个牌堆(初始不算)求在第几步可以确定游戏的状态:胜利,失败,循环解题思路:用8个双端队列模拟即可。#include #include #include #i原创 2014-08-23 14:48:27 · 2008 阅读 · 0 评论 -
uva 1156 - Pixel Shuffle(模拟+置换)
题目链接:uva 1156 - Pixel Shuffle题目大意:给定一个N*N的黑白位图,有7种操作,并且对应在指令后加上‘-’即为操作的逆,给定N和一系列操作,(从最后一个开始执行),问说这一套指令需要执行多少次才能形成循环。解题思路:模拟指令执行后获得一个置换,分解成若干的循环,各个循环长度的最小公倍数即使答案。#include #include #include原创 2014-08-13 11:10:09 · 2352 阅读 · 0 评论 -
uva 239 - Tempus et mobilius. Time and motion(置换)
题目连接:uva 239 - Tempus et mobilius. Time and motion题目大意:古代有一个计时器,由n个编号从1~n的球组成,然后有三个轨道,分别对应的是1分钟,5分钟,1小时,例如各个轨道都有一个球的时间为1小时6分钟。计时器的工作原理是每一分钟从球堆里滚出一个球到1分钟的轨道上(球堆是一个队列),特殊情况是1分钟的轨道上有了4个球,再进1个球的话就表示5分原创 2014-08-14 00:43:33 · 1404 阅读 · 0 评论 -
Codeforces 461C Appleman and a Sheet of Paper(模拟)
题目链接:Codeforces 461C Appleman and a Sheet of Paper题目大意:就是一个叠被子的过程,穿插着询问一段区间上被子的单位厚度。解题思路:用前缀和数组模拟即可。因为对于折超过一半的处理为将令一半叠上来,所以需要变量记录当前被子的正反状态。处理好下标关系即可。#include #include #include using name原创 2014-08-31 11:52:24 · 1501 阅读 · 0 评论 -
zoj 3914 Semantic Version(模拟)
题目链接:zoj 3914 Semantic Version代码#include <cstdio>#include <cstring>#include <vector>#include <string>#include <algorithm>using namespace std;const int maxn = 100;int P, N;char a[maxn], b[maxn];v原创 2015-10-29 14:59:56 · 712 阅读 · 3 评论