Archive for acm

在做f4ck上的游戏时,第三题需要生成字典的,就到网上搜索现成的排列组合的例子,找个一个,(链接找不到了)。那篇文章用了很多种方法,并比较了执行时间,很好。我找了一种感觉很好的,记录一下。 字典生成,共五位,已知四个字母,然后另一位是数字。这五位排列组合,共有5!*10中排列。 先上算法: <pre lang="python"> #-*-coding:utf-8-*- str1 = 'f9ck' def permute(seq): new_list = [] seqn = [seq.pop()] while seq: newseq = [] new = seq.pop() #print "seq:",seq,'seqn', seqn ,'new', new for i in range(len(seqn)): item = seqn[i] for j in range(len(item)+1):

Continue

解决问题的方法真的有好多种,有的可以用很少的代码实现,好佩服。 自己写的代码: <pre lang="c"> /* ID: LANG:C TASK:friday */ #include<stdio.h> int main() { int i,j,n,a[7]={0},t;//t FILE *fin=fopen("friday.in","r"); FILE *fout=fopen("friday.out","w"); fscanf(fin,"%d",&n); for(i=0;i<n;i++) {for(j=0;j<12;j++) {if(i==0&&j==0){ t=13%7; //a[t]++; }else{// if(j==2) { int b=1900+i; if(b%4==0&&b%100!=0||b%400==0) {t=(29%7+t)%7; //a[t]++; }else{t=(28%7+t)%7; //a[t]++; } } else if(j==4||j==6||j==9||j==11) {//30 t=

Continue

今天做完百度acm的题,群里几个人在讨论各个学校的acm队伍、学习等。说到一起做USACO Training上的题目。我遍开始做了,以为这个网站是训练,是一个循序渐进的过程。做到Greedy Gift Givers这个题目,学到很多东西,记录一下。 这个题目很简单,不需要神马高深的算法,主要学到许多c语言的用法,先上我自己写的代码。 <pre lang="c"> /* ID: LANG:C TASK:gift1 */ #include<stdio.h> struct gift { char name[15]; int get; int give; }g[10]; int main() {FILE *fin=fopen("gift1.in","r"); FILE *fout=fopen("gift1.out","w"); int i,np; fscanf(fin,"%d",&np); for(i=0;i<np;i++) { fscanf(fin,"%s",g[i].name); g[i].get=0; g[i].give=0; } fo

Continue

做了白天一整天,就做出了7个题,下午就做出两个。一起做过几个acm的题目,太难了,半天做不出一个,就没兴趣继续做了。这次百度的题目有几个很简单,就做了几个,其中有群里说的思路,还有从网上找到的算法做的。准备将学到的知识总结一下。 今天上网看了一下,各个题目的最好代码占用的内存和代码长度,都好牛比的说。实在是不知道他们是怎么写出来的。 ABCD题是几个公式就搞定了。 E:C++ 与Java 这个题目也比较简单,就是开始的时候,题目上说“长度不超过100”,然后就定义了一个长度为一百的字符串变量,结果当为C++的时候,添加“_”后就会越界了,直接就“Runtime Error”。 G:聊天就是Repeat 这个题用到了一个scanf的格式化,以前没用过但是却知道,开始不知道行不行,试了下成功了。 <pre lang="c"> scanf("%[^EOF]",s);</pre> J:百度的新大厦 这个题是先看到群里说了以后才坐的,没怎么思考。

Continue

几个比较大的在线提交系统(Online Judge)里面有大量历年的竞赛题目,注册一个ID,然后用自己熟悉的语言(一般有Pascal/C /C++/Java)写好源代码提交即可,会实时返回信息告诉你是否正确。采用黑箱测试,系统里有一套标准的输入输出数据(对外保密,而且通常数据很多很 怪),你的程序的输出和标准输出完全符合即可。常见的返回信息有AC(Accepted,通过)WA(Wrong Answer,输出有错 误)TLE(Time Limit Exceeded,超时)MLE(Memory Limit Exceeded,内存溢 出)RE(Runtime Error,发生实时错误)等,只有AC了才算做对一题。这里只是一个简要介绍,请大家在做题时先看看各网站上的 FAQ,Enjoy it~~~ 杭电acm http://acm.hdu.edu.cn 编程爱好者ACM题库 http://www.programfan.com/acm/ Enjoy ACM Life http://acm.asus.com.cn 清华ACM http://acm.l

Continue