摘要:写此文目的:让外行人了解ACM,重视ACM。让ACMer了解评测程序评测原理以便更好得做题。让pythoner了解如何使用更好的使用python。在讲解之前,先给外行人补充一些关于ACM的知识。什么是ACM?我们平常指的ACM是ACM/ICPC(国际大学生程序设计竞赛),这是由ACM(Association for Computing Machinery,美国计算机协会)组织的年度性竞赛,始于1970年,是全球大学生计算机程序能力竞赛活动中最有影响的一项赛事。被誉为计算机界奥林匹克。了解更多关于ACM的信息可以参考:百度百科:http://baike.baidu.com/view/201684
阅读全文
摘要:杭州电子科技大学的OJ(http://acm.hdu.edu.cn/)(以后简称杭电)很有特色,目前也很火,其中一个关键原因就是它提供了一些新功能,比如diy,webdiy,virtual contest等。这里我们简单讨论一下杭电的webdiy。 webdiy是什么?是在DIY的基础上增加了从其他OJ选题的功能,那么DIY是什么?就是自己在本地选题,然后组成一场比赛。实现这个功能关键是能在其他OJ上提交,并能获得评判结果,直接往数据库里面写肯定是不可能的,那就只剩下一个方法:网络爬虫,模拟用户提交。 最近一直在研究python的网络编程模块,用python来实现这个功能还是比较...
阅读全文
摘要:今天给大一的小孩讲结构体,讲到指向结构体的指针的时候,突然一个小孩提出了一个问题:指向结构体成员的指针p加1后指向谁?当时懵了,想写个程序验证一下,脑子一片空白。好像提问题的那个小孩听明白的,就干脆让他写吧。哈哈,他还挺厉害的,他写的代码大体是这样的:#include<stdio.h>structdata{inta;intb;intc;};intmain(){structdataa[3]={{11,12,13},{21,22,23},{31,32,33}};int*p=&a[0].c;//*p=13p++;printf("%d\n",*p);}大家认为会
阅读全文
摘要:貌似有些编译器并不完全支持所有数据类型,运行结果可能也有差异,依编译器而异,但是获得方式都是一样的#include<stdio.h>#include<limits.h>#include<float.h>#include<stdlib.h>intmain(void){printf("char类型的变量存储值从%d到%d\n",CHAR_MIN,CHAR_MAX);printf("unsignedchar类型的变量存储值从0到%u\n",UCHAR_MAX);printf("short类型的变量存储值
阅读全文
摘要:本文转自:http://blog.csdn.net/dinosoft/article/details/6330121有些牛X的人性格会比较古怪,VIM就是这么一位特立独行,难以琢磨的怪客。但如果熟悉了,你就会发现他的好。 VIM(VI,VIM,GVIM)这东西不好上手,而且是相当不好上手,基本上新手打开这个编辑器,想试着输入几个字符之后,便会很恼火地把VIM关掉。 第一次接触vim是上网找工具自动缩进代码。在网上拷的代码因为html的原因,没处理好缩进会全乱掉,手动调那会蛋疼死的。这种机械的话显然要交给机器做。上网搜了一下,居然只找到vim的方法,所以自己就下了一个,gg=G,按了几个奇怪的按
阅读全文
摘要:程序的运行效率很重要,为了明确到底是那一块代码浪费时间,浪费多少时间,检测一下是很有必要的,用下面的方法可以精确地统计时间。第一种精确到秒,第二种精确到毫秒,第三种精确到0.000001秒,大家可以根据自己的需求选用。#include<time.h>#include<stdio.h>#include<stdlib.h>#include<windows.h>intmain(){//精确到秒==========================================time_tt1,t2;time(&t1);//此处放置要测试的代码S
阅读全文
摘要:#include<iostream>usingnamespacestd;template<classT>classcompare{public:compare(Ta,Tb){x=a;y=b;}Tmax(){return(x>y)?x:y;}Tmin();private:Tx,y;};template<classT>Tcompare<T>::min(){return(x>y)?y:x;}intmain(){compare<int>cmp(3,7);cout<<cmp.max();compare<float&
阅读全文
摘要:#include<iostream>usingnamespacestd;classcomplex{doublereal,imag;public:complex(doubler=0,doublei=0){real=r;imag=i;}complexoperator+(complex&c2);voiddisplay();};complexcomplex::operator+(complex&c2){complexc;c.real=real+c2.real;c.imag=imag+c2.imag;returnc;}voidcomplex::display(){cout&l
阅读全文
摘要:C++ Lists(链表) 赋值(assign) 语法: void assign( input_iterator start, input_iterator end ); void assign( size_type num, const TYPE &val ); assign()函数以迭代器start和end指示的范围为list赋值或者为list赋值num个以val为值的元素。相关主题:insert(), back 语法: reference back(); back()函数返回一个引用,指向list的最后一个元素。 相关主题:front(), p...
阅读全文
摘要:动态规划,基本上就是说:你追一个MM的时候,需要对该MM身边的各闺中密友都好,这样你追MM这个问题就分解为对其MM朋友的问题,只有把这些问题都解决了,最终你才能追到MM。该方法适用于聪明的MM,懂得“看一个人,不是看他如何对你,而是看他如何对他人。”的道理,并且对付这样的MM总能得到最优解。该方法的缺点是开销较大,因为每个子问题都要好好对待。。。。////////////////////////////////////////////////////////////////////贪心法,基本上就是:你追一个MM的时候,从相识到相知,每次都采用最aggressive的方式,进攻进攻再进攻!从.
阅读全文
摘要:学完栈写了一个计算器小程序,基本功能如下:1.支持基本的+ - * / % 运算2.支持sin、cos、tan、ln、log、乘方(^)、开方(sqrt)、指数(exp) 求值3.支持括号及括号嵌套4.支持由以上运算符组和成的长表达式求值5.支持小数及负数6.支持多位数运算7.支持省略最右边的")":例如“2*(1+2/(1+2”可补全")"并正确求值8.支持省略"*",例如(1+2)(3+4) 、10sin30、sin30cos60可以正确求值9.满足各种用户的操作习惯:空格在任何位置都可以出现,,出现个数任意,也可以不出现,,如&
阅读全文
摘要:当题目不会做或者算法实现不了时,我们很自然地去网上搜代码,但是网上的代码排版太乱,根本不遵循代码规范,举个例子:大家可以点击这个链接http://tieba.baidu.com/f?kz=825544513,,这里有个代码,#include<iostream>#include<string.h>using namespace std;int main(){ char a[100],b[1000];int k,i,j,t=0,la,lb;scanf("%d",&k);while(t<k) { scanf("%s",a)
阅读全文
摘要:#include<stdio.h>#include<stdlib.h>void myqsort(int *a,int low,int high){ int i,j; int c; c=a[low]; i=low; j=high; while(i<j) { while(a[j]>=c && i<j)--j; a[i]=a[j]; while(a[i]<=c && i<j)++i; a[j]=a[i]; } a[i]=c; if(i-1>lo...
阅读全文