矩阵取数游戏

思路:

  dp+高精;

代码:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
struct Int {
int len;
char ai[];
Int()
{
len=,ai[]=;
}
void Count(int pos)
{
len++;
if(pos/) Count(pos/);
}
void operator=(int pos_)
{
int pos=pos_;
len=,Count(pos);
for(int i=;i<len;i++) ai[i]=pos%,pos/=;
}
bool operator<(const Int pos)const
{
if(len<pos.len) return true;
else if(len>pos.len) return false;
for(int i=len-;i>=;i--)
{
if(ai[i]<pos.ai[i]) return true;
else if(ai[i]>pos.ai[i]) return false;
}
return false;
}
Int operator*(const int pos)const
{
ll tmp=;Int res;res.len=len;
for(int i=;i<len;i++) tmp+=ai[i]*pos,res.ai[i]=tmp%,tmp/=;
while(tmp) res.ai[res.len++]=tmp%,tmp/=;
return res;
}
Int operator+(const Int pos)const
{
ll tmp=;Int res;res.len=max(len,pos.len);
for(int i=;i<res.len;i++) tmp+=(i<len?ai[i]:)+(i<pos.len?pos.ai[i]:),res.ai[i]=tmp%,tmp/=;
while(tmp) res.ai[res.len++]=tmp%,tmp/=;
return res;
}
void print()
{
for(int i=len-;i>=;i--) putchar(ai[i]+'');
}
};
Int dp[][],ans,ci[][];
int ai[][],n,m;
Int max(Int a,Int b)
{
if(a<b) return b;
else return a;
}
int main()
{
freopen("data.txt","r",stdin);
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
for(int v=;v<=m;v++) scanf("%d",&ai[i][v]),ci[i][v]=ai[i][v];
}
for(int i=;i<=n;i++)
{
for(int v=;v<=m;v++) dp[v][v]=ai[i][v]*;
for(int k=;k<m;k++)
{
for(int v=;v+k<=m;v++)
{
int l=v,r=v+k;
dp[l][r]=max((dp[l+][r]+ci[i][l])*,(dp[l][r-]+ci[i][r])*);
}
}
ans=dp[][m]+ans;
}
ans.print();
return ;
}

AC日记——矩阵取数游戏 洛谷 P1005的更多相关文章

  1. 矩阵取数游戏洛谷p1005

    题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...

  2. 洛谷 P1005 矩阵取数游戏

    题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...

  3. 【洛谷P1005】矩阵取数游戏

    矩阵取数游戏 题目链接 每行分别跑一趟区间DP即可 这道题区间DP是非常裸的,按套路来即可 但是很毒瘤的是需要高精度, “我王境泽就是爆零,从这跳下去,也不会用__int128的!” #include ...

  4. 洛谷P1005 矩阵取数游戏

    P1005 矩阵取数游戏 题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次 ...

  5. [NOIP2007] 提高组 洛谷P1005 矩阵取数游戏

    题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...

  6. 洛谷1005 【NOIP2007】矩阵取数游戏

    问题描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...

  7. NOIP2007 矩阵取数游戏

    题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...

  8. 1166 矩阵取数游戏[区间dp+高精度]

    1166 矩阵取数游戏 2007年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description [ ...

  9. 矩阵取数游戏 NOIP 2007

    2016-05-31 17:26:45 题目链接: NOIP 2007 矩阵取数游戏(Codevs) 题目大意: 给定一个矩阵,每次在每一行的行首或者行尾取一个数乘上2^次数,求取完最多获得的分数 解 ...

随机推荐

  1. HDU 1596 floyd

    find the safest road Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  2. tp查找某字段,排除某字段,不用一次写那么多

    更多的情况下我们都是查询某些字段,但有些情况下面我们需要通过字段排除来更方便的查询字段,例如文章详细页,我们可能只需要排除status和update_time字段,这样就不需要写一堆的字段名称了(有些 ...

  3. SqlServer中循环和条件语句示例!

    -- ╔════════╗ -- =============================== ║ if语句使用示例 ║ -- ╚════════╝ declare @a int set @a=12 ...

  4. Android 命名规范 (转)

    刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间.如果就是我一个人 ...

  5. 可能是国内最火的开源项目 —— C/C++ 篇

    程序员们,在北上广你还能买房吗? >>>   推荐阅读: 可能是最火的开源项目 -- Java 篇 可能是国内最火的开源项目 -- PHP 篇 可能是国内最火的开源项目 -- Pyt ...

  6. git高级用法

    1.git未保存的代码怎么切换分支? 2.两个分支的代码怎么合并?怎么解决冲突? 常见报错: 1.Merge failed : Some unreacked working tree files wo ...

  7. 【Dream Counting, 2006 Dec-数数的梦】数位dp

    题意:给定两个数,问区间[A,B]中0~9分别出现了多少次.A,B<=10^18 题解:应该是最裸的数位dp吧..一开始没有记忆化tle了TAT 我们可以求出区间[0,B]的,再减去区间[0,A ...

  8. 【Luogu】P3927 SAC E#1 - 一道中档题 Factorial

    [题目]洛谷10月月赛R1 提高组 [题意]求n!在k进制下末尾0的个数,n<=1e18,k<=1e16. [题解]考虑10进制末尾0要考虑2和5,推广到k进制则将k分解质因数. 每个质因 ...

  9. python初步学习-python数据类型之strings(字符串)

    数据类型-字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号(''或者"")来创建字符串 var1 = 'Hello World!' var2 = "P ...

  10. margin 居中

    左右auto加个宽度.margin-left: auto; margin-right: auto; width:640px;