AC日记——矩阵取数游戏 洛谷 P1005
思路:
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的更多相关文章
- 矩阵取数游戏洛谷p1005
题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...
- 洛谷 P1005 矩阵取数游戏
题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...
- 【洛谷P1005】矩阵取数游戏
矩阵取数游戏 题目链接 每行分别跑一趟区间DP即可 这道题区间DP是非常裸的,按套路来即可 但是很毒瘤的是需要高精度, “我王境泽就是爆零,从这跳下去,也不会用__int128的!” #include ...
- 洛谷P1005 矩阵取数游戏
P1005 矩阵取数游戏 题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次 ...
- [NOIP2007] 提高组 洛谷P1005 矩阵取数游戏
题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...
- 洛谷1005 【NOIP2007】矩阵取数游戏
问题描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...
- NOIP2007 矩阵取数游戏
题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...
- 1166 矩阵取数游戏[区间dp+高精度]
1166 矩阵取数游戏 2007年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description [ ...
- 矩阵取数游戏 NOIP 2007
2016-05-31 17:26:45 题目链接: NOIP 2007 矩阵取数游戏(Codevs) 题目大意: 给定一个矩阵,每次在每一行的行首或者行尾取一个数乘上2^次数,求取完最多获得的分数 解 ...
随机推荐
- 从MYSQL数据库查出指定格式的日期
1.用SQL语言控制: 格式如下: select DATE_FORMAT(t.startTime,"%Y-%m-%d %H:%i") AS startTime, DATE_FORM ...
- iOS常用RGB颜色的色值
常用RGB颜色表 色值 R G B 值 R G B 值 R G B 值 黑色 0 0 0 #000000 黄色 255 255 0 #FFFF00 浅灰蓝色 176 224 230 #B0E0E6 ...
- Java的switch是否支持String作为参数,还支持哪些类型?
在Java5以前,switch(expr)中,exper只能是byte,short,char,int类型. 从Java5开始,java中引入了枚举类型,即enum类型. 从Java7开始,exper还 ...
- ContentProvider学习
1.创建类继承ContentProvider类,并实现增.删.改.查功能. public static final String AUTHORITY = "com.diysoul.lists ...
- thrift源码阅读笔记
http://note.youdao.com/noteshare?id=3f3cf77bf70656ac626f7bf2099063c7
- Idea 02.暴力递归与动态规划(1)
1,关键词解释 1.1 暴力递归: 1, 把问题转化为规模缩小了的同类问题的子问题 2, 有明确的不需要继续进行递归的条件(base case) 3, 有当得到了子问题的结果之后的决策过程 4, 不记 ...
- 简单的web小程序
首先我们先编写一个jsp表面的程序, <%@ page language="java" contentType="text/html; charset=UTF-8& ...
- Could not load file or assembly 'Microsoft.ReportViewer.Common, Version=11.0.0.0 异常处理
在本机开发asp.net .rdlc报表后,部署到本地没有问题. 当把网站发布后部署在IIS上,新电脑上(只安装了.net framwork4.5),提示如下错误: “Could not load f ...
- 求逆元的两种方法+求逆元的O(n)递推算法
到国庆假期都是复习阶段..所以把一些东西整理重温一下. gcd(a,p)=1,ax≡1(%p),则x为a的逆元.注意前提:gcd(a,p)=1; 方法一:拓展欧几里得 gcd(a,p)=1,ax≡1( ...
- 20155335俞昆《java程序设计》第三周总结
20155335 2006-2007-2 <Java程序设计>第三周学习总结 ## 教材学习内容总结 首先,关键是区基本类型和类类型,,产生对象必须定义类,类是一个概念,并不存在,对 ...