模拟
文章平均质量分 84
AndyZhang
一些当前好走的路会越走越窄,而一些当前艰难的路却会越走越宽广。
展开
-
poj 1009 这哪是模拟题啊?
一看题目感觉就是模拟题,但是直接模拟肯定超时超内存。但是压缩,又想不明白。看了很多人的想法,感觉这个不错。就是将变化的点当做一个3*3矩阵中的中间点来算。同时将周围的8个点的相关情况也计算出来。这样就相当于记录了变化点的前一个点的值包括最大绝对值,以及后一个点的情况。到最后,只需要比较相邻两个点之间的值是否一样,如果不一样就减一下位置,可得到有多少个这样的点。一样的话就继续找下一个。原创 2012-03-25 14:39:05 · 1084 阅读 · 0 评论 -
poj2014-模拟----水题1A
题目比较简单,不多说,就是按照题目说的将矩形放到框里(框的最大宽度给出),放不下,就放下一行。注意这里不能旋转,这也就成为水题模拟题的原因,也不让求最大最小,就是模拟最终的状态。不能旋转,直接放。 代码:#include #include #include #define Min(a,b) (a<b?a:b)#define Max(a,b) (a>b?a:b)i原创 2012-11-26 23:06:33 · 1104 阅读 · 0 评论 -
poj3295-纠结的模拟题
题目很简单就是计算表达式。这个可以入栈出栈,来计算。discuss里面通过递归计算很经典。另外就是用& | 还是用&& ||这是个问题。否则wa死都不知道。总体解决如果用c++编译器编译,赋值为0或者为1,然后用 ! && ||千万不要用用& |实际上如果我们赋值用 = i &(1 位运算和逻辑运算还是有差别的。bool还是int#include #include原创 2012-11-04 17:15:36 · 1158 阅读 · 0 评论 -
poj1606-没想好就不要下手,否则浪费时间-模拟题的教训
这道题目题意很简单,就是给你两个容器,求出获得指定量水的步骤。一看稍微分析就知道是广度优先搜索。就是每次最多有六种情况,填满a,填满b,清空a,清空b,从a倒到b,从b倒到a。对每种情况将在这种情况下的可能的情况进入队列,直到找到最终结果。 注意不要以为和题目答案不一样就以为自己是错的,因为倒的方法可能不一样,所以最好自己验证一下,题目也标出了special judge,就是答案不止一原创 2012-11-05 00:52:41 · 1125 阅读 · 0 评论 -
poj2370-看题目的时间比写代码AC的时间都长,水题为啥都那么难理解呢,可能英文太差了?
不解释,耐心看完题目意思吧。好好练习一下英文。#include #include #include #define nMax 110int K;int num[nMax];int cmp(const void *a, const void *b){ return *(int *)a - *(int *)b;}int main(){ w原创 2012-11-02 23:43:47 · 1723 阅读 · 0 评论 -
poj2028-水的一塌糊涂
直接上代码:还以为很麻烦呢。。。 #include #include #include #define nMax 110int hash[nMax];int N,Q;int main(){ int m; int date; while (1) { scanf("%d %d", &N, &Q); if (N == 0 && Q ==原创 2012-10-24 00:43:11 · 1951 阅读 · 0 评论 -
poj3517
/* * poj3517.cpp * * Created on: 2010-8-18 * Author: friendy *//* * 对于约瑟夫问题,今天看到了一篇好帖子,是用数学方法处理的,感觉还不错的无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂度高达O(nm),当n,m非常大(例如上百万,上千万)的时候,几乎是没有办法在短时间内出结原创 2010-08-18 21:07:00 · 1213 阅读 · 0 评论 -
uva-10082 - WERTYU
题目分析: 题目很简单,就是键盘上的字母错了一位,要求还原错误的文章。算法分析: 我主要分了三部分,数字,大写字母,还有其他字符。设置对应的匹配数组。代码:#include#include/*char digit[12],upercase[27],ch[15],match[15];*/char str[1000][200];原创 2010-01-03 17:36:00 · 649 阅读 · 0 评论 -
poj1828-Monkeys' Pride
题目大意:题目给出n个点,求出有多少点满足没有横纵坐标同时大于等于这个点的个数。也就是在这所有的点中,这样的点有多少个?什么样的点呢?设这个点(x0,y0),那么如果不存在(x,y)使得x>=x0并且y>=y0,那么这就算一个点,求出所有这样的点。 算法:我们可以竖杆子,什么意思,就是如果x相同,那么按照y从小到大排序。那么我们会发现x-y坐标轴上是一根根杆子,那么我们从后面开始,原创 2011-08-15 23:53:51 · 1356 阅读 · 0 评论 -
poj2271
题目大意就是给你一篇文章,按照html格式输出。输出的时候每行不能超过80个字符,如果超过了,就换行输出那个单词,多个空格按一个输出。遇见就换行,遇见就输出------------------------------------------------------------------算法模拟。。。注意:交上去一直pe,其实要注意几点:1:每行原创 2011-08-27 23:32:14 · 864 阅读 · 0 评论 -
poj2339- 简单模拟
感觉自己的代码不够简洁啊,以后要提炼。。。 #include #include #include char rsp[2][110][110];int r, s, p;void update(int k, int i, int j){ if (i - 1 >= 0) { if (rsp[(k+1)%2][i][j] == 'R' && rsp[(k+原创 2012-04-02 21:51:39 · 1120 阅读 · 0 评论 -
约瑟夫问题(优化优化再优化)
1 什么是约瑟夫问题约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。2 如何求最后一个出列的人1、模拟方法2、数学方法3 模拟方法模拟方法就是所谓的一个个模拟,一个一个出列。这个方法原创 2013-08-05 21:35:10 · 3086 阅读 · 1 评论