差分约束巧妙地将不等式的关系转换成图论中求最短路径时所用的三角形不等式即如果dis[i]+map[i][j]<=dis[j]交换一下得:dis[i]-dis[j]<=-map[i][j]建边j->i 权值为-map[i][j];核心的方法就是上面的东西了用spfa求最短路View Code #include<stdio.h>#include<queue>#include<string.h>using namespace std;const int INF = 9999999;struct NODE{ int v,w; int next;}l Read More
析构函数是不能人为调用的,它由编译器根据某对象是否已超出它的作用域来决定是否调用析构函数。上面的析构函数没有做任何有意义的动作,仅仅说明它已经被调用了,这是因为编译器会自动释放该对象所占用的内存空间。如果在构造函数中使用new或其他方法在堆中申请了内存,这时就要在析构函数中使用delete或相应的释放方法去释放内存,否则,系统不会释放内存,这样就会产生内存漏洞。如果没有编写自己的析构函数,那么编译器将产生一个默认析构函数。对于本身就是c++对象的数据成员来说,默认构造函数会调用这些对象的析构函数。 Read More
View Code #include<iostream>using namespace std;class point{public : int x,y; point(); point(int x,int y); ~point();};void main(){ point p1; point p2(800,600); cout<<"p1: "<<p1.x<<" "<<p1.y<<endl; cout<<"p2: "<<p2.x<< Read More