摘要:
例程源码如下://add.h extern int add(int,int);//add.c int add(int a, int b) { int r = a + b; return r; }//mul.h extern int mul(int,int);//mul.c int mul(int a, int b) { int r = a * b; return r; }//main.c #include "add.h" #include "mul.h" #include int main() { int a,b; int r; scanf(" 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2094以前都不知道这道题该怎么过,今天听同学说了,其实思想很简单。用了最近在学的STL就把它给A了。思想:讲输入的全部人都放入一个容器base中,将全部输的人放入另一个容器base1中,最后将两个容器的size相减一下就可以了。得到1就说明能产生冠军。 因为要是能产生冠军的话,全部人中只有冠军是没有输过的,其他的人肯定是输过的!所以,容器base的大小肯定比base1大1。My code: #include#include#include#includeusing namespace std;int main 阅读全文
摘要:
今天还是在温习以前看过的算法,感觉还是很陌生似得!先粘贴下别人博客上的Dijkstra算法的具体步骤:Dijkstra算法又称为单源最短路径,所谓单源是在一个有向图中,从一个顶点出发,求该顶点至所有可到达顶点的最短路径问题。 设G=(V,E)是一个有向图,V表示顶点,E表示边。它的每一条边(i,j)属于E,都有一个非负权W(I,j),在G中指定一个结点v0,要求把从v0到G的每一个接vj(vj属于V)的最短有向路径找出来(或者指出不存在)。 Dijstra算法是运用贪心的策略,从源点开始,不断地通过相联通的点找出到其他点的最短距离 基本思想是: 设置一个顶点的集合s,并不断地扩充这个集合,一个 阅读全文
摘要:
这一题其实是一道背包问题的变形(完全背包问题)——可以转意为:将重量为1~N的物品放入容量为N的背包,求方案数。可以得出状态转移方程:d[i][j] = d[i-1][j] + d[i][j-i]解释为:用前i个数组成j = 用前i-1个数组成j + 用前i个数组成j-i(即没用数字i的组合数+用了数字i的组合数,两者为i,j的组合方案,且互斥)由转移方程可得填表顺序如下图所示:其中,横轴为i,纵轴为j,方向为从上到下,从左到右,之前还要进行基本项的初始化,不难理解,即d[i][0] = 1; d[0][j] = 0; 最后是边界处理,根据题意,填表只需要填j >= i的情况,当d[x] 阅读全文
摘要:
一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.ACM主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。下面给个计划你练练:第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码, 因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打 出来。1.最短路(Floyd、Dijstra,BellmanFord) 2.最小生成树(先写个prim,kruscal要用并查集,不好写) 3.大数(高精度)加减乘除 4.二分查找. (代码可在五行以内) 5.叉乘、判线段相交、然后写个凸包. 6.BFS、DFS,同时 阅读全文
摘要:
template,classAlloc=alloc>第一个参数Key是关键字类型第二个参数T是值类型第三个参数Compare是比较函数(仿函数)第四个参数是内存配置对象Map中的关键字,起码必须有“#include#include#includeusingnamespacestd;structmyComp{inta,b,c;myComp():a(0),b(0),c(0){};myComp(intaa,intbb,intcc):a(aa),b(bb),c(cc){};friendbooloperatorimap;imap[myComp(4,5,0)]='q';imap[my 阅读全文
摘要:
最近结合stl看数据结构,对许多原本半生不熟的知识都有了点领悟,大家知道stl里无论是向量还是容器的sort算法都很有用也很方便.但是似乎大家一直都是用int类型来初始化这些对象,那我用自定义的一个结构来对初始化这些对象,并且想对结构里的某一个元素的大小来排序,该怎么办呢,我上网查了些资料,并根据自己的学习与琢磨,找到了比较简单的方法.那么不说废话,看代码:#include#includeusingnamespacestd;structstu{ chara[10]; ints; };classstu1:greater{public: booloperator()(stub1,stub2)c.. 阅读全文
摘要:
一、安装相应的JAVA包,下载相应的Tomcat版本的WEB容器二、配置JAVA环境变量,分别配置下列几项环境变量:1.首先,打开配置环境变量界面,如下操作:我的电脑---属性---高级---环境变量 2.系统变量(S)中配置如下: 2.1,新建系统变量: 变量名:JAVA_HOME 变量值:C:\ProgramFiles\Java\jdk1.5.0_17(可更换为相应版本的jdk包) 2.2,编辑CLASSPATH,如果没有该变量则新建, 变量名:CLASSPATH变量值:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(注:该变量值置于CL 阅读全文
摘要:
sort函数定义在库中,可以看做是qsort(包含在头文件中,具体使用在此就不介绍了)的拓展版,是STL的组成部分,针对不同的情况,对排序有不同的策略,平均效率很好,综合效率高于qsort(单一的快排)sort的用法方便简单。一、首先,先拿简单的数组排序为例:intarr[100];若要完成从小到大排序sort(arr,arr+100);即可~若完成从大到小排序,可以定义cmp函数如下:intcmp(inta,intb){returna>b;//不可加等号,若加上等号,在数组前两个数字相等的情况下,将出现内存访问错误//具体为何,有待dbg源码,坐等高人回复^_^}sort(arr,ar 阅读全文
摘要:
应用到画布上面的效果是可以累积的,因而就可以利用几个简单的函数来“组合”出效果来。例如,在向屏幕上绘制之前,可能会有一艘飞船需要旋转、变换和缩放。因为所有效果都对画布起作用,所以这些效果会应用到将被绘制在屏幕上的所有对象,而不仅仅是某一幅图像或某一个形状(比如一艘飞船)。其中,save和restore函数为应用这些累积的效果提供了一种简单的机制,可以将应用了这些效果的图像或图形绘制到画布上,然后“撤销”这些改变。后台的操作是什么呢?save函数把当前的绘制状态推进栈里,而restore函数则把最后一个状态弹出栈。还拿前面提到的飞船为例,需要执行下列操作:调用save函数(保存当前的绘制状态.. 阅读全文