****题(alb)



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)的更多相关文章
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- 【Java每日一题】20170106
20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170105
20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170104
20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170103
20161230问题解析请点击今日问题下方的"[Java每日一题]20170103"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- SQL面试笔试经典题(Part 1)
本文是在Cat Qi的原贴的基础之上,经本人逐题分别在MySql数据库中实现的笔记,持续更新... 参考原贴:http://www.cnblogs.com/qixuejia/p/3637735.htm ...
- 刷LeetCode的正确姿势——第1、125题
最近刷LeetCode比较频繁,就购买了官方的参考电子书 (CleanCodeHandbook),里面有题目的解析和范例源代码,可以省去非常多寻找免费经验分享内容和整理这些资料的时间.惊喜的是,里面的 ...
- AWS的SysOps认证考试样题解析
刚考过了AWS的developer认证,顺手做了一下SysOps的样题.以下是题目和答案. When working with Amazon RDS, by default AWS is respon ...
- AWS开发人员认证考试样题解析
最近在准备AWS的开发人员考试认证.所以特意做了一下考试样题.每道题尽量给出了文档出处以及解析. Which of the following statements about SQS is true ...
随机推荐
- mvc 登陆界面+后台代码
上代码 前端+js(懒得分文件了) @{ ViewBag.Title = "MVC权限系统架构学习-登录"; Layout = "/Views/Shared/_LoadJ ...
- luogu题解 P4092 【[HEOI2016/TJOI2016]树】树链剖分
题目链接: https://www.luogu.org/problemnew/show/P4092 瞎扯--\(O(Q \log^3 N)\)解法 这道先yy出了一个\(O(Q \log^3 N)\) ...
- JavaScript笔记(5)
1.DOM操作 常用的DOM操作 document.getElementById(id); //返回指定id的元素,通用 document.getElementsByTagName(tagName); ...
- Web Api 将DataTable装换成Excel,并通过文件流将其下载
不废话,直接上代码 前端代码 <input type="button" class="layui-btn" value="Test-GetFil ...
- SAS.EnhancedEditor.dll 已加载,但找不到入口点DLLRegisterServer
SAS.EnhancedEditor.dll 已加载,但找不到入口点DLLRegisterServer 重新安装EnhancedEditor 安装Microsoft.NET Framework 3.5 ...
- BBPlus团队ALPHA冲刺博客(肖文恒)
ALPHA冲刺博客 第一天:https://www.cnblogs.com/bbplus/p/11931039.html 第二天:https://www.cnblogs.com/bbplus/p/11 ...
- python3 中的cls和self的区别 静态方法和类方法的区别
一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法. 而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用. 这有利于组织代码,把某 ...
- shell 判断月末日期
有一个需求,根据输入的时间段,在这个时间段中的是月末的日期执行脚本 解决如下: #!/bin/bashif [ -z $1 ]thenecho "请输入年月日8位开始日期"exit ...
- redis—django-redis
自定义连接池 这种方式跟普通py文件操作redis一样,代码如下: views.py import redis from django.shortcuts import render,HttpResp ...
- Maven 依赖的作用域
Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了 ...