由买买提看人间百态

topics

全部话题 - 话题: pos2
1 (共1页)
y****n
发帖数: 15
1
在32核的服务器上,运行一小段图像卷积的操作。输入是图像矩阵(按列),和一个y
方向上的卷积kernel。举例来说,如果kernel是[-0.5 0 0 0 1 0 0 0 0.5],那么下面
程序中的变量分别为
kernel: [-0.5 1 0.5]
szKernel: 3
step: 4
这段程序中使用了OpenMP对for循环执行并行操作。当使用>4个核时,程序运行速度反
而下降。这段程序要运行很多次,是整个程序的性能瓶颈,请大牛们指点一下该如何改
进。
double s = kernel[(szKernel-1)/2];
//#pragma omp parallel for
for (int k = 0; k < m*n; k++)
v_out[k] = v_in[k] * s;
for (int k = 0; k < (szKernel-1)/2; k++)
{
double s = kernel[k];
int offset = ((szKernel-1)/2 - k)*step;
... 阅读全帖
y****n
发帖数: 15
2
在32核的服务器上,运行一小段图像卷积的操作。输入是图像矩阵(按列),和一个y
方向上的卷积kernel。举例来说,如果kernel是[-0.5 0 0 0 1 0 0 0 0.5],那么下面
程序中的变量分别为
kernel: [-0.5 1 0.5]
szKernel: 3
step: 4
这段程序中使用了OpenMP对for循环执行并行操作。当使用>4个核时,程序运行速度反
而下降。这段程序要运行很多次,是整个程序的性能瓶颈,请大牛们指点一下该如何改
进。
double s = kernel[(szKernel-1)/2];
//#pragma omp parallel for
for (int k = 0; k < m*n; k++)
v_out[k] = v_in[k] * s;
for (int k = 0; k < (szKernel-1)/2; k++)
{
double s = kernel[k];
int offset = ((szKernel-1)/2 - k)*step;
... 阅读全帖
s******n
发帖数: 3946
3
来自主题: JobHunting版 - 说好得FG面经,回馈板上GGJJ
递归非DP做法
bool isScramble(char* str1, char* str2, int length) {
if (length==1) return *str1 == *str2;
for (int i=1; i if (isScramble(str1, str2+(length-i), i)
&& isScramble(str1+i, str2, length-i))
return true;
if (isScramble(str1, str2, i)
&& isScramble(str1+i, str2+i, length-i))
return true;
}
return false;
}
递归DP做法
class Solution {
char* str1;
char* str2;
int m;
int m2;
int m3;
int* DP;
#define dp(i,j,k) DP[m2 * (i) + m * (j) + (k) ]
public:
Solution(cha... 阅读全帖
U***A
发帖数: 849
4
暴力法行吗?
bool matchPatternHelper(string s, int pos1, string q, int pos2, map string> &mp){
if(pos1 == s.length() && pos2 == q.length()){
return true;
}
else if((pos1 < s.length() && pos2 == q.length()) || (pos1 == s.
length() && pos2 < q.length())){
return false;
}

for(int i=pos1+1; i string s1 = s.substr(pos1, i-pos1+1);
if(mp.find(q[pos2]) == mp.end()){
mp.ins... 阅读全帖
U***A
发帖数: 849
5
暴力法行吗?
bool matchPatternHelper(string s, int pos1, string q, int pos2, map string> &mp){
if(pos1 == s.length() && pos2 == q.length()){
return true;
}
else if((pos1 < s.length() && pos2 == q.length()) || (pos1 == s.
length() && pos2 < q.length())){
return false;
}

for(int i=pos1+1; i string s1 = s.substr(pos1, i-pos1+1);
if(mp.find(q[pos2]) == mp.end()){
mp.ins... 阅读全帖
k*****y
发帖数: 744
6
来自主题: JobHunting版 - 一道google 经典题
考虑六种从小到大排列的可能情况,每种找出最小的distance,再一起比较。
import random
# generate random data
data = [[],[],[]]
for i in range(0,3):
N = random.randint(5, 10)
for j in range(0, N):
data[i].append(random.randrange(0, 1000))
data[i].sort()
test_cases = [(0,1,2), (0,2,1),
(1,0,2), (1,2,0),
(2,0,1), (2,1,0)]
pos = [[]]*len(test_cases)
dist = [1000000]*len(test_cases)
def LowerBound(x, queueID, start):
for i in range( start, len(data[queueID]) ):
if data[queu... 阅读全帖
k*****y
发帖数: 744
7
来自主题: JobHunting版 - 一道google 经典题
考虑六种从小到大排列的可能情况,每种找出最小的distance,再一起比较。
import random
# generate random data
data = [[],[],[]]
for i in range(0,3):
N = random.randint(5, 10)
for j in range(0, N):
data[i].append(random.randrange(0, 1000))
data[i].sort()
#=============================
test_cases = [(0,1,2), (0,2,1),
(1,0,2), (1,2,0),
(2,0,1), (2,1,0)]
pos = [[] for i in range(len(test_cases))]
dist = [1000000]*len(test_cases)
def LowerBound(x, queueID, start):
for i in range( st... 阅读全帖
g*******y
发帖数: 1930
8
来自主题: JobHunting版 - 微软一个面试题
int k = 1; while(k for(int i=2; i<=k;i=i<<1){ //k是刚刚大于等于N的某个2的整次方数
for(int j=0;j int pos1 = j, pos2 = j+i/2;
if(pos2>=N) continue;
//找当前这段,左半边第一个正数
while(arr[pos1]<0 && pos1 //找当前这段,右半边第一个正数
while(pos2 if(pos1 == j+i/2 || pos2==j+i/2) continue;
//开始对换左边的所有正数和右边的所有负数
int p1 = pos1, p2 = pos2-1;
while(p1 p1 = pos1; p2 =
c*********e
发帖数: 16335
9
void myOperation(...,int OPER) {

v_out[pos1] = ( OPER == -1 ? (v_in[pos1] - v_in[pos2] ): (v_in[pos1] + v_
in[pos2] ) );

如下面的一段代码,倒数第2行 OPER 可以是 + 或 -
如果不希望把把 + 和 - 分别写成不同的函数,有什么办法么?
这段代码对性能的要求比较高,所以不想用lambda表达式。
void add(...) {...}
void subtract(...) {...}
...
for (int x = 0; x < n - offset; x++)
{
long pos1 = x * m;
long pos2 = (x + offset) * m;
for (int y = 0; y < m; y++, pos1++, pos2++)
v_out[pos1] = v_in[pos1] OPER v_in[pos2];
}
...
l*********s
发帖数: 5409
10
来自主题: Statistics版 - Weird SAS macro bugs, 包子重谢!
I am having some very weird bug while trying to write a macro that can
expend the short hand notion like var1--var11 used in SAS.
The "shorthand" macro works fine on its own, but fails to work when called
by the "formula" macro. The error message seems to say that "the set
statement in the data step is not valid or not in proper order", what's
going on?
Many thanks!
////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////... 阅读全帖
r****c
发帖数: 1494
11
你贴图敢贴个高清的么????
_http://bbs.zhibo8.com/thread-685892-1-1.html
这里有稍高清晰度的。你看阴影!阴影比脚还粗!
这个图表现物体从position1到pos2的过渡(pos2是虚化的)
你看pepe的腿只有在position2 才能碰到假设在pos1的a2的小腿,而同时
a2的小腿已经在pos1和pos2之间(pos2有半透明的小腿)
你敢看看高清的视频么???
是有过渡的一桢里两者在二维的视频图像让两者重叠的,有些少空间想象
能力的人也会告诉你两者没有碰在一起。
http://www.tudou.com/player/outside/player_outside.swf?iid=80962997&snap_pic=http%3A%2F%2Fi4.tdimg.com%2F080%2F962%2F997%2Fw.jpg&default_skin=http%3A%2F%2Fjs.tudouui.com%2Fbin%2Fplayer2%2Foutside%2FSkin_outside_70.swf&autostart=false&auto... 阅读全帖
k**********g
发帖数: 989
12
template
struct add_op {
T operator () (const T& src0, const T& src1) const
{ return src0 + src1; }
};
template
struct sub_op {
T operator () (const T& src0, const T& src1) const
{ return src0 - src1; }
};
template
class vec_apply {
void operator () (T* v_out, T* vec_in, long len, ...)
{
oper op; // creates a oper object (functor) on stack - does not take
space, because it will be optimized away when compiler find... 阅读全帖
y****n
发帖数: 15
13
如下面的一段代码,倒数第2行 OPER 可以是 + 或 -
如果不希望把把 + 和 - 分别写成不同的函数,有什么办法么?
这段代码对性能的要求比较高,所以不想用lambda表达式。
void add(...) {...}
void subtract(...) {...}
...
for (int x = 0; x < n - offset; x++)
{
long pos1 = x * m;
long pos2 = (x + offset) * m;
for (int y = 0; y < m; y++, pos1++, pos2++)
v_out[pos1] = v_in[pos1] OPER v_in[pos2];
}
...
k*k
发帖数: 49
14
来自主题: JobHunting版 - 微软一个面试题
@geniusxsy:
这个算法是 nlogn 吗?
1) while(k log N
2) for(int i=2; i<=k;i=i<<1) ==> log K
3) for(int j=0;j N/i == N/log K
4) the content of the inner most loop seems to me has N complexity worst
case.
so seems to me 2)*3)*4) already N^2
很可能是我哪里没搞明白。。。
先谢谢了。
int k = 1;
while(k for(int i=2; i<=k;i=i<<1){ //k是刚刚大于等于N的某个2的整次方数
for(int j=0;j int pos1 = j, pos2 = j+i/2;
if(pos2>=N) continue;
//找当前这段,左半边第一个正数
while(arr[pos1]<0 && pos1 //找当前这段,右半边第
v****e
发帖数: 276
15
近几日,Google公司官方博客透露的如果其无法获得“在中国境内提供一个不经审查的
搜索引擎”,就拟退出中国市场的新闻成为世界各国媒体关注的焦点,其所带来的震荡
和影响恐怕不是现在就可以完全说得清的。不过,据报,Google的这一决策,一个关键
人物起到了至为重要的作用,他就是 Google两位创始人之一:谢尔盖布林(Sergey Br
in)。http://goo.gl/POs2
据美国《华尔街日报》披露,Google公司在决策之前酝酿了数周,两名创始人佩奇(La
rryPage)和布林均参与了层讨论。讨论中,首席执行官施密特(EricSchmidt)认
为,应继续在华经营,尽力改变政权;但布林反驳说,公司已经尽了力,应该离开。讨
论的结果显而易见是布林的意见最终占了上风,使Google终于回归了其“不作恶”的道
德准则。报导中称,长期以来对于在华经营具有矛盾心理的布林,其童年是在同为共产
国家的前苏联度过的,他因与中共政府合作审查内容而一直深陷道德困境。http://goo
.gl/POs2
那么,在前苏联的短暂的生活经历,为何让布林对共产国家产生了如此负面的印象呢?
http:/
v****e
发帖数: 276
16
来自主题: WaterWorld版 - 赴加小留学生沦为性剥削的受害者
大部分被逼从事卖淫行业,被安排到非法按摩院或脱衣舞场工作,部分儿童更可能沦为
性剥削的受害者。
大部分被逼从事卖淫行业,被安排到非法按摩院或脱衣舞场工作,部分儿童更可能沦为
性剥削的受害者。
大部分被逼从事卖淫行业,被安排到非法按摩院或脱衣舞场工作,部分儿童更可能沦为
性剥削的受害者。
大部分被逼从事卖淫行业,被安排到非法按摩院或脱衣舞场工作,部分儿童更可能沦为
性剥削的受害者。
据加拿大《星岛日报》报道,去年中加拿大多个城市相继有持学生签证从中国到多伦多
参加短期游学的小留学生突失踪,约克区警察总长乐巴治坦言,新移民与留学生易成人
口贩子目标,罪犯以各种甜言蜜语哄骗他们付钱以协助其非法拘留,但实际上这些非法
居留者的生活苦不堪言。http://goo.gl/POs2
人口贩子将这些偷渡者哄骗到加拿大后,大部分被逼从事卖淫行业,被安排到非法按摩
院或脱衣舞场工作,部分儿童更可能沦为性剥削的受害者。据悉,今年全球灭罪热线主
题为“举报杜绝贩卖人口罪案”,警察总长乐巴治指出,贩运人蛇与其它案件最大区别
,是警方极倚重知情人甚至是受害者挺身举报破案。http://goo.gl/POs2
甜言
v****e
发帖数: 276
17
“幸福来得太快。”在谷歌尚未明确是否就此退出中国市场之际,百度员工已经赤祼祼
地趁火打劫:如今百度负责广告销售的员工一早来到公司后的第一件事,就是列出谷歌
的广告客户名单,开始逐个联系,百度人得意的说,“我们内部调侃这是捡钱计划。”
差不多同时,百度首席产品设计师孙云丰在博客上公开撰文辱骂:(关于谷歌退出中国
)“整个事情给我的唯一感受,就是恶心”、“证明google是个市侩分子。”http://goo.gl/POs2
姑且不论孙云丰的观点是非对错,如果孙云丰代表百度骂谷歌,那他就严重地缺乏
职业道德,辱骂竞争对手显然不是一家公众上市公司高管之所为能事;如果孙云丰代表
自己骂谷歌公司,那么就有义务接受谷歌用户的回应和批评。可惜的是孙云丰一方面宣
称自己观点毫无错误,另一方面,他又赶紧删掉了自己的文章并且四处要求删贴。也有
人说删贴未必是他自己的意愿。那么,作为宣称“有道德感”的百度员工,孙云丰不应
该屈从别人的意见删掉自己认为正确的东西。作为百度高管,孙云丰更不应该允许百度
公关去打电话要求别人删贴。http://goo.gl/POs2
新浪微博上有网友评论说,“单从商业价值和经济利益
c*******9
发帖数: 9032
18
来自主题: Programming版 - 围棋规则haskell表示
http://homepages.cwi.nl/~tromp/go/Go.hs
{-# LANGUAGE ScopedTypeVariables #-}
module Go where
import Data.Ix
import Data.List
import Data.Array
import Control.Monad
import Control.Monad.State
data Player = Black | White deriving (Eq, Enum, Show)
data Color = Empty | Stone Player deriving (Eq, Show)
newtype Position p = Position (Array p Color) deriving (Eq)
color :: (Point p) => Position p -> p -> Color
color (Position pos) p = pos!p
class (Show p, Ix p) => Point p where
pointBounds :: (p,p)
... 阅读全帖
b*****s
发帖数: 187
19
这场比赛? 官方数据讲话
Pos4: 65 vs 61
Pos3: 75 vs 64
Pos2: 76 vs 85
Pos1: 83 vs 84
http://www.vancouver2010.com/olympic-curling/schedule-and-results/womens-
round-robin-session-11_cuw400943hL.html
k*k
发帖数: 49
20
来自主题: JobHunting版 - 微软一个面试题
miss this line...
int pos1 = j, pos2 = j+i/2;
thanks
k*k
发帖数: 49
21
来自主题: JobHunting版 - 微软一个面试题
is your array rotation technique generally applicable?
given an array such as
[+ + + + - - -]
i will do following:
1) compute the len of neg. segement
2) reverse the whole array
3) reverse the neg seg given its len
4) reverse the remaining pos seg
compare to your approach mine need an extra step (step 1)
//step 2-3 can be trimmed down to N if using GCD tricks.
I try to apply your sol. on following array
int arr[9] = {-7, -8, 9, -6, -11, -3, -5, 2, 3};
and set
j=0; N = 9;
pos1 = 2; pos2 = 7;
i th
v****e
发帖数: 276
22
As Haiti continues to struggle through the disastrous earthquake, Byron
Pitts reports on the efforts of the U.S. Army's 82nd Airborne Division to
help rescue, feed and protect citizens.
视频下载:
http://hotfile.com/dl/24848919/4fe82ee/60.Minutes.Haidi.mp4.html
http://goo.gl/POs2
时代周刊就海地地震采访Bill Clinton视频:
Bill Clinton: What Haiti Needs
from TIME Magazine by Time.com
President Bill Clinton, U.N. Special Envoy to Haiti, tells TIME Managing
Editor Richard Stengel about his long history as an advocate f
y****n
发帖数: 15
23
多谢你的指点。
我按下面方式定义macro,用visual studio 2008编译。
但在实际执行add()时,执行的却是减法操作。
如果在add()和subtract()的最后加上"#undef OPER",则会出现编译错误,提示在foo
中找不到OPER的定义。
void add(...)
{
#define OPER +
foo(...)
}
void subtract(...)
{
#define OPER -
foo(...)
}
void foo(...)
{
...
v_out[pos1] = v_in[pos1] OPER v_in[pos2];
...
}

expression
t****t
发帖数: 6806
24
no, that's not how macro works. to use macro, you need to write:
define FOO \
{ \
/*...*/ \
v_out[pos1] = v_in[pos1] OPER v_in[pos2]; \
}
#define OPER +
void add(...)
FOO
#undef OPER
#define OPER -
void subtract(...)
FOO
#undef OPER
it's not a very pleasant solution, of course. i won't recommend that.

foo
N8
发帖数: 110
25
template

no, that's not how macro works. to use macro, you need to write:
define FOO \
{ \
/*...*/ \
v_out[pos1] = v_in[pos1] OPER v_in[pos2]; \
}
#define OPER +
void add(...)
FOO
#undef OPER
#define OPER -
void subtract(...)
FOO
#undef OPER
it's not a very pleasant solution, of course. i won't recommend that.
foo
xt
发帖数: 17532
26
来自主题: Science版 - 什么排序法最好?

冒泡法不见得简便啊,下面是merge sort:
Sort(A)
//A: n elements to be sorted
return merge-sort(A, 1, n)
end
merge-sort(A, p, q)
//merge-sort(A, p, q): sort the p-th to q-th elements in A
r = (p+q)/2
if (p=q) return A
else return merge(merge-sort(A, p, r), merge-sort(A, r+1, q))
end
merge(A1, A2)
//precondition: A1, A2 are sorted
n1 = length(A1) //Number of elements in A1
n2 = length(A2) //......................A2
pos1 = 1 //current position in A1
pos2 = 1 //..........
o****o
发帖数: 8077
27
来自主题: Statistics版 - Weird SAS macro bugs, 包子重谢!
dude, you put two %% in this line:
%let word2 = %scan(%bquote(%substr(%bquote(&covars.),%EVAL(&i.+1))),1);
---> %%put word2 = &word2.;
%let pos2 = %EVAL(%index(%bquote(&covars.), &word2.)+%length(&word2.) );
remove one % and you are all set
1 (共1页)