- 博客(29)
- 收藏
- 关注
原创 Problem 29 Name That Number
这又是一个简单的全搜索,给出一个数字,每个数字可以对应3个字母,象这样: 2: A,B,C 3: D,E,F 4: G,H,I 等等。。。再给一个字典,找到这个数字所有的可能性以后再查字典,选出字典里有的词,输出。字典由usaco给出,差不多4千多个词。最直观的方法就是构建所有的组合,再去查字典。构建的花样不多,查字典的时候小心效率。由于字典是有序的,两分法应该是最好的。或者反过来
2006-01-24 01:17:00 1095
原创 Game of Life in Haskell
又叫cellular automation,详见matchworld的介绍:http://mathworld.wolfram.com/Life.htmlmodule GameOfLife (initWorld, evolve, Cell, Board, Location, World)whereimport Data.List-- Data types to be used represe
2006-01-10 19:13:00 1280
原创 Knight Path Plan<update20060115>
昨天玩chessmaster的时候发现里面tutorial部分里演示马的走法的动画相当有趣,它可以显示出在任意一格中的马要跳到其他格子里所需要的步数。例如:+---+---+---+---+---+---+---+---+| 5 | 4 | 5 | 4 | 5 | 4 | 5 | 6 |+---+---+---+---+---+---+---+---+| 4 | 3 | 4 | 3 | 4 |
2006-01-10 18:56:00 1134
原创 Haskell语法一
这里所有的例子都在GHC上执行通过。这是一个免费的编译器,可以直接下载,提供ghci的互交环境,和python一样:)首先来看一个haskell的函数:average :: Float -> Float -> Float -> Floataverage a b c = (a + b + c) / 3.0这个函数的作用很明显,我们关注的是它的语法形式,双冒号之前的是函数名,之后函数的主体部分会再次重
2005-09-19 15:54:00 3046 1
原创 Haskell简介
Haskell是一种纯functional语言。这要先解释函数的side effect,所谓的副作用是指函数在执行过程中处理了一些和函数自身的输出无关的东西。最简单的例子就是在c/c++这类语言中,我们可以访问一个全局变量并修改它(即使所有教科书都不推荐这么做,但c/c++确实可以,有没有能力和去不去做是两回事)。更进一步,任何改变外围状态的动作都属于side effect范畴,如向屏幕输出一行字
2005-08-29 16:14:00 5026
原创 Longest c++ sentence
"if new true friend not protected for explicit private union, break case and try using this." -- Nathan Myers
2005-08-23 18:18:00 914
原创 Gmail application
“居然可以这样用Gmail!”。很多人看到这些东东的时候都发出如此惊叹。周星驰在《回魂夜》里说:“这个世界上什么事情都可能发生,爱因斯坦说过想象力比任何知识更重要,想象力可以将不可能变成可能”。那让我们来看看Gmail究竟可以干什么呢?首先当然是用来存东西啦,2G+的空间,不放资料多浪费,Gmail FileSystem是给unix-like用户准备的,而Gmail Drive则为windows用
2005-07-26 03:13:00 1328
原创 7月
原本在考试前计划的一揽子的写作方案一个都米有实现,回头看看自己也只好苦笑了,新学期又在眼前,一年的时间似乎真的快的可以和光速拼一下,学生生涯剩下最后一个年头的时候,我该何去何从?
2005-07-23 02:03:00 765
原创 Problem 6 Superprime Rib
又是素数的问题,“超级”素数指的是型如这样的整数:7331,其中前缀7,73,733,以及自身7331都是素数。给定一个n,找到所有n位的“超级”素数。n的范围是1-8。8位数是千万级,穷举是不现实的。根据superprime的性质,很容易想到自己构造这样的数字。首先观察一下每个位上的数字。对于一个n位数,除了首位,其他位置上都不会出现偶数和数字5,否则就不是素数了。首位上,2显然是可以出现的,但
2005-06-13 15:15:00 1219
原创 Problem 76 Mixing Milk
牛奶厂向农民买牛奶,每天需要买N个单位的牛奶,现有M个农民(奶民?),求最便宜的买法,假设农民提供的总量一定比N大。这个问题也是很标准的贪心问题,把农民按价格排序,买够为止。这里数据结构用的是map,因为map会自动排序,嘿嘿。不过小心map没有重复key,而农民的价格可能会重复。注:贪心算法通常无论思路、代码都很简单,但贪心算法在很多情况下都是不正确的(或者说都不能得到最优解)。如果能证明贪心法
2005-06-12 16:10:00 980
原创 Problem 45 What Time Is It
这个问题是要求把数字形式的时间转换成文字形式的。所有的regulation都给出了,编码的时候小心一点考虑全面就是了。#include #include #include using namespace std;int main(){ string exp; int hr, min; char dump; ifstream fin("clock.in"); fin>>hr>>dump>>min
2005-06-12 12:48:00 927
原创 Problem 24 Barn Repair
有一排牛棚,其中某些有牛有些没有,每个棚宽度相同,要求用不超过规定的木板数覆盖最少的牛棚,前提当然是有牛的棚都要覆盖啦。很典型的贪心问题,反过来想比较容易,要覆盖最少,也就是空出最多。这样算法就很清楚了,从第一个被占据的牛棚开始数,到最后一个被占据的牛棚为止,找出所有的空牛棚,把它们排序,删掉最长的那些就ok了。#include #include using namespace std;int c
2005-06-12 12:44:00 1065
原创 My Toy No.3:Weblog Crawler
顾名思义,爬虫就是在internet上把我们需要的内容抓回来的程序,google每天都从internet上爬回无数链接来维护它的数据库。这里是一个简单的爬虫,针对MSDN上有名的TheOldNewThing,按post、日期分类,把所有的links抓回来。BlogLayoutInterface.javaimport java.io.*;// Adapter Interfacepublic inte
2005-06-04 02:54:00 1769
原创 Parellel TSP
学校给了一个4×3G的cluster,写一个并行的程序。这里采用的是MPI, Message Passing Interface。算法在前面的post里讨论过了,我的算法很烂拉,没有好好利用,就算在那么强悍的机器上也没有办法跑到什么好结果。班上有4组牛人跑到最好的4个结果,166106,167692,171233,171313。哪位大哥有兴趣可以挑战一下,嘿嘿。这里是代码,non-blocking
2005-06-04 01:33:00 1524
原创 TSP-Genetic Algorithm
以前从来没玩过遗传算法,这次是逼上梁山,因为RNNA实在太简单,没法写出上千字的report。实在是为了算法而算法,并不是为了得到什么更优的解。。。汗自己的学习态度一下。。。anyway,GA确实是可以得到一个比较优的解,由于时间关系,这次我没有认真研究它,只是囫囵吞枣,得了点皮毛中的皮毛而已。理解错了,请大侠指正。先说无性繁殖,无性繁殖很简单拉,其中一种叫local search。就是把找到的路
2005-06-04 00:09:00 1563
原创 TSP-simple solution
先看看单机上跑法。精确解是不可能了,近似解法有很多,说说最简单的:Cheapest Link Algorithm和MST的Prim算法差不多,每次选最小权的边,直到选中所有的点。Choose the edge with the smallest weight (the "cheapest" edge), randomly breaking tiesKeep choosing the "cheape
2005-06-03 23:18:00 1191
原创 Traveling Salesman Problem-Statement of work
这个问题大名鼎鼎,不多废话。这里是一个变形。访问500个城市,500个城市全连通可以从任意一点开始,不要求回到原点。一分钟之内至少给出有一个解坐标放在一个cities.dat文件内,格式如下:0:0:01:20:802:10:10........499:1000:210坐标范围0-10000输出格式:距离:路径eg 100000:0,1,2,3,4,5,6......498,499距离取整即可。以
2005-06-03 23:04:00 4149
原创 Problem 95 Prime Palindromes
这个问题非常有趣,回文素数在数论里也占有一席之地,成为Palindromic Prime,或简写为Palprime。题目的规模比之前的三道一下跳了n个数量级,达到100,000,000。不过因为只是在这个范围内做搜寻,所以并不用担心int的表示范围。但是,一亿还是很大的数字,一个个检测显然不现实,要想办法把范围缩小。首先,除了2,所有的素数都是奇数,而题目范围从5开始……Oh yeah,一下就干掉
2005-04-26 12:34:00 1309 1
原创 发现了一个好地方
素网GOOD PRIMES,讨论了一些有趣味的数论问题,简单易懂。下面这段话摘自《圆周率与素数》:How I want a drink, alcoholic of course, after the heavy lectures involving quantum mechanics, and if the lectures were boring or tiring, then any odd
2005-04-24 20:09:00 922
原创 Problem 99 Broken Necklace
这个题目是标准的complete search,350的长度,即使一个个数过去代价也是很小的。完全不必考虑任何优化。analysis的方法和我差不多,但写的非常elegant,很优雅地处理了向前向后的方向问题(用了一个额外的mod函数),以及全白项链的问题。当初完全没想到整个项链都是白色的话怎么办,致使我的方法会陷入一个infinite loop。考虑问题不全面啊#include #include
2005-04-24 16:38:00 1213
原创 Problem 77 Greedy Gift Givers
和Problem 108一样,Rob简化了这个问题,去掉了BT的测试数据,把问题限定在很小的范围之内,最多10个人,人名不超过14个字母,礼物价值在2000以内,不过这也OK啦,和Problem 108不同,前两个值对整个问题没有什么影响,就算用BT数据,也只是小把戏而已(因为不可能修改人名,弄个长达几十万个字母的名字一点意义都没有,除了增加保存的难度,和算法无关,不是USACO的宗旨,而且要是用
2005-04-23 14:26:00 1414 1
原创 Problem 108 Your Ride Is Here
先来个最简单的,也是USACO的第一个问题。Story就不复述啦,和程序没什么关系。输入文件有两行字符串,全部都是大写字母,不用考虑非法输入(比如夹杂数字等)。字母对应到数字分别从1-26,即,A=1,B=2,。。。,Z=26。转换好以后,把它们分别乘起来除以47取模,如果两行结果相等,输出GO,否则输出STAY。char到int的转换对学过c的朋友来说再简单不过了,ASCII代码有现成的映射,做
2005-04-22 19:32:00 1298
原创 Intro
USACOgate是美国佬给他们的中学生准备的一个培训网站,旨在培养对竞赛有兴趣的学生。不过不管什么地方的人都是可以用的啦。5年前第一次玩这个的时候,为了它几乎废寝忘食。但不幸一次硬盘崩溃,报销了我所有的文档。现在忙里偷闲回顾一下,发现自己居然对这些题目还记忆犹新,写点心得出来share一下,我对算法不在行,大学里也只是过关了事。USACO是激起我对algorithmic programming兴
2005-04-22 15:41:00 796
原创 编译stlport及boost
环境:win2k svr sp4,vs.net2k3,D:/stlport-5.0-0125,D:/boost_1_32_0都在命令行下编译,都要先执行"D:/Program Files/Microsoft Visual Studio .NET 2003/Common7/Tools/vsvars32.bat"以保证nmake可以用。stlport没难度,跟着压缩包里的INSTALL文件走:1) 解
2005-04-22 15:30:00 1947
原创 多收了三五斗
大学生就业版人才市场的停车场里,横七竖八停着各处来的自行车,助动车。门口排队的是新毕业的大学生,把门口塞得很满。厚厚的履历表用各色的夹子夹者,一捆一捆地,填没了这只手和那只手之间的空隙.门口进去就是XX市最大的人才市场了,招聘单位就排在市场的那一边。朝晨的太阳光从整洁的玻璃天棚斜射下来,光柱子落在柜台外面晃动着的几副GLASSES上. 那些毕业生大清早骑自行车出来,穿越了半个城市,到了人才市场
2005-04-17 19:35:00 782
原创 环境决定性格,性格决定命运
衣食无忧而又缺乏管爱(不是错别字)的成长环境使你成为了一个将感情视作可口美味的人,没有了爱,你会觉得就像生活没有了零食一样缺少了什么。但是,感情不是美味,不是奢侈品,也不是可以无限透支的帐号。感情就像你有限的青春,就像厨房里那桶金龙鱼——用完了,就没了,除非你用钱买。当你牵了第一个男人的手,靠了第二个男人的肩膀,吻了第三个男人的嘴唇,上了第四个男人的床——青涩的矜持没有了,脸红的的温柔没有了,就连
2005-04-16 16:00:00 2466 1
原创 MyToy No.2: Odd Person Wins
/* * Created on 2004-11-22 *//** * @author TinyPandaBear * * Suppose you have three people and need a fair way to pick one of the three to * win some prize or do some task. A common method is for eac
2005-04-10 15:23:00 654
原创 MyToy No.1: RMI
假设有n个银行,每个银行有m个ATM,每台ATM都可以withdraw自己银行的钱(废话),也可以withdraw别的银行的钱,for example,工商银行的机器也可以插交通银行的卡。总之有一个叫CCH的地方(central......house,想不起来了:)来处理这种类型的提款。另外,ATM还有deposit的功能(真先进,两机一体化),那么处理别的银行的存款时,CCH也要负责处理。当然,
2005-04-10 14:56:00 1382
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人