摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1281题意:小希和Gardon在玩一个游戏:对一个N*M的棋盘,在格子里放尽量多的一些国际象棋里面的“车”,并且使得他们不能互相攻击,这当然很简单,但是Gardon限制了只有某些格子才可以放,小希还是很轻松的解决了这个问题(见下图)注意不能放车的地方不影响车的互相攻击。所以现在Gardon想让小希来解决一个更难的问题,在保证尽量多的“车”的前提下,棋盘里有些格子是可以避开的,也就是说,不在这些格子上放车,也可以保证尽量多的“车”被放下。但是某些格子若不放子,就无法保证放尽量多的“车”,这样的格子被称做重要点。 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1053/***利用优先队列构造霍夫曼树,首先将所有编码出现次数作为叶子节点的权值加入队列,**然后每次取出权值最小的两个节点,组合后加入队列。**最后遍历树求得总的编码长度。*/#include #include #include #include #include #include using namespace std;struct node{ int w; bool yezi;//是否是叶子节点 node *lc,*rc; bool operator Q;//优先队列void H... 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1059#include #include #include using namespace std;int a[7];int dp[121111];int v,k;void ZeroOnePack(int cost,int weight) { for(int i=v;i>=cost;i--) dp[i] = max(dp[i] , dp[i-cost] + weight); }void CompletePack(int cost,int weight) { for(int i=... 阅读全文
摘要:
很久以前做过很多网络流的题目,今天翻出来但是的小结,放在这里温习一下,同时和大家分享一下。hdu1281题意:小希和Gardon在玩一个游戏:对一个N*M的棋盘,在格子里放尽量多的一些国际象棋里面的“车”,并且使得他们不能互相攻击,这当然很简单,但是Gardon限制了只有某些格子才可以放,小希还是很轻松的解决了这个问题(见下图)注意不能放车的地方不影响车的互相攻击。所以现在Gardon想让小希来解决一个更难的问题,在保证尽量多的“车”的前提下,棋盘里有些格子是可以避开的,也就是说,不在这些格子上放车,也可以保证尽量多的“车”被放下。但是某些格子若不放子,就无法保证放尽量多的“车”,这样的格子被 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2108#include#include#include#include#includeusing namespace std;struct point { double x,y; };bool mult(point sp,point ep,point op){ return (sp.x-op.x)*(ep.y-op.y)>=(ep.x-op.x)*(sp.y-op.y);}bool operator =0;i--){ while(top!=len && mult(pnt[i],res[t 阅读全文
摘要:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4879把b[][]数组上的每个位拆开成两个点i和i',(不超过32位),另外新加两个点0和1,如果确定某点i对应的是0,则i与0点合并,i'点与1点合并;如果确定某点i对应的是1,则i与1合并,i'与0合并;如果确定两点i和j对应的位是相反的数,则i与j'合并,j与i'合并;如果确定两点对应的位是相同的数,则i与j合并,i'与j'合并。#include #include #include #include using n 阅读全文