sol:较简单的dp题,n4随便写写,n3需要加一个小优化

int i,j,k,i1,j1,i2,j2;
memset(dp,,sizeof dp);
for(i=;i<n;i+=) dp[][i][i+]=dp[][i+][i]=W[i][i+];
for(i=;i<=m;i++)
{
int tmp=Bin[i-];
for(j=;j<n;j+=Bin[i])
{
int l=j,r=j+Bin[i]-,mid=l+tmp-;
for(i1=l;i1<=mid;i1++) for(j1=l;j1<=mid;j1++) if(i1!=j1)
{
for(i2=mid+;i2<=r;i2++) for(j2=mid+;j2<=r;j2++) if(i2!=j2)
{
cmin(dp[i][i1][j2],dp[i-][i1][j1]+dp[i-][i2][j2]+W[j1][i2]);
cmin(dp[i][j2][i1],dp[i-][j2][i2]+dp[i-][j1][i1]+W[i2][j1]);
}
}
}
}
int ans=inf;
for(i=;i<Bin[m-];i++)
{
for(j=Bin[m-];j<n;j++)
{
ans=min(ans,dp[m][i][j]);
}
}
Wl(ans);

n^4

#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
ll s=;
bool f=;
char ch=' ';
while(!isdigit(ch))
{
f|=(ch=='-'); ch=getchar();
}
while(isdigit(ch))
{
s=(s<<)+(s<<)+(ch^); ch=getchar();
}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<)
{
putchar('-'); x=-x;
}
if(x<)
{
putchar(x+''); return;
}
write(x/);
putchar((x%)+'');
return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=,inf=0x3f3f3f3f;
int n,m,Bin[];
int W[N][N];
int dp[][N][N],f[N][N];
inline void cmin(int &x,int y) {x=min(x,y);}
namespace alb
{
inline void Solve()
{
int i,j,k,i1,j1,i2,j2;
memset(dp,,sizeof dp);
for(i=;i<n;i+=) dp[][i][i+]=dp[][i+][i]=W[i][i+];
for(i=;i<=m;i++)
{
int tmp=Bin[i-];
for(j=;j<n;j+=Bin[i])
{
int l=j,r=j+Bin[i]-,mid=l+tmp-;
for(i1=l;i1<=mid;i1++) for(i2=mid+;i2<=r;i2++) f[i1][i2]=inf;
for(i1=l;i1<=mid;i1++) for(j1=l;j1<=mid;j1++) if(i1!=j1) for(i2=mid+;i2<=r;i2++)
{
cmin(f[i1][i2],dp[i-][i1][j1]+W[j1][i2]);
}
for(i1=l;i1<=mid;i1++) for(i2=mid+;i2<=r;i2++) for(j2=mid+;j2<=r;j2++) if(i2!=j2)
{
cmin(dp[i][i1][j2],f[i1][i2]+dp[i-][i2][j2]);
dp[i][j2][i1]=dp[i][i1][j2];
}
}
}
int ans=inf;
for(i=;i<Bin[m-];i++)
{
for(j=Bin[m-];j<n;j++) ans=min(ans,dp[m][i][j]);
}
Wl(ans);
}
}
int main()
{
freopen("alb.in","r",stdin);
freopen("alb.out","w",stdout);
int i,j;
Bin[]=; for(i=;i<=;i++) Bin[i]=Bin[i-]<<;
R(m); n=Bin[m];
for(i=;i<n;i++) for(j=;j<n;j++) R(W[i][j]);
alb::Solve();
return ;
}
/*
input
2
0 7 2 1
7 0 4 3
2 4 0 5
1 3 5 0
output
13
*/

n^3

****题(alb)的更多相关文章

  1. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  2. 【Java每日一题】20170106

    20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  3. 【Java每日一题】20170105

    20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  4. 【Java每日一题】20170104

    20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  5. 【Java每日一题】20170103

    20161230问题解析请点击今日问题下方的"[Java每日一题]20170103"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  6. SQL面试笔试经典题(Part 1)

    本文是在Cat Qi的原贴的基础之上,经本人逐题分别在MySql数据库中实现的笔记,持续更新... 参考原贴:http://www.cnblogs.com/qixuejia/p/3637735.htm ...

  7. 刷LeetCode的正确姿势——第1、125题

    最近刷LeetCode比较频繁,就购买了官方的参考电子书 (CleanCodeHandbook),里面有题目的解析和范例源代码,可以省去非常多寻找免费经验分享内容和整理这些资料的时间.惊喜的是,里面的 ...

  8. AWS的SysOps认证考试样题解析

    刚考过了AWS的developer认证,顺手做了一下SysOps的样题.以下是题目和答案. When working with Amazon RDS, by default AWS is respon ...

  9. AWS开发人员认证考试样题解析

    最近在准备AWS的开发人员考试认证.所以特意做了一下考试样题.每道题尽量给出了文档出处以及解析. Which of the following statements about SQS is true ...

随机推荐

  1. spark异常篇-Removing executor 5 with no recent heartbeats: 120504 ms exceeds timeout 120000 ms 可能的解决方案

    问题描述与分析 题目中的问题大致可以描述为: 由于某个 Executor 没有按时向 Driver 发送心跳,而被 Driver 判断该 Executor 已挂掉,此时 Driver 要把 该 Exe ...

  2. 第十一章 ZYNQ-MIZ701 PS读写PL端BRAM

      本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将 ...

  3. 深度学习之卷积神经网络CNN及tensorflow代码实现示例

    深度学习之卷积神经网络CNN及tensorflow代码实现示例 2017年05月01日 13:28:21 cxmscb 阅读数 151413更多 分类专栏: 机器学习 深度学习 机器学习   版权声明 ...

  4. POJ 1789 Prim

    给定N个字符串,某个字符串转为另一个字符串的花费为他们每一位不相同的字符数. 求最小花费Q. Input 多组输入,以0结束. 保证N不超过2000. Output 每组输出"The hig ...

  5. hdu 2680 Dijstra

    Choose the best route Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  6. C++性能榨汁机之无锁编程

    C++性能榨汁机之无锁编程 来源 http://irootlee.com/juicer_lock_free/ 前言 私以为个人的技术水平应该是一个螺旋式上升的过程:先从书本去了解一个大概,然后在实践中 ...

  7. MVC全局过滤器

    Asp.NET MVC4中的全局过滤器,可以对整个项目进行全局监控. 新建一个MVC4项目,可以在global.asax文件中看到如下代码:  FilterConfig.RegisterGlobalF ...

  8. 【ES6 】ES6 解构赋值--函数参数解构赋值

    函数的参数也可以使用解构赋值. function add([x, y]){ return x + y; } add([1, 2]); 上面代码中,函数add的参数表面上是一个数组,但在传入参数的那一刻 ...

  9. 【php设计模式】装饰器模式

    装饰器模式,顾名思义,就是对已经存在的某些类进行装饰,以此来扩展一些功能.其结构图如下: Component为统一接口,也是装饰类和被装饰类的基本类型. ConcreteComponent为具体实现类 ...

  10. list 字符串拼接效率实验

    ist 字符串拼接有多种方法,我就其中常用三种做了实验,实验代码如下: 第一次是为了初始化静态方法,后面的才是效率比较. 结果如下: StringUtils join 方法用的是StringBuild ...