矩阵取数游戏C++

矩阵取数游戏C++,第1张

#include<iostream>

#include<string .h>

using namespace std

int s[105][105],n,m

struct node{

int a[20]

}sum

node jia (node a,node b)

{}//高精?

node ans

int len=max(a.a[0],b.a[0])

memset(ans.a,0,sizeof(ans.a))

for (int i=1i<=leni++)

{

ans.a[i]=a.a[i]+b.a[i]

while (ans.a[i]>9)

{

ans.a[i]-=10

ans.a[i+1]++

}

}

if (ans.a[len+1]==0)

ans.a[0]=len

else

ans.a[0]=len+1

return ans

}

node score (int aint n)

{}//取数得分(这个地方把高精乘低精包含进去了,直接默认乘2)

node ans

int len=0

memset(ans.a,0,sizeof(ans.a))

while (a!=0)

{

len++

ans.a[i]=a%10

a/=10

}

ans.a[0]=len

for (int i=1i<=ni++)

{

for (int j=1j<=lenj++)

ans.a[j]*=2

for (int j=1j<=lenj++)

while (ans.a[j]>9)

{

ans.a[j]-=10

ans.a[j+1]++

}

}

if (ans.a[len+1]==0)

ans.a[0]=len

else

ans.a[0]=len+1

return ans

}

int main(void)

{

cin>>n>>m

for (int i=1i<=ni++)

for (int j=1j<=mj++)

cin>>s[i][j]

//其他照旧dp ......

}

很简单的动规啊

首先每一行可以独立计算~

f[i,j]表示取走某一行从第i个到第j个的最佳值

最后一个取的肯定是i或者j

于是就得出上面那个转移方程了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6736773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存