TopCoder FlowerGarden【拓扑排序】
https://community.topcoder.com/stat?c=problem_statement&pm=1918&rd=5006
拓扑排序,每次选择最大的就好了
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <algorithm>
#include <math.h> #define rep(i,n) for(i=0;i<n;i++)
#define cle(a) memset(a,0,sizeof(a))
using namespace std; struct edge{
int to;
int next;
}E[2050]; class FlowerGarden
{
public:
int n;
int ip;
int in[1005];//入度
int head[1005];//邻接顶点
void init()
{
ip=0;
cle(in);
memset(head,-1,sizeof(head));
}
void add(int x,int y){
in[y]++;
E[ip].to=y;
E[ip].next=head[x];
head[x]=ip++;
}
vector <int> getOrdering(vector <int> height, vector <int> bloom, vector <int> wilt)
{
n=height.size();
int i,j,k;
vector<int> ans;
ans.clear();
init();
rep(i,n){
rep(j,n){//有序枚举
if(i==j)continue;
if(height[i]<height[j]){
if(!((wilt[j]<bloom[i])||(bloom[j]>wilt[i])))
add(height[i],height[j]);
}
}
}
int used[1500];cle(used);
for(i=1;i<=n;i++)
{
int maxnum=0;
for(j=0;j<n;j++)
{
if(used[height[j]])continue;
if(in[height[j]]==0)
{
maxnum=max(maxnum,height[j]);
}
//break;
}
used[maxnum]=1;
ans.push_back(maxnum);
for(k=head[maxnum];k!=-1;k=E[k].next)in[E[k].to]--;
}
return ans;
}
};
TopCoder FlowerGarden【拓扑排序】的更多相关文章
- 求拓扑排序的数量,例题 topcoder srm 654 div2 500
周赛时遇到的一道比较有意思的题目: Problem Statement There are N rooms in Maki's new house. The rooms are number ...
- 算法与数据结构(七) AOV网的拓扑排序
今天博客的内容依然与图有关,今天博客的主题是关于拓扑排序的.拓扑排序是基于AOV网的,关于AOV网的概念,我想引用下方这句话来介绍: AOV网:在现代化管理中,人们常用有向图来描述和分析一项工程的计划 ...
- 有向无环图的应用—AOV网 和 拓扑排序
有向无环图:无环的有向图,简称 DAG (Directed Acycline Graph) 图. 一个有向图的生成树是一个有向树,一个非连通有向图的若干强连通分量生成若干有向树,这些有向数形成生成森林 ...
- 【BZOJ-2938】病毒 Trie图 + 拓扑排序
2938: [Poi2000]病毒 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 609 Solved: 318[Submit][Status][Di ...
- BZOJ1565 [NOI2009]植物大战僵尸(拓扑排序 + 最大权闭合子图)
题目 Source http://www.lydsy.com/JudgeOnline/problem.php?id=1565 Description Input Output 仅包含一个整数,表示可以 ...
- 图——拓扑排序(uva10305)
John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task i ...
- Java排序算法——拓扑排序
package graph; import java.util.LinkedList; import java.util.Queue; import thinkinjava.net.mindview. ...
- poj 3687(拓扑排序)
http://poj.org/problem?id=3687 题意:有一些球他们都有各自的重量,而且每个球的重量都不相同,现在,要给这些球贴标签.如果这些球没有限定条件说是哪个比哪个轻的话,那么默认的 ...
- 拓扑排序 - 并查集 - Rank of Tetris
Description 自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球. 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球 ...
随机推荐
- npm install报错node-sass
1.node-sass安装错误 Building: C:\Program Files\nodejs\node.exe D:\gitlab\coreui\node_modules\node-gyp\bi ...
- Bootstrap -- 文件上传插件File Input的使用
BootstrapFileInput下载参考:http://www.jq22.com/jquery-info5231 网友经验参见:http://www.cnblogs.com/wuhuacong/p ...
- Java中BIO、NIO、AIO的区别和应用场景
学习IO,首先要明白四个东西. 1.同步 java自己去处理io. 2.异步 java将io交给操作系统去处理,告诉缓存区大小,处理完成回调. 3.阻塞 ...
- # 20155337 2016-2017-2 《Java程序设计》第八周学习总结
20155337 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 第14章 NIO与NIO2 NIO简介 NIO使用频道来衔接数据结点,在处理数据时,NIO可 ...
- 关于JS事件冒泡与JS事件代理(事件委托)
连接:https://blog.csdn.net/supercoooooder/article/details/52190100 核心代码: <ul id="parentUl" ...
- JavaScript之JS单线程|事件循环|事件队列|执行栈
本博文基于知乎"JavaScript作用域问题?"一问,而引起了对JavaScript事件循环和单线程等概念与实践上的研究.深入理解. 一.概念 0.关键词:JavaScript单 ...
- mysql架构解读~mysql的多源复制
一 场景需求 多源复制版本 5.7,目标主机5.6.21 4个DB机器的某些数据库需要数据汇总进行连表查询 二 进行搭建 1 导出相应的目的库 mysqldump -uuser -ppass ...
- python - class类 (五) 继承补充-子类继承父类属性/函数方法
子类继承父类属性/函数方法: #方式一:(原生方式,不建议使用) class Dongwu(object): def __init__(self,name,sex,old): self.name = ...
- python - 远程主机执行命令练习(socket UDP + subprocess.Popen()) 练习1
环境是windows 环境. server端: import socket import subprocess ss = socket.socket(socket.AF_INET,socket.SOC ...
- SpringBoot集成Spring Security(授权与认证)
⒈添加starter依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifact ...