分析:离线线段树,把所有询问离线读入,然后按H从小到大排序。对于所有结点也按从小到大排序,然后根据查询的H,将比H小的点加入到线段树,最后就是一个区间求和。这题貌似也可以用划分树,树状数组等方法做。
#include
#include
using namespace std;
#define N 100005
struct Tree
{
int left,right,cnt;
} TREE...
分类:
其他好文 时间:
2015-05-31 16:54:33
阅读次数:
103
题意:求A,使得A^N最接近B。
分析:A=B^(1/n),对其上下取整,在各取N次幂,取最接近B的。
#include
#include
using namespace std;
int main()
{
int B,N,p,q;
double tmp;
while(cin>>B>>N && (B||N))
{
tmp=pow(1.0*B,1.0/N); ...
分类:
其他好文 时间:
2015-05-31 15:23:54
阅读次数:
107
题意:n个工作地,m种工人,工作地0是仓库,其他的都需要修缮,每个地点需要多个工种的工人若干,不同工种不能相互取代。每个工作地有一个开工时间,凑齐所有工人后准时开工,修缮也需要一定时间。一个工人可以在一个地方工作完后再到其他地方,两地直接的距离是欧几里得距离,可以算作时间。最少需要多少工人。
分析:只用费用流。每种工人不能相互替换,没有任何关系。因此对每个工种进行建图求解最小费用累加即可得到最终...
分类:
其他好文 时间:
2015-05-31 14:03:52
阅读次数:
105
分析:N和M很小,直接暴力搜索即可。
#include
using namespace std;
#define N 6
#define M 6
int vis[N][M]; //有炮设为2,无炮为0,其他为1
int n,m,q,ans;
#define max(a,b) ((a)>(b)?(a):(b))
bool Valid(int i,int j) //只...
分类:
其他好文 时间:
2015-05-31 12:32:02
阅读次数:
98
Minimal Ratio TreeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3057 Accepted Submission(s): 917
Problem Description
For a tree, wh...
分类:
其他好文 时间:
2015-05-29 14:05:07
阅读次数:
102
http://acm.hdu.edu.cn/showproblem.php?pid=2007
分类:
其他好文 时间:
2015-05-28 17:47:35
阅读次数:
129
小希的迷宫
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 31911 Accepted Submission(s): 9850
Problem Description
上次Gardon的迷宫城堡小希玩了很久(见Pr...
分类:
其他好文 时间:
2015-05-25 22:32:48
阅读次数:
134
分析:借助STL的multiset实现,很方便。
#include
#include
using namespace std;
class Node
{
public:
Node(int _h=0,int _pos=0):h(_h),pos(_pos) //注意_h一定要在_pos的前面,方便lower_bound的调用
{
}
int pos,h;
};
...
分类:
其他好文 时间:
2015-05-25 16:39:22
阅读次数:
105
产生冠军
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 10540 Accepted Submission(s): 4929
Problem Description
有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之...
分类:
其他好文 时间:
2015-05-25 10:03:06
阅读次数:
134
题意:给定一张图,按照输入的边逐个删除,求每次删除一条边之后图的联通块数量。
分析:反向并查集求联通分量,假设起始各个点都不连通,接着从最后一条边开始添加,如果新加入的边联通了两个联通块,则联通分量减1(保存在数组中),最后正序输出结果即可。
#include
#include
using namespace std;
int p[10005];
...
分类:
其他好文 时间:
2015-05-21 00:05:44
阅读次数:
427