题目

传送门:QWQ

分析

这种题不会做 吃枣药丸。。。。。

想到状压已经经过的点。

然后更新时枚举两个点加进去。

复杂度$  {O(2^n \times n^2)}$。

凉凉。

真正的做法是每一个状态只要找到一组解就break。这样可以省掉一层n。

大致上就像lrj紫书的dp例题一样,反正这个点都要选,那就先选了他。

还不是很懂这个神奇的break。。。。。

代码

 #include <bits/stdc++.h>
using namespace std;
const int maxn=, INF=1e9; int dp[<<maxn], dis[maxn][maxn], pre[<<maxn];
int x[maxn], y[maxn]; int sqr(int x){ return x*x; } int main(){
scanf("%d%d",&x[],&y[]);
int n; scanf("%d",&n);
for(int i=;i<=n;i++) {
scanf("%d%d",&x[i],&y[i]);
}
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
dis[i][j]=dis[j][i]=sqr(x[i]-x[j])+sqr(y[i]-y[j]);
}
} memset(dp,,sizeof(dp)); dp[]=;
for(int S=;S<(<<n);S++){
if(dp[S]>INF) continue;
for(int i=;i<=n;i++){
if(S&(<<i-)) continue;
for(int j=;j<=n;j++){
if(S&(<<j-)) continue; int prenum=dp[S|<<(i-)|<<(j-)];
dp[S|<<(i-)|<<(j-)]=min(dp[S|<<(i-)|<<(j-)], dp[S]+dis[][i]+dis[][j]+dis[i][j]);
if(prenum>dp[S|<<(i-)|<<(j-)]){
pre[S|<<(i-)|<<(j-)]=S;
}
}
break;
}
} printf("%d\n",dp[(<<n)-]);
int now=(<<n)-; //从所有都齐的状态开始逆推
while ( now!= )
{
printf( "0 " );
int update=now^pre[now];
for ( int i=; i<=n; i++ )
if ( update&<<i- )
printf( "%d ", i ); //输出本次拿的哪些物品
now=pre[now];
}
puts("");
}

【Codeforces】CF 8 C Looking for Order(状压dp)的更多相关文章

  1. Codeforces Beta Round #8 C. Looking for Order 状压dp

    题目链接: http://codeforces.com/problemset/problem/8/C C. Looking for Order time limit per test:4 second ...

  2. codeforces 8C. Looking for Order 状压dp

    题目链接 给n个物品的坐标, 和一个包裹的位置, 包裹不能移动. 每次最多可以拿两个物品, 然后将它们放到包里, 求将所有物品放到包里所需走的最小路程. 直接状压dp就好了. #include < ...

  3. 【题解】codeforces 8c Looking for Order 状压dp

    题目描述 Lena喜欢秩序井然的生活.一天,她要去上大学了.突然,她发现整个房间乱糟糟的--她的手提包里的物品都散落在了地上.她想把所有的物品都放回她的手提包.但是,这里有一点问题:她一次最多只能拿两 ...

  4. Codeforces Gym 100610 Problem K. Kitchen Robot 状压DP

    Problem K. Kitchen Robot Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/10061 ...

  5. Educational Codeforces Round 13 E. Another Sith Tournament 状压dp

    E. Another Sith Tournament 题目连接: http://www.codeforces.com/contest/678/problem/E Description The rul ...

  6. Codeforces 1225G - To Make 1(bitset+状压 dp+找性质)

    Codeforces 题目传送门 & 洛谷题目传送门 还是做题做太少了啊--碰到这种题一点感觉都没有-- 首先我们来证明一件事情,那就是存在一种合并方式 \(\Leftrightarrow\) ...

  7. CF1103D Codeforces Round #534 (Div. 1) Professional layer 状压 DP

    题目传送门 https://codeforces.com/contest/1103/problem/D 题解 失去信仰的低水平选手的看题解的心路历程. 一开始看题目以为是选出一些数,每个数可以除掉一个 ...

  8. 【Codeforces】CF 165 E Compatible Numbers(状压dp)

    题目 传送门:QWQ 分析 很难想到方向,但有方向了就很easy了. 我们如何减少不必要的计算? 如果我们知道了$ 100111 $的相容的数,$ 100101 $的相容数和他是完全一样的. 我们就靠 ...

  9. Codeforces 279D The Minimum Number of Variables 状压dp

    The Minimum Number of Variables 我们定义dp[ i ][ mask ]表示是否存在 处理完前 i 个a, b中存者 a存在的状态是mask 的情况. 然后用sosdp处 ...

  10. codeforces#580 D. Kefa and Dishes(状压dp)

    题意:有n个菜,每个菜有个兴奋值,并且如果吃饭第i个菜立即吃第j个菜,那么兴奋值加ma[i][j],求吃m个菜的最大兴奋值,(n<=18) 分析:定义dp[status][last],statu ...

随机推荐

  1. Linux:centos内核升级

    centos内核升级 centos升级2.6内核到3.10 在yum的ELRepo源中,有 m ain l ine(3.13.1). l ong- t erm(3.10.28)这2个内核版本,long ...

  2. Linux:挂载

    挂载

  3. OSI七层网络模型与TCP/IP四层模型介绍

    目录 OSI七层网络模型与TCP/IP四层模型介绍 1.OSI七层网络模型介绍 2.TCP/IP四层网络模型介绍 3.各层对应的协议 4.OSI七层和TCP/IP四层的区别 5.交换机工作在OSI的哪 ...

  4. shell 数学运算总结

    # !/bin/bash ## 整数-算数运算 ### 1. expr r=`expr 4 + 5` ### Tips:1. '4''+''5'三者之间有空白 echo $r; r=`expr 4 \ ...

  5. IDEA创建的Web项目配置Tomcat并启动Maven项目

    点击如图所示的地方,进行添加Tomcat配置页面   弹出页面后,按照如图顺序找到,点击+号     tomcat Service -> Local   注意,这里不要选错了哦,还有一个TomE ...

  6. Gradle 下载不了

    可自行下载对应的 gradle-x.x-all.zip 放在下列目录 C:\Users\penno\.gradle\wrapper\dists\gradle-4.4-all\9br9xq1tocpiv ...

  7. CodeForces - 1097D:Makoto and a Blackboard (积性)

    Makoto has a big blackboard with a positive integer n written on it. He will perform the following a ...

  8. Docker使用rexray做跨主机存储

    Rex-Ray 是一个优秀的 Docker volume driver,不过只有最新版docker才支持. Rex-Ray 以 standalone 进程的方式运行在 Docker 主机上,安装方法很 ...

  9. StyleCop 是什么,可以帮助团队带来什么价值?

    StyleCop 本质上是一个 C# 源代码规则分析器,可以帮助团队成员强制执行一组代码样式和一致性规则. 本文将简述 StyleCop 以及它能为团队带来的价值. 本文内容 StyleCop 是什么 ...

  10. MySQL--修改表字段

    ##========================================================================## ## 修改表字段 ## CHANGE和MODI ...