博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[USACO16OPEN]248
阅读量:5262 次
发布时间:2019-06-14

本文共 737 字,大约阅读时间需要 2 分钟。

[USACO16OPEN]248

题目描述

给定一个1*n的地图,在里面玩2048,每次可以合并相邻两个相同的数(数值范围1-40),问最大能合出多少。注意合并后的数值并非加倍而是+1,例如2与2合并后的数值为3。

Solution

入门区间DP

f[i][j]表示[i,j]能合并出的最大的数

转移的顺序第一次写错了。。。

#include
using namespace std;const int MAXN = 300;typedef long long ll;inline ll read(){ ll f=1,x=0; char ch; do { ch=getchar(); if(ch=='-') f=-1; }while(ch<'0'||ch>'9'); do { x=(x<<3)+(x<<1)+ch-'0'; ch=getchar(); }while(ch>='0'&&ch<='9'); return f*x;}int n;int a[MAXN]; int f[MAXN][MAXN],ans;int main(){ n=read(); for(int i=1;i<=n;i++) a[i]=read(),f[i][i]=a[i]; for(int i=n-1;i>=1;i--) for(int j=i+1;j<=n;j++) for(int k=i;k

 

转载于:https://www.cnblogs.com/wlzs1432/p/9350683.html

你可能感兴趣的文章
boost 同步定时器
查看>>
[ROS] Chinese MOOC || Chapter-4.4 Action
查看>>
简单的数据库操作
查看>>
Redmine
查看>>
帧的最小长度 CSMA/CD
查看>>
编程算法 - 左旋转字符串 代码(C)
查看>>
Python3多线程爬取meizitu的图片
查看>>
树状数组及其他特别简单的扩展
查看>>
110104_LC-Display(液晶显示屏)
查看>>
php学习笔记
查看>>
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>
【洛谷P1816 忠诚】线段树
查看>>
电子眼抓拍大解密
查看>>
poj 1331 Multiply
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>
Html 小插件5 百度搜索代码2
查看>>
Ubuntu(虚拟机)下安装Qt5.5.1
查看>>
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
查看>>
java 常用命令
查看>>