dango

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  11 Posts :: 0 Stories :: 4 Comments :: 0 Trackbacks

常用链接

留言簿(2)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

准备ACM,看了一下STL库。
http://www.docin.com/p-46121844.html
豆丁这个PDF不错,福州大学的,感觉简明扼要刚好够ACM用。

很水,所以做水题。
每一道题都能多发现几个有用的函数。
map很多时候都不是最好的办法,自己写hash估计其实会更快的,不过既然是熟悉map,就全部用map了。

相关的POJ题目, 搜索"poj map"然后找出来的可以用map解决的题目。

POJ 1002
map<string, int>
每次读入一个原始号码,转化成数字的标准形式,用map来存储每个号码的出现次数。

POJ 2491
map<string, int>
题意简单说来就是给一堆单词,有一个开头,一个结尾,要求连成一串。
看一下样例就可以明白了。
给每个字符串编个号,再记录一下相应的父子状态。
POJ2491

POJ 2503
字典问题,map<string, string>
直接dict[foreign] = english;
最后查找。
题目提示最好用scanf和printf,我用了C的字符串读入,再转化成string。
网上看了一些人的程序,一位大牛10+行用cin string直接搞,2000+ms过。
第一次输出的时候没转换了,直接string输出,900+ms。
修改了一次,把string转换成char *a形式输出,700+ms。
说明使用C字符串读入还是确实节省不少时间的。
同时也学习了一下string转换成 char *a,又有函数……

const char *a;/*因为str.c_str()返回值是const char* 类型的*/
string str="hello";
a=str.c_str();

POJ2503

POJ 2643
map<string, string>
map<string, int>
综合了Discuss里很多人的讨论,这个代码应该算挺完善的了,
1、如果投票给不在之前输入的名字范围之内,忽略掉
2、不管输入的n和m之后有多少空格什么的一律忽略,无影响
3、直接按姓名投票,所有independent直接在党派里记录为independent
顺带学习了几个函数,注释出来
POJ2643

POJ3087
map绝对是很水的一个解决方式,不过我就是为了练习map的所以用了……
我用了map<vector<char>, int>,用map<string, int>应该也是可以的。
给一个洗牌的序列,具体就是题目的图,画的挺明白的。如果达不到目标状态,必定是洗着洗着到了一个死循环了
总结:
原来vector是可以用==判断的……看了网上的一个代码又有了很水的新发现……
vector<char> temp(now);  //构造一个新的向量,作为已存在的向量的完全复制
用了一个新东西……

POJ3087

时间紧迫,map就这样先用一晚上告一段落吧~

posted on 2010-10-08 21:17 Dango 阅读(800) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理