您正在查看 "模拟" 分类下的文章 2011-01-08 23:16 我的做法是把输入的所有字典中的字符串先按字符串长度从小到大排序,如果相度相等,再按字典序排序,对于每一个要查询的字符串,比较word, 先在排序了的字符串中二分查找是否出现了word,如果没有出现过再进行另外处理,即通过两次二分查找,查找到排序后第一个比word长度小1的字符串id(begin),和最后一个比word长1的字符串id(end),答案即在begin到end中,对于需要增加一个字符,删除一个字符,替换一个字符,分别进行判断操作即可,把答案存入一个数组中,最后输出. ,141ms过掉,还是挺快..
PS:地区赛虽然杯具的结束 |
2010-10-27 11:55 此题直接对点进行hash即可,听说现场赛的时候用set. map都可以过,现在数据加强了过不了,排序了也过不了,把LY的去重代码改了一下15ms过掉,我又改为把x,y,z三点进行x*1000000+y*1000+z得到每个点的一个唯一映射,然后对整数进行hash, 注意的是,因为是多组输入,所以得把上一组的hash结果消除掉,如果直接把所有的数都进行一次初始化的化,必然会TLE,可以用一个数组进行记录,记录上一次hash后的值,再对该初始化的点进行初始化,三百多ms过掉...
PS(比赛的时候还是先写好写的(听说现场赛数据一般都不是很强),如果 |
2010-09-17 19:57 挺水的一道题,不能原谅的是偶把square理解成矩形去了,WA了两次,08年的区域赛题啊,比赛出了这种错是无法原谅的啊...square("正方形")
算法:离散化+set查找
#include <iostream>
#include <cstdio>
|
2010-09-17 15:05 此题一看便是模拟,不过有好多细节要认识好
1:单挑的情况是指只有一个汉奸和主公打斗(其它人都没有)
2:当反贼胜的时候,所有的反贼都得加上杀死主公所得到的两分,
偶也是WA了好多次,后来参考了大牛的报告改了才过,就是上面的这两个地方理解错了,
|
2010-09-16 23:16 题意:略
算法;模拟 WA了几次,后来改了一下就过了,如果某个人的生命数小于或等于0, 则让他与最后一个人交换,因为之前生命小于等于0的已经过行了处理,也没有料到会AC,刷新一看,红色的Accepted让偶兴奋不已啊(偶是水人,大牛勿BS)...

看了一下代码,原来是判断生命的时候有一句写成了, if (person[i].LeiLi<=0) 去了,还是粗心的缘故...
|
2010-09-16 20:11 很明显是模拟题,需要注意的是最后一句话,第一次扔的时候,1不能算在内..否则会WA
#include <iostream>
#include <cstdio>
#include <cstring>
|
2010-09-16 19:06 题意:略
算法:Trie树+模拟 需要注意的是最后输出的时候要按字符序输出
#include <iostream>
#include <cstdio>
#include <cstring>
|
2010-09-15 20:55 题意比较直接,直接模拟就行了
#include <iostream>
#include <cstdio>
#include <cstring>
#include |
2010-09-15 19:59 模拟题: PE两次,PE其实就是WA,有一点得注意的是,在输出80个'-'字符后得再加一个换行,由编辑器运行的时候如果不加换行看起来也是自动换行的,但是如果输出到文件就不会换行了,所以这里得加一个换行,
#include <iostream>
#include <cs |
2010-09-14 13:15 比较水的模拟题,做模拟题感觉主要还是靠细心. 然后题一般肯定都会很长. 挺锻炼理解能力.
#include <iostream>
#include <cstdio>
#include <cstring>
|
2010-08-25 1:23 09年宁波赛区决赛题:
算法:枚举时间+枚举台电脑进行处理 1A 爽
#include <iostream>
using namespace std;
#define F(i, l, r) for ( |
2010-08-24 0:24
我的做法是先枚举C中的数,然后枚举C的每个因子,看是否满足条件即可,一次AC,爽
#include <iostream>
#include <string>
#include |
2010-05-27 23:32 简单模拟题:
#include <iostream>
#include <string>
using namespace std;
int T, n;
string s;
int p[30];
int w[30];
bool flag[3000];
void init()
{
for (int i=1; i<=n; i++)
{
scanf("%d", p+i);
}
}
int main( ) |
2010-05-10 15:24 此题题意很明朗,可是一到做的时候才发现比较难模拟,处理的情况有点复杂。不知从何下手的感觉。后来分析了一下,写出了代码,presentation 一次,最后多边了一个空格,注意。
|
2010-05-09 22:44 // 赤裸裸的模拟题。不过个人感觉是一道有点难度的模拟题,首先这题代码感觉写着比较困难,很容易出现bug,调试了很长时间才过。
总结一下:在做题的时候一定不能急于敲代码,得先把思路写清,然后再画一个流程图出来,再把所需的数组和变量大概写一下。最后得再确定一下没错再敲代码,不然最后很大可能会有错误。深有体会啊。惭愧...(血的教训, 铭记)
my code:
|
| | |