POJ - 3241 Object Clustering 哈夫曼距离最小生成树

题目链接点这里


最近真是很怠情啊,不想动手。。。

偶尔敲一题,,都是敲一个小时,,调试2个小时的状态,,,,心累,,

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define INF 0x3f3f3f3f
#define INFLL 0x3f3f3f3f3f3f3f3f
#define FIN freopen("input.txt","r",stdin)
#define mem(x,y) memset(x,y,sizeof(x))
typedef unsigned long long ULL;
typedef long long LL;
#define fuck(x) cout<<"x"<,int> PIII;
typedef pair PII;
const double eps=1e-5;
int n,k;
const int M=2222,U=1000;//M为U-(y-x)取到的最大值;
struct Point {
    int x,y,id;
    bool operator <(const Point a)const {
        if(x!=a.x)return xval) {
            tree[x].val=val;
            tree[x].id=id;
        }
        x+=-x&x;
    }
}
PII tree_query(int x) {
    int minn=INF,id=-1;
    while(x) {
        if(tree[x].val=0; i--) {
        PII u=tree_query(U-(w[i].y-w[i].x));
        if(u.second!=-1)
            E[cnt++]=Edge(w[i].id,u.second,u.first-(w[i].x+w[i].y));
        tree_add(U-(w[i].y-w[i].x),w[i].y+w[i].x,w[i].id);
    }
}
int bin[MX];
int Find(int x) {
    return x==bin[x]?x:bin[x]=Find(bin[x]);
}
int main() {
    FIN;
    while(cin>>n>>k) {
        for(int i=0; i


你可能感兴趣的:(POJ - 3241 Object Clustering 哈夫曼距离最小生成树)