存档

文章标签 ‘ICPC’

最后一场ACM比赛

2011年4月23日 10 条评论

今天是今年学校校赛,也是我的最后一场ACM比赛了,从此不会再参加这个比赛了。晚上学长请客,校队老队员一起吃了饭,自己是有点点伤感的。
从大一下学期上ACM全校性选修课开始接触ACM,知道去年年底比完赛,之后就基本没做题了。还是想把时间花在自己喜欢的东西上来。今天在机房的时候,老师笑着说“你怎么就不搞了呢?”,是啊,我去年还说要继续搞的。最后,老师商量事情的时候直接说“把我抛弃了”O(∩_∩)O~
当然了,校赛有WX大神支撑,一等奖不是问题。结果就是一等奖。
好像每年校赛之后,都会有退役的老队员请[......]

继续阅读

分类: ACM-ICPC 标签: , , , ,

USACO Calf Flac

2010年11月28日 2 条评论

USACO Calf Flac又是一个回文数问题。因为数据量不是非常大,所以这里采用暴力枚举。即枚举所有可能的中心节点,往后依次求得以此节点为中心节点的最大回文传长度。
这样做需要注意一个对称问题存在两种情况,如长度为奇数的AABBXBBAA;长度为偶数的AABBBBAA;两种情况都要考虑到。这样之后,只要简单处理一下字符串问题即可。
/*
ID:stackex1
LANG:C
PROG:calfflac
*/
#include <stdio.h>
#include[......]

继续阅读

USACO Mixing Milk

2010年11月28日 没有评论

USACO Mixing Milk简单的贪心问题,按照单价从小到大排序,然后对Farmers的牛奶一个一个的进行收购,知道已经买到了所有Milk。代码如下:
/*
ID:stackex1
LANG:C
PROG:milk
*/
#include <stdio.h>
#include <stdlib.h>

#define MAX_NUM 5010

typedef struct TagNode
{
int price;
int amou[......]

继续阅读

USACO Dual Palindromes

2010年11月28日 没有评论

USACO Dual Palindromes又是一个进制转换和回文数判断相关的题目,跟上一个题目“USACO Palindromic Squares”类似,可以重用一下上一个题目的代码:
/*
ID:stackex1
LANG:C
PROG:dualpal
*/
#include <stdio.h>
#include <string.h>

void num2str(int num, char *s, int base)
{[......]

继续阅读

USACO Palindromic Squares

2010年11月28日 没有评论

USACO Palindromic Squares属于回文数判断与进制转换问题。在Windows下有一个itoa函数,可以方便的将10进制数转换成2到36进制字符串,但是很遗憾GCC里面没有这个函数。于是就自己来写一个通用的转换函数吧。同样是通过一个map数组,可以方便的实现进制的转换,具体请参考下面代码中的num2str函数。
/*
ID:stackex1
LANG:C
PROG:palsquare
*/
#include <stdio.h>
#include &[......]

继续阅读

USACO Name That Number

2010年11月28日 没有评论

USACO Name That Number要求将数字通过手机键盘转换成字母,然后去字典中查找字符串是否存在,存在则输出。如果老老实实的照着这种做法,显得有点繁琐。因为数字串最长有12个,可能转换成的字符串有3^12次方,计算量很大,效率低。我们可以逆向思维,将字典中的字符串转换成对应的数字,如果和给定的数字相等,则说明字符串可以输出。
另外需要注意,题目给定的输入数据是数字串,得到的输出字符串里面不可能有Q和Z,所以这些字符串都可以忽略掉。我是直接打表的……题目给定[......]

继续阅读

分类: USACO题解 标签: , , ,

USACO Transformations

2010年11月28日 没有评论

USACO Transformations模拟题目,按照题目给定的要求变换图形即可,变换的优先级依次减小。这个题目我写的很乱,因为中间二维数组传参数时竟然不能改变数组内容,实在很郁闷,后来测试时又可以了,不知道哪里出了问题。于是中间我还传指向数组名的指针,本地编译一大堆警告,拿到USACO就CE了。各种悲剧,最后,代码都不成样子了:(思路就是这样吧,具体可以看题目提供的Analysis里面的代码,那个简洁多了)
/*
ID:stackex1
LANG:C++
PROG:transfo[......]

继续阅读

USACO Your Ride Is Here

2010年11月24日 5 条评论

Your Ride Is Here是USACO第一题,很简单,没有trick,没有算法。但是题目给的分析将功能部分写入了一个Hash函数之中。由于本人数学基础太差,刚开始没有太明白,后来简单推理了一下,发现了其中的小技巧。
对于求多个数的乘积然后对某一个数取余,分析中的方法显得更为安全一点(如果先算出所有乘积,有可能会溢出。当然,本题条件下不会溢出,所以说没有trick)。下面是一个简单的分析过程:
①(a + b) % c = (a % c + b % c) % c

②a = a%c + [......]

继续阅读

分类: USACO题解 标签: , , ,

福州酱油归来

2010年11月23日 没有评论

各种被虐,各种铁牌,各种酱油。感觉自己一直以来都只是一个业余爱好者,很多东西都没有掌握,硬是要去福州,现在好了,又拿了个Honorable Mention回来了,太丢脸了。拥有两个HM现在对我来说简直是一种XX了。现在是该好好反思一下了。

我要继续奋斗一年……加油。

在回来的路上,连U盘都丢了,真是各种悲剧,各种祸不单行。好好搞ACM吧,其他的一切都是浮云。好好研究算法和数据结构,好好看数论、看几何,好好做题。好好学习。

分类: 其他题解 标签: , , ,

HDU 2095 Find your present

2010年11月17日 10 条评论

HDU 2095 Find your present, 题目地址http://acm.hdu.edu.cn/showproblem.php?pid=2095。水题范围。
题目大意:给定至多1000000个数,里面有一个数出现了奇数次(看题目也许是1次,不过不影响做题),其余的数全部出现偶数次,所有数的数值范围在2^31内,现在要求你找出那个出现奇数次的数。
解题思路:开始想用数组,但是发现开不了那么大,即便开出来也很有可能是Memory Limited Exceeded。后来想到用map,AC了[......]

继续阅读

分类: HDOJ解题报告 标签: , , , ,