本来不想写的以前写过一次没过现在每次打开HDU都会显示没完成看着不爽直接暴力肯定超时其实那数组遍历一次就可以了注意下标变化的条件 1 #include 2 3 using namespace std; 4 5 int main() 6 { 7 int T; 8 cin>>T; ...
分类:
其他好文 时间:
2014-07-23 14:46:56
阅读次数:
335
题目地址:HDU4864
这题又是一上来认为是最小费用流,但是边太多,果然,敲完交上去后不断TLE。。小优化了两次也没过。。。sad。。
后来看了题解才发现是贪心。。。贪心也不好想。大体思路是很好想的,就是先都按时间从大到小排序,再遍历任务,从机器里找能匹配的,并在能匹配的里边找等级尽量小的与之匹配。对我来说的突破点在于找能匹配的机器时不是每次都要重新找一遍,而是可以直接利用以前找到的。这就避...
分类:
其他好文 时间:
2014-07-23 13:24:36
阅读次数:
205
题意:
n*m的格子 每个格子有个数字 你可以任选起点 每一步向下或者向右 每一步的花费是曼哈顿距离-1 如果一步的两端的格子数字一样那么你会得到这个数字的花费 问 最多选k次起点 在遍历完所有格子前提下最多剩下多少花费
思路:
题目可以表示为用最多k条路径去覆盖n*m 思路就转向了二分图
X集合表示每个点的出 Y集合表示入 如果f格子能走到g格子 那么建边...
分类:
其他好文 时间:
2014-07-23 13:07:06
阅读次数:
277
转自网络集合数据结构一般都有这么一个方法:contains。其作用就是判断给定的元素是否存在集合中,这是一个常用的方法。其最简单的内部实现即遍历集合内的元素,一个个的判断是否与给定元素相等。为了更高效点我们甚至可以采用“更好的(好是相对的)”算法实现。比如如果该集合是已经排序的,那么我们用二分查找来...
分类:
其他好文 时间:
2014-07-23 12:54:06
阅读次数:
242
在上一篇文章中,说了下foreach的用法,但是还是比较复杂的,要实现接口才能进行遍历,有没有简单些的方法呢?答案是肯定的。且看下面。yield关键字的用法:1.为当前类型添加一个任意方法,但是要求该方法的返回值类型必须是IEnumerable: 1 class Person 2 {...
分类:
其他好文 时间:
2014-07-23 11:39:06
阅读次数:
232
话不多说,全在代码和注释说明里了。 DTD文件:SwordTypeDefinition.dtd <?xml?version="1.0"?encoding="UTF-8"?>
<!ELEMENT?SwordLibrary?(Sword*)>
<!ELEMENT?Sword?(SwordName,Price,Attack)>
<!ELEMENT...
分类:
编程语言 时间:
2014-07-23 00:32:07
阅读次数:
330
总体思路:遍历所有的字符编码,能正确读取输出转换的编码格式就可以理解为该文本的编码格式。...
分类:
其他好文 时间:
2014-07-22 23:54:57
阅读次数:
820
递归实现当然太简单,也用不着为了ac走这样的捷径吧。。非递归实现还挺有意思的。树的非递归遍历一定要借助栈,相当于把原来编译器做的事情显式的写出来。对于中序遍历,先要訪问最左下的节点,一定是进入循环后,不断的往左下走,走到不能走为止,这时候,能够从栈中弹出訪问的节点,相当于“左根右”过程的“根”,然后...
分类:
其他好文 时间:
2014-07-22 23:39:17
阅读次数:
296
遍历线段树 线段树的插入和查询 1 //城市地平线(线段树) 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 typedef __int64 LL; 9 struct building{....
分类:
其他好文 时间:
2014-07-22 23:08:12
阅读次数:
175
建树时就是碰到小写,就建个小树,左子树右子数都是空,压入栈;
碰到大写,也要建个小树,并把栈顶两个元素取出来,作为做子树和右子树。。在把新树压入栈
建完后栈顶就是这个树的根,采用广搜遍历就行。。...
分类:
其他好文 时间:
2014-07-22 18:04:33
阅读次数:
187