题目链接  2014北京区域赛

Problem A

Problem B

直接DFS+剪枝

剪枝条件:当前剩余的方块数量cnt < 2 * max{a[i]} - 1,则停止往下搜。

因为这样搜下去接下来肯定会出现相邻方块颜色相同的情况。

#include <bits/stdc++.h>

using namespace std;

#define rep(i, a, b)	for (int i(a); i <= (b); ++i)
#define dec(i, a, b) for (int i(a); i >= (b); --i)
#define MP make_pair
#define fi first
#define se second typedef long long LL; const int N = 205; int f[N][N];
int a[N], b[N];
int n;
int T;
int ca = 0; int dp(int l, int r){
if (l > r) return 0;
if (~f[l][r]) return f[l][r];
int &ret = f[l][r]; ret = 1 << 30;
rep(i, l, r) ret = min(ret, dp(l, i - 1) + a[i] + b[l - 1] + b[r + 1] + dp(i + 1, r));
return ret;
} int main(){ scanf("%d", &T);
while (T--){
memset(f, -1, sizeof f);
scanf("%d", &n);
memset(a, 0, sizeof a);
memset(b, 0, sizeof b);
rep(i, 1, n) scanf("%d", a + i);
rep(i, 1, n) scanf("%d", b + i);
printf("Case #%d: %d\n", ++ca, dp(1, n));
} return 0;
}

Problem C

Problem D

考虑区间DP

$f[i][j] = min(f[i][k-1] + a[k] + b[k - 1] + b[k + 1] + f[k + 1][j])$

边界条件处理并不麻烦,

记忆化搜索就可以了。

#include <bits/stdc++.h>

using namespace std;

#define rep(i, a, b)	for (int i(a); i <= (b); ++i)
#define dec(i, a, b) for (int i(a); i >= (b); --i)
#define MP make_pair
#define fi first
#define se second typedef long long LL; const int N = 205; int f[N][N];
int a[N], b[N];
int n;
int T;
int ca = 0; int dp(int l, int r){
if (l > r) return 0;
if (~f[l][r]) return f[l][r];
int &ret = f[l][r]; ret = 1 << 30;
rep(i, l, r) ret = min(ret, dp(l, i - 1) + a[i] + b[l - 1] + b[r + 1] + dp(i + 1, r));
return ret;
} int main(){ scanf("%d", &T);
while (T--){
memset(f, -1, sizeof f);
scanf("%d", &n);
memset(a, 0, sizeof a);
memset(b, 0, sizeof b);
rep(i, 1, n) scanf("%d", a + i);
rep(i, 1, n) scanf("%d", b + i);
printf("Case #%d: %d\n", ++ca, dp(1, n));
} return 0;
}

Problem E

Problem F

Problem G

Problem H

Problem I

Problem J

Problem K

2014 ACM/ICPC 亚洲区 北京站的更多相关文章

  1. hdu 5016 点分治(2014 ACM/ICPC Asia Regional Xi'an Online)

    Mart Master II Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  2. 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)

    摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...

  3. HDU 5000 2014 ACM/ICPC Asia Regional Anshan Online DP

    Clone Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/65536K (Java/Other) Total Submiss ...

  4. 2014 ACM/ICPC 北京邀请赛 部分 题解

    题目链接:http://acm.bnu.edu.cn/bnuoj/problem.php?search=2014+ACM-ICPC+Beijing+Invitational+Programming+C ...

  5. 2014 ACM/ICPC 鞍山赛区现场赛 D&amp;I 解题报告

    鞍山现场赛结束了呢-- 我们出的是D+E+I三道题-- 吾辈AC掉的是D和I两道,趁着还记得.先在这里写一写我写的两道水题D&I的解题报告吧^_^. D题的意思呢是说星云内有一堆排成一条直线的 ...

  6. Hdu OJ 5113 Black And White (2014ACM/ICPC亚洲区北京站) (搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5113 题目大意:有k种颜色的方块,每种颜色有ai个, 现在有n*m的矩阵, 问这k种颜色的方块能否使任 ...

  7. Hdu OJ 5115 Dire Wolf (2014ACM/ICPC亚洲区北京站) (动态规划-区间dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5115 题目大意:前面有n头狼并列排成一排, 每一头狼都有两个属性--基础攻击力和buff加成, 每一头 ...

  8. HDU 5029 Relief grain(离线+线段树+启发式合并)(2014 ACM/ICPC Asia Regional Guangzhou Online)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5029 Problem Description The soil is cracking up beca ...

  9. 2014ACM/ICPC亚洲区北京站 上交命题

    A http://acm.hdu.edu.cn/showproblem.php?pid=5112 输入n个时刻和位置,问那两个时刻间速度最快. 解法:按照时间排序,然后依次求相邻两个之间的速度,速度= ...

随机推荐

  1. python入门:if和else的基本用法

    #!/usr/bin/env python # -*- coding:utf-8 -*- #2.X用raw_input,3.X用input #if和else的基本用法 name = input(&qu ...

  2. 线段树:CDOJ1597-An easy problem C(区间更新的线段树)

    An easy problem C Time Limit: 4000/2000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Pr ...

  3. 欧拉函数:HDU1787-GCD Again(欧拉函数的模板)

    GCD Again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  4. 利用http录制jmeter脚本

    1.在WorkBench下新建HTTP(S) Test Script Recorder,默认端口号为8080,假如8080被占用,则使用其他端口号:且为了使录制保存到线程组里,也同时新建一个线程组Tr ...

  5. MySQL主从复制(Master-Slave)

    MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展.多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能. 下图就描述了一个多个数 ...

  6. socketserver源码剖析

    作者:人世间链接:https://www.jianshu.com/p/357e436936bf來源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处 BaseServer 和 B ...

  7. 全网最详细python中socket套接字send与sendall的区别

    将数据发送到套接字. 套接字必须连接到远程套接字.  返回发送的字节数. 应用程序负责检查是否已发送所有数据; 如果仅传输了一些数据, 则应用程序需要尝试传递剩余数据.(需要用户自己完成) 将数据发送 ...

  8. 请求报文&响应报文

    转自黑马程序员视频教程

  9. 光学字符识别OCR-6 光学识别

    经过前面的文字定位和文本切割,我们已经能够找出图像中单个文字的区域,接下来可以建立相应的模型对单字进行识别. 模型选择         在模型方面,我们选择了深度学习中的卷积神经网络模型,通过多层卷积 ...

  10. Selenium WebDriver- 操作JavaScript的Alert弹窗

    弹层和弹框是有区别的,弹框是那种完全没样式的框子:弹层是可以直接看到html的,有样式 #encoding=utf-8 import unittest import time from seleniu ...