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的更多相关文章

  1. TopCoder FlowerGarden【拓扑排序】

    https://community.topcoder.com/stat?c=problem_statement&pm=1918&rd=5006拓扑排序,每次选择最大的就好了 #incl ...

  2. TopCoder kawigiEdit插件配置

    kawigiEdit插件可以提高 TopCoder编译,提交效率,可以管理保存每次SRM的代码. kawigiEdit下载地址:http://code.google.com/p/kawigiedit/ ...

  3. 记第一次TopCoder, 练习SRM 583 div2 250

    今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要 ...

  4. TopCoder比赛总结表

    TopCoder                        250                              500                                 ...

  5. Topcoder几例C++字符串应用

    本文写于9月初,是利用Topcoder准备应聘时的机试环节临时补习的C++的一部分内容.签约之后,没有再进行练习,此文暂告一段落. 换句话说,就是本文太监了,一直做草稿看着别扭,删掉又觉得可惜,索性发 ...

  6. TopCoder

    在TopCoder下载好luncher,网址:https://www.topcoder.com/community/competitive%20programming/ 选择launch web ar ...

  7. TopCoder SRM 596 DIV 1 250

    body { font-family: Monospaced; font-size: 12pt } pre { font-family: Monospaced; font-size: 12pt } P ...

  8. 求拓扑排序的数量,例题 topcoder srm 654 div2 500

    周赛时遇到的一道比较有意思的题目: Problem Statement      There are N rooms in Maki's new house. The rooms are number ...

  9. TopCoder SRM 590

     第一次做TC,不太习惯,各种调试,只做了一题...... Problem Statement     Fox Ciel is going to play Gomoku with her friend ...

随机推荐

  1. css3学习笔记之2D转换

    translate() 方法 translate()方法,根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

  2. Z-Stack内部API 小结

    Z-Stack是TI推出的全功能ZigBee协议栈,通过了ZigBee联盟的兼容性平台测试,包含如下几个组件. 1. HAL,硬件抽象层 2. OSAL,操作系统抽象层 3. ZigBee Stack ...

  3. C/C++编译过程理解【转】

    转载自:http://www.cppblog.com/woaidongmao/archive/2008/11/07/66254.aspx 今天,通过自己的努力终于对C/C++的编译过程有了个粗略的了解 ...

  4. xamarin.ios 豆瓣电台视频教程

    视频中提到的网址: http://www.sufeinet.com/thread-655-1-1.html https://github.com/akfish/fm-terminal/blob/dev ...

  5. jQuery自己编写插件()

    引言: 在项目中不同页面经常要用到已经写好的交互,比如弹窗,比如下拉菜单,比如选项卡,比如删除... 此时如果每次都把代码copy一份无疑是一件比较麻烦并且无趣的事情,而且个人认为有些low了,我们可 ...

  6. C# Winform程序打包

    1.新建一个安装项目,起名“Setup3” 2.点击应用程序文件夹 3.在右侧右键点击添加文件 注意:是Debug文件夹下所有程序 接着在添加你的应用程序项目的时候,多添加一个msiexec.exe进 ...

  7. syntaxhighlighter语法高亮

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  8. ES6学习笔记(十四)

    1.Promise的含义 Promise是异步编程的一种解决方案,比传统的解决方案--回调函数和事件--更合理和更强大.它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Prom ...

  9. Discuz x2.5 单页制作的教程

    首先,单页包括该单页的php文件和该单页的模板(.htm)文件,比如:host.php.host.htm 单页的php文件内容如下: <?php require './source/class/ ...

  10. 【css】web标准

    网页主要由三部分组成:结构(Structure).表现(Presentation)和行为(Behavior) 结构重点理解: XHTML 1.应用形式 ccs+div  2000 2.基于xml 和x ...