****题(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 ...
随机推荐
- 怎样理解第三方Cookie
1. Cookie往往是用来存储用户信息的, 但有些恶意站点设法伪造了带有正确Cookie的HTTP请求, 这时就会产生安全问题( CSRF 攻击 ). 这里恶意网站获取cookie的行为就是第三方c ...
- Java多线程(八):ReentrantReadWriteLock
读写锁ReentrantReadWriteLock概述 读写锁ReentrantReadWriteLock,使用它比ReentrantLock效率更高. 读写锁表示两个锁,一个是读操作相关的锁,称为共 ...
- Windows编程 Windows程序的生与死(下)
再谈程序之“死” 记得在第二回中我对程序的“死”只是一句话带过,因为我还没有铺垫好,好了现在我们可以详细的分析一下这个过程了. 这还要从while消息循环说起,还记得GetMessage函数吗?它是一 ...
- C# switch语句的使用
1 今天我们来学习switch 语句的使用,switch 语句和if else 类似 switch 语句主要的作用是用于来判断在规定条件下 根据你的选择来执行switch 语句下面case :的 ...
- *4.1 所有类型都从System.Object派生
- Image 对象事件
以前没怎么注意image上的事件 Image 对象事件 事件 描述 W3C onabort 当用户放弃图像的装载时调用的事件句柄. Yes onerror 在装载图像的过程中发生错误时调用的事件句柄. ...
- [转载]Grid Search
[转载]Grid Search 初学机器学习,之前的模型都是手动调参的,效果一般.同学和我说他用了一个叫grid search的方法.可以实现自动调参,顿时感觉非常高级.吃饭的时候想调参的话最差不过也 ...
- 可运行jar包转.exe
1.工具:launch4j.exe 2.导出可运行jar包(runable Jar file) 3.截图: 4.生成结果:
- 使用百度echarts仿雪球分时图(二)
上一章简单的介绍了一下分时图的构成,其实就是折线图跟柱状图的组成.本来这章打算是把分时图做完,然后再写一章来进行美化和总结,但是仔细观察了一下,发现其实东西还是有点多的.分时图的图表做完后,还要去美化 ...
- c#如何使用MemoryStream和BinaryFormatter进行对象的序列化和返序列化
1 下面是我写的一个序列化的类 public static class ObjSerialize { /// <summary> /// 将对象数组obj序列化,内存中的缓冲区的数据序列化 ...