d*e
1 楼
好像在版上没见过。我没做出来,于是直接被提前轰了出去。。。
------------------------------------
有n个节点,id为1到n,各有一个value,两send和receive的api
class node {
int id; // 已知
int value; // 已知
int sum; // 在下面run函数里设定,是所以节点的value的sum.
void send(int toId, int value);
int receive(int fromId);
void run() {
// 现实这个功能
sum = ....
}
}
这个是block send block receive,任意两个节点,比如a和b,一定要是a在receive b
而 b又准备send a,这个通信才能成功,否则比如a, b, c
a send to b
b receive from c
c send to a
没有两个配对,于是都在相互等待,通信不成功。
算法就是设计上面run功能,n个节点同时运行run(),使成这n个节点通信成功,更新各
自的sum值,要求最后平衡或者通信结束时所有的sum相等。
------------------------------------
有n个节点,id为1到n,各有一个value,两send和receive的api
class node {
int id; // 已知
int value; // 已知
int sum; // 在下面run函数里设定,是所以节点的value的sum.
void send(int toId, int value);
int receive(int fromId);
void run() {
// 现实这个功能
sum = ....
}
}
这个是block send block receive,任意两个节点,比如a和b,一定要是a在receive b
而 b又准备send a,这个通信才能成功,否则比如a, b, c
a send to b
b receive from c
c send to a
没有两个配对,于是都在相互等待,通信不成功。
算法就是设计上面run功能,n个节点同时运行run(),使成这n个节点通信成功,更新各
自的sum值,要求最后平衡或者通信结束时所有的sum相等。