[topcoder]FlowerGarden
1.此题很勉强算DP。找了半天网上思路,是个三层的循环,n^3。
2.基本思路就是先找到在第一个位置的花。这样就双层遍历,找到所有和其他不冲突的花中最高的一个,然后放到结果的首位。然后去掉此花,继续使用此方法对余下花朵。
3.要注意的是首先不能直接排序,比如a和b,b和c有冲突,但a和c不一定有冲突。
4.判断两段是否重叠的最简单式子是!(a.start > b.end || b.start > a.end)
思路来自:http://apps.topcoder.com/forums/?module=Thread&threadID=655393&start=0&mc=6#1766488 里面还有一个图形的方法,没仔细看。
public class FlowerGarden {
public int[] getOrdering(int[] height, int[] bloom, int[] wilt) {
int len = height.length;
if (len == 0) return height; // assert length != 0
int order[] = new int[len];
boolean used[] = new boolean[len]; for (int i = 0; i < len; i++) {
int mxH = 0;
int pos = -1; for (int j = 0; j < len; j++) {
if (used[j]) continue;
boolean found = true;
for (int k = 0; k < len; k++) {
if (used[k]) continue;
boolean blocking = !(bloom[j] > wilt[k] || bloom [k] > wilt[j]);
if (height[j] > height[k] && blocking) {
found = false;
break;
}
}
if (found) {
if (height[j] > mxH) {
mxH = height[j];
pos = j;
}
}
}
order[i] = height[pos];
used[pos] = true;
}
return order;
}
}
[topcoder]FlowerGarden的更多相关文章
- TopCoder FlowerGarden【拓扑排序】
https://community.topcoder.com/stat?c=problem_statement&pm=1918&rd=5006拓扑排序,每次选择最大的就好了 #incl ...
- TopCoder kawigiEdit插件配置
kawigiEdit插件可以提高 TopCoder编译,提交效率,可以管理保存每次SRM的代码. kawigiEdit下载地址:http://code.google.com/p/kawigiedit/ ...
- 记第一次TopCoder, 练习SRM 583 div2 250
今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要 ...
- TopCoder比赛总结表
TopCoder 250 500 ...
- Topcoder几例C++字符串应用
本文写于9月初,是利用Topcoder准备应聘时的机试环节临时补习的C++的一部分内容.签约之后,没有再进行练习,此文暂告一段落. 换句话说,就是本文太监了,一直做草稿看着别扭,删掉又觉得可惜,索性发 ...
- TopCoder
在TopCoder下载好luncher,网址:https://www.topcoder.com/community/competitive%20programming/ 选择launch web ar ...
- TopCoder SRM 596 DIV 1 250
body { font-family: Monospaced; font-size: 12pt } pre { font-family: Monospaced; font-size: 12pt } P ...
- 求拓扑排序的数量,例题 topcoder srm 654 div2 500
周赛时遇到的一道比较有意思的题目: Problem Statement There are N rooms in Maki's new house. The rooms are number ...
- TopCoder SRM 590
第一次做TC,不太习惯,各种调试,只做了一题...... Problem Statement Fox Ciel is going to play Gomoku with her friend ...
随机推荐
- easyui combobox 模糊检索数据并填充
$("#id"),combobox({ url:'', ...... filter:function(q,row){ var op = $(this).combobox(&qu ...
- c#跨窗体调用操作
我知道的常用的有三种,以前记录的笔记: 1.通过构造函数实现 在form1的load事件中new form2时 在构造函数里添加一个参数 此参数就是form1类型的参数,同时记得在form2里重写构 ...
- bzoj1018:[SHOI2008]堵塞的交通traffic
思路:线段树好题,用线段树维护连通性. 区间[l,r]表示左端点为l,右端点为r,宽度为2的矩形,那么线段树区间维护的就是该区间内的四个角的连通情况,注意是该区间内的连通情况,也就是说只能通过该区间内 ...
- IIS6,IIS7 最简单的重写URL
虽然现在很少用IIS6,今天突然要把项目搬到老的服务器上(IIS6),对项目还要重新部署一下. 主要把时间花在了对url的重写上.其实很简单,如下: IIS6 网站 → 属性 → 主目录 → 配置 → ...
- 广度优先算法BFS
package myalgorithm; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; / ...
- nginx 重启命令
#重启nginx sudo /etc/init.d/nginx restart sudo /etc/init.d/nginx Usage: /etc/init.d/nginx {start|stop| ...
- Canvas使用笔记
1.Canvas画布有外部尺寸和内部尺寸,外部尺寸是指画布在html页面里的大小,内部尺寸是指画布内部像素的值.一般默认是在下面这句 <canvas id="myCanvas" ...
- CentOS安装libpcap
1.安装GCC: yum -y install gcc-c++ 2.安装flex: yum -y install flex 没有flex,直接安装libpcap会提示"Your o ...
- DB2 SQL 递归实现多行合并
最终效果 原始数据: 转换脚本: WITH post_a AS ( SELECT DISTINCT T.EMP_NO,S.CODE_ FROM inscndb.DTFMA000_EMP_POST T ...
- Huawei HG556a A版 刷 openwrt
一直想玩玩openwrt,调研了一下 HG556a尽管散热很烂,但性价比超高,于是淘宝入手一台A版,A版和C版区别为wifi芯片: 到货后在网上找了几个教程便开始动手刷openwrt,但刷机的过程中还 ...