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. mvc 登陆界面+后台代码

    上代码 前端+js(懒得分文件了) @{ ViewBag.Title = "MVC权限系统架构学习-登录"; Layout = "/Views/Shared/_LoadJ ...

  2. luogu题解 P4092 【[HEOI2016/TJOI2016]树】树链剖分

    题目链接: https://www.luogu.org/problemnew/show/P4092 瞎扯--\(O(Q \log^3 N)\)解法 这道先yy出了一个\(O(Q \log^3 N)\) ...

  3. JavaScript笔记(5)

    1.DOM操作 常用的DOM操作 document.getElementById(id); //返回指定id的元素,通用 document.getElementsByTagName(tagName); ...

  4. Web Api 将DataTable装换成Excel,并通过文件流将其下载

    不废话,直接上代码 前端代码 <input type="button" class="layui-btn" value="Test-GetFil ...

  5. SAS.EnhancedEditor.dll 已加载,但找不到入口点DLLRegisterServer

    SAS.EnhancedEditor.dll 已加载,但找不到入口点DLLRegisterServer 重新安装EnhancedEditor 安装Microsoft.NET Framework 3.5 ...

  6. BBPlus团队ALPHA冲刺博客(肖文恒)

    ALPHA冲刺博客 第一天:https://www.cnblogs.com/bbplus/p/11931039.html 第二天:https://www.cnblogs.com/bbplus/p/11 ...

  7. python3 中的cls和self的区别 静态方法和类方法的区别

      一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法. 而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用. 这有利于组织代码,把某 ...

  8. shell 判断月末日期

    有一个需求,根据输入的时间段,在这个时间段中的是月末的日期执行脚本 解决如下: #!/bin/bashif [ -z $1 ]thenecho "请输入年月日8位开始日期"exit ...

  9. redis—django-redis

    自定义连接池 这种方式跟普通py文件操作redis一样,代码如下: views.py import redis from django.shortcuts import render,HttpResp ...

  10. Maven 依赖的作用域

    Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了 ...