二分查找:
1.边界错误造成的问题
二分查找算法的边界,一般来说分两种情况,一种是左闭右开区间,类似于[left, right),一种是左闭右闭区间,类似于[left, right].需要注意的是, 循环体外的初始化条件,与循环体内的迭代步骤, 都必须遵守一致的区间规则,也就是说,如果循环体初始化时,是以左闭右开区间为边界的,那么循环体内部的迭代也应该如此.如果两者不一致,会造成程序的错误.
2.溢出
对于middle = (left + right) / 2,假如,left与right之和超过了所在类...
分类:
其他好文 时间:
2015-07-17 09:55:27
阅读次数:
103
= =之前跟队友兴致勃勃说要一起刷usaco,然后就卡在这题了,因为真没看懂。今天莫名想起,感觉是左闭右开区间,然后一试就过了= = 然后又可以愉快开刷了//然而队友已经不是原来的队友了//人和人的价值观差别太大//我觉得玩的开心就好+信守承诺最重要//他觉得要当一队拿金然后进final最重要//另...
分类:
其他好文 时间:
2015-07-08 22:29:46
阅读次数:
123
需求:网店中折扣价格-要求大于0小于10,且允许保留一位小数点需求分析:1,)取值范围为(0,10),两端都是开区间;2,)“可保留一位小数”,可以不包含小数,但如果包含小树就一定要仅包含一位小数。开发(javascript下):第一步:0-10包含一位小数:/^\d(\.\d)?$/第二步:排除特...
分类:
其他好文 时间:
2015-05-22 20:54:32
阅读次数:
801
今天碰到了一道面试题:原题大致是,每首歌曲都是一个评分,现在有2000首歌曲,要求实现一个随机播放器,每首歌曲播放的概率应该正比于它的评分,例如评分9.1的歌曲,和评分7.9的歌曲,播放的次数应该是91:79。面试官给的答案是大致如此:先把评分从小到大排序,之后把根据每首歌的评分,生成一个半闭开区间...
分类:
编程语言 时间:
2015-05-14 23:26:34
阅读次数:
133
http://poj.org/problem?id=2955
题目大意是给你一个字符串,字符串由中括号和小括号组成,问该串里的最长的一个符合数学括号匹配规范的子序列是多长。
一开始打算用传说中的左闭右开区间来写,后来发现果然不适合我,还是换回左闭右闭区间写了。
dp的思路比较简单,dp[i][j] 表示从 i 到 j 的串种符合括号匹配的最长子序列。对于任意一个区间均可以存在一个...
分类:
其他好文 时间:
2015-04-30 08:53:25
阅读次数:
128
http://poj.org/problem?id=2955题目大意是给你一个字符串,字符串由中括号和小括号组成,问该串里的最长的一个符合数学括号匹配规范的子序列是多长。一开始打算用传说中的左闭右开区间来写,后来发现果然不适合我,还是换回左闭右闭区间写了。dp的思路比较简单,dp[i][j] 表示从...
分类:
其他好文 时间:
2015-04-30 00:47:36
阅读次数:
135
注意容易写错的:update和query的闭开区间及query的递归。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 const int maxn = 1000000 + 10...
分类:
其他好文 时间:
2015-04-04 22:23:36
阅读次数:
280
题意:
给n给开区间(ai,bi)及相应权值wi,现在要选一些区间,要求任一点不能被超过k个区间覆盖,目标是最大化总的权重。
分析:
转化为求最大费用流,改改最小费用流的模板就好。
代码:
//poj 3680
//sep9
#include
#include
#include
#include
using namespace std;
const int maxN=2048;...
分类:
其他好文 时间:
2015-04-01 22:00:10
阅读次数:
158
1. 什么是内联函数?
内联函数,从形式上看就是普通函数首部前添加了一个inline,形式如下
inline(参数列表)
{
//语句
};
2. 为什么引进内联函数?
内联函数与普通函数的区别在于,内联函数的调用不会转移程序控制权,而是在调用点处进行”内联”展开函数体,类似于宏展开(区别在于宏展开是由预处理器负责,而内联展开由编译器负责)...
分类:
其他好文 时间:
2015-03-15 21:24:30
阅读次数:
130
游戏有大多数配置文件,比如玩家等级,游戏商店信息等等.通常情况下把这些放入excel中来读取第一种解决方案:xlsx –> csv –> 改变成UTF-8 或者Unicode编码 –> 修改后缀名成.txt -> 通过Resources.Load读取转换成TextAsset –> 通过,方式开区分开...
分类:
编程语言 时间:
2015-03-14 13:48:33
阅读次数:
710