回复 19# StarWing83 的帖子
平衡树本来就是基于BST,不同就在维护...LS的....... - - ----------------解决方案--------------------------------------------------------
我又没说不是……所以只需要写个维护函数,插入删除以后调用一下就OK嘛……
怎么就我们两个在灌水了,飞燕和LZMM呢?两人私聊去了??
----------------解决方案--------------------------------------------------------
贴点代码看看。。很长时间没看到翅膀的代码了。。呵呵
----------------解决方案--------------------------------------------------------
晕了,说不到现在,你们能给我一些代码么~~
----------------解决方案--------------------------------------------------------
那我就贴一段好了……
算24的代码,sun要不要玩玩??
/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
#include <algorithm>
#include <iostream>
using namespace std;
int num[4],opt[4],res=24,i;
char opts[]="+-*/";
bool IsOK()
{
double sum=num[0];
for (i=0;i<3;i++)
switch (opt[i])
{
case 0:sum+=num[i+1];break;
case 1:sum-=num[i+1];break;
case 2:sum*=num[i+1];break;
case 3:if (num[i+1]==0)return false;
sum/=num[i+1];break;
}
if (sum == res)return true;
return false;
}
int main()
{
while (scanf("%d%d%d%d",num+0,num+1,num+2,num+3)!=EOF)
{
sort(num,num+4);
opt[0]=opt[1]=opt[2]=0;
while (!IsOK())
{
for (i=0;i<3 && opt[i]++>=3;i++) opt[i]=0;
if (i == 3 && !next_permutation(num,num+4))
{
puts("No Answer!");
goto next;
}
}
printf("((%d %c %d) %c %d) %c %d = %d\n",
num[0],opts[opt[0]],
num[1],opts[opt[1]],
num[2],opts[opt[2]],
num[3],res);
next:;
}
}
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
#include <algorithm>
#include <iostream>
using namespace std;
int num[4],opt[4],res=24,i;
char opts[]="+-*/";
bool IsOK()
{
double sum=num[0];
for (i=0;i<3;i++)
switch (opt[i])
{
case 0:sum+=num[i+1];break;
case 1:sum-=num[i+1];break;
case 2:sum*=num[i+1];break;
case 3:if (num[i+1]==0)return false;
sum/=num[i+1];break;
}
if (sum == res)return true;
return false;
}
int main()
{
while (scanf("%d%d%d%d",num+0,num+1,num+2,num+3)!=EOF)
{
sort(num,num+4);
opt[0]=opt[1]=opt[2]=0;
while (!IsOK())
{
for (i=0;i<3 && opt[i]++>=3;i++) opt[i]=0;
if (i == 3 && !next_permutation(num,num+4))
{
puts("No Answer!");
goto next;
}
}
printf("((%d %c %d) %c %d) %c %d = %d\n",
num[0],opts[opt[0]],
num[1],opts[opt[1]],
num[2],opts[opt[2]],
num[3],res);
next:;
}
}
[[it] 本帖最后由 StarWing83 于 2008-6-22 12:34 编辑 [/it]]
----------------解决方案--------------------------------------------------------
回复 23# sunkaidong 的帖子
要看红黑树?我贴过的,要不要我找出来? - - ----------------解决方案--------------------------------------------------------
是啊,私聊去了,你怎么知道
[color=white]
----------------解决方案--------------------------------------------------------
晕了,我在考试啊,要不然我也不要这破玩意,搞得头大~~~
----------------解决方案--------------------------------------------------------
话说有人写过treap没?我原来写的,不知道是不是写错了,看起来不来么平衡... - -
----------------解决方案--------------------------------------------------------
猜得……飞燕某张签名图是非常的暧昧啊……
----------------解决方案--------------------------------------------------------