
hdu
ScorpioN___
这个作者很懒,什么都没留下…
展开
-
hdu 2795 billboard(线段树)
把公告牌的每一行看作线段树的叶节点,因为n的范围是小于等于200000,所以加入每个成员都占用一行,那也做多用200000行,所以构造一个线段树,叶子结点保存的是目前所能用的宽度,然后其余节点保存的是左右节点的最大值,则祖先节点保存的是所有叶节点中值最大的那个。 然后对于每个数据,先跟祖先节点比,如果比他大,则输出-1,表示这个成员的宽度在每一行都容纳不了。否则,则优先从左子树查找,因为每个广告都原创 2016-10-23 10:28:15 · 312 阅读 · 0 评论 -
HDU 3342 Legal or Not(拓扑排序)
#include using namespace std; int n,m,map1[105][105],visit[105],pre[105]; bool dfs(int u) { visit[u]=-1; for(int i=0;i<n;i++) { if(map1[u][i]) { if(vi原创 2016-11-14 22:38:30 · 218 阅读 · 0 评论 -
HDU 1285 确定比赛名次(拓扑排序)
#include using namespace std; int num[505],map1[505][505],topo[505],n,m; void toposort() { for(int i=1;i<=n;i++) { int k=1; while(num[k]!=0) k++; topo[i]=k;原创 2016-11-14 22:37:12 · 288 阅读 · 0 评论 -
HDU1560:DNA sequence(IDA星)
#includeusing namespace std;int n,deep;char c[10]="ACGT";struct node{ char s[10]; int len;};node a[10];int pos[10];int get_h(){ int ans=0; for(int i=1;i<=n;i++) {原创 2016-11-17 21:51:07 · 368 阅读 · 0 评论 -
HDU 2647 Reward(拓扑排序)
#includeusing namespace std;int n,m,visit[10005],num[10005],topo[10005];vectormap1[10005];int dfs(int u){ visit[u]=-1; int max1=0; for(int i=0;i<map1[u].size();i++) { int原创 2016-11-15 13:32:36 · 241 阅读 · 0 评论