****题(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 ...
随机推荐
- F12的用法
F12在Web测试中十分重要,可以定位元素(UI自动化常用),查看网页响应时间/数据(定位BUG,测单页面响应时间→性能) Elements 点击这个按钮,将光标移至“Google”图片位置并点击,右 ...
- springboot中的参数传递
1.前端传递到后端 1-1.js function add(){ var obj = {}; obj.parame_empname = $("#EMPNAME").val(); i ...
- element-ui表格带复选框使用方法及默认选中方法
一.实现多选:步骤1:在表格中添加一列 步骤2:在data中定义以及数组用来存储选中的元素.例如:multipleSelection:[] selection-change方法用户实时监听选中元素 实 ...
- 【Distributed】限流技巧
一.概述 1.1 高并发服务限流特技 1.2 为什么要互联网项目要限流 1.3 高并发限流解决方案 二.限流算法 2.1 计数器 2.2 滑动窗口计数 2.3 令牌桶算法 使用RateLimiter实 ...
- 【loj#6220】sum
题目传送门:https://loj.ac/problem/6220 题意:对于一个序列$a$,找出它的一个子序列$b$,使$\sum_{a_i \in b}a_i \equiv 0 \pmod n$ ...
- 十八,helm的原理及基础使用
目录 helm介绍 核心术语 helm安装 helm安装 Tiller安装 创建tiller相关的rbac helm使用 添加chart源 helm常用命令: 基础命令 自定义chart 一.char ...
- win10家庭版设置移动热点出现“我们无法设置移动热点”
寝室wifi卡到爆炸, 买了一个360随身WiFi,可是360随身WiFi烧坏了 ...然后我就一个星期没玩游戏了 今天本来想开电脑的wifi试一试,结果发现无法设置热点 纳闷了 百度一下,发现都 ...
- php连接oracle oracle开启扩展
<?php /** * 由于公司的需要,使用php+oracle开发项目,oracle因为有专门人员开发设计,我们只需远程调用 *于是乎遇到了蛋疼的问题就是开启oracle扩展的问题,虽然你在p ...
- ARM体系结构与编程读书笔记——处理器的运行模式
ARM处理器共有7种运行模式,如下表: 处理器模式 描述 用户模式(User, usr) 正常程序执行的模式 快速中断模式(FIQ, fiq) 用于高速数据传输和通道处理 外部中断模式(IRQ, ir ...
- anaconda环境中---py2.7下安装tf1.0 + py3.5下安装tf1.5
anaconda环境中---py2.7下安装tf1.0 + py3.5下安装tf1.5 @wp20181030 环境:ubuntu18.04, anaconda2, ubuntu系统下事先安装了pyt ...