这个表达是什么意思?
What is the meaning of this expression?
topcoder 上有一篇离散二分搜索文章,我在其中遇到了这个表达式。
while(lo & lt; hi )
if(i + j & lt ; = x )
如下所述
没见过";"这个表达在 while 循环中并在其中使用 &。
另外,一般来说,我想知道 AND &
位运算符的作用(我知道它在二进制级别是如何工作的,但我想知道如何在不将数字转换为二进制的情况下计算最终结果形式)以及下面代码中的 if 语句。
int getMostWork(vector folders, int workers) {
int n = folders.size();
int lo = * max_element(folders.begin(), folders.end());
int hi = accumulate(folders.begin(), folders.end(), 0);
while (lo & lt; hi) {
int x = lo + (hi - lo) / 2;
int required = 1, current_load = 0;
for (int i = 0; i & lt; n; ++i) {
if (current_load + folders[i] & lt; = x) {
// the current worker can handle it
current_load += folders[i];
} else {
// assign next worker
++required;
current_load = folders[i];
}
}
if (required & lt; = workers)
hi = x;
else
lo = x + 1;
}
return lo;
}
这只是错误的 HTML 格式,用于在您找到此代码的任何地方使用“<”小于运算符
<
的 HTML 代码是 <
将 <
的所有序列替换为 <
,您将得到:
while (lo < hi) {
int x = lo + (hi - lo) / 2;
int required = 1, current_load = 0;
for (int i = 0; i < n; ++i) {
if (current_load + folders[i] <= x) {
// the current worker can handle it
current_load += folders[i];
}
else {
// assign next worker
++required;
current_load = folders[i];
}
}
if (required <= workers)
hi = x;
else
lo = x + 1;
}
没有按位与运算符,只有小于条件
topcoder 上有一篇离散二分搜索文章,我在其中遇到了这个表达式。
while(lo & lt; hi )
if(i + j & lt ; = x )
如下所述
没见过";"这个表达在 while 循环中并在其中使用 &。
另外,一般来说,我想知道 AND &
位运算符的作用(我知道它在二进制级别是如何工作的,但我想知道如何在不将数字转换为二进制的情况下计算最终结果形式)以及下面代码中的 if 语句。
int getMostWork(vector folders, int workers) {
int n = folders.size();
int lo = * max_element(folders.begin(), folders.end());
int hi = accumulate(folders.begin(), folders.end(), 0);
while (lo & lt; hi) {
int x = lo + (hi - lo) / 2;
int required = 1, current_load = 0;
for (int i = 0; i & lt; n; ++i) {
if (current_load + folders[i] & lt; = x) {
// the current worker can handle it
current_load += folders[i];
} else {
// assign next worker
++required;
current_load = folders[i];
}
}
if (required & lt; = workers)
hi = x;
else
lo = x + 1;
}
return lo;
}
这只是错误的 HTML 格式,用于在您找到此代码的任何地方使用“<”小于运算符
<
的 HTML 代码是 <
将 <
的所有序列替换为 <
,您将得到:
while (lo < hi) {
int x = lo + (hi - lo) / 2;
int required = 1, current_load = 0;
for (int i = 0; i < n; ++i) {
if (current_load + folders[i] <= x) {
// the current worker can handle it
current_load += folders[i];
}
else {
// assign next worker
++required;
current_load = folders[i];
}
}
if (required <= workers)
hi = x;
else
lo = x + 1;
}
没有按位与运算符,只有小于条件