下面是我写的poj 1738 关于石子合并的代码,那位大侠帮我看看
2010-06-05 18:53
316 查看
//我的想法是 在 石子堆中找一个单调的区间 例如 1 2 3 2 1,分别合并为以下情况 3 3 2 1, 3 3 3,6 3, 9。基本是这种思想,
//可是提交后老是 WA,希望那位高手可以帮帮忙
#include <stdio.h>
int solve(int *a,int n);
int main ()
{
int stone[50000];
int anwser[10000];
int i,j=0;
int n;
scanf("%d",&n);
while(n)
{
for(i=0;i<n;i++)
scanf("%d",&stone[i]);
if(n!=1)
anwser[j]= solve(stone,n);
else
anwser[j]=0;
scanf("%d",&n);
j++;
}
for(i=0;i<j;i++)
printf("%d/n",anwser[i]);
}
int solve(int *stone,int n)
{
int sum=0;
int i,j,l;
while(n>=3)
{
for(i=1;i<n-1&&n>=3;i++)
{
if(stone[i-1]<=stone[i+1])
{
sum+=stone[i]=stone[i-1]+stone[i];
for(j=i;j<n;j++)
stone[j-1]=stone[j];
n--;
i--;
}
}
for(l=n-2;l>0&&n>=3;l--)
{
if(stone[l+1]<=stone[l-1])
{
sum+=stone[l]=stone[l+1]+stone[l];
for(j=l+2;j<n;j++)
stone[j-1]=stone[j];
n--;
}
}
}
sum+=stone[0]+stone[1];
return sum;
}
//可是提交后老是 WA,希望那位高手可以帮帮忙
#include <stdio.h>
int solve(int *a,int n);
int main ()
{
int stone[50000];
int anwser[10000];
int i,j=0;
int n;
scanf("%d",&n);
while(n)
{
for(i=0;i<n;i++)
scanf("%d",&stone[i]);
if(n!=1)
anwser[j]= solve(stone,n);
else
anwser[j]=0;
scanf("%d",&n);
j++;
}
for(i=0;i<j;i++)
printf("%d/n",anwser[i]);
}
int solve(int *stone,int n)
{
int sum=0;
int i,j,l;
while(n>=3)
{
for(i=1;i<n-1&&n>=3;i++)
{
if(stone[i-1]<=stone[i+1])
{
sum+=stone[i]=stone[i-1]+stone[i];
for(j=i;j<n;j++)
stone[j-1]=stone[j];
n--;
i--;
}
}
for(l=n-2;l>0&&n>=3;l--)
{
if(stone[l+1]<=stone[l-1])
{
sum+=stone[l]=stone[l+1]+stone[l];
for(j=l+2;j<n;j++)
stone[j-1]=stone[j];
n--;
}
}
}
sum+=stone[0]+stone[1];
return sum;
}
相关文章推荐
- poj 1738 石子合并(区间DP)
- poj 1738 An old Stone Game(区间dp 合并石子问题直线型)
- POJ 1738 An old Stone Game(石子合并 经典)
- POJ 1738 An old Stone Game(石子合并)
- poj 1738--石子合并 [GarsiaWachs算法]
- poj 1738 石子合并升级版 好题!!!
- [GarsiaWachs算法] BZOJ 3229 [Sdoi2008]石子合并 & POJ 1738 An old Stone Game & 51Nod 1023 石子归并 V3
- poj1738 An old Stone Game 石子合并(归并) GarsiaWachs算法
- POJ 1738 An old Stone Game 石子合并之GarsiaWachs算法
- 男人八题其二(POJ 1738) 石子合并 GarsiaWachs算法
- poj 1738 DP(石子合并的GarsiaWachs算法)
- Excel 关于新建xls文件 新建sheet 合并sheet的VBA操作代码
- 那位大佬看看这个 哥德巴赫猜想代码哪不对,运行不起来
- POJ 1611 The Suspects 并查集(代码带启发式合并)
- POJ 1179 Polygon(动态规划:类似环形石子合并)
- [VB.NET]看看下面的代码,怎么没有错误提示呀!!!!!!
- 石子合并问题(内含BZOJ3229 AC代码)
- 关于代码合并
- 高手来看看这段代码是不是很杂啊!!关于API绘图的问题!