吐槽:

为什么这场CF…不寻常,1D不应该是2F么…[悲]

题意:

给定一个完全图,路径带权且 \(dis_{i,j}\) 不一定等于 \(dis_{j,i}\),边数为\(k\)不存在奇环且起点和终点都是\(1\)的最小路径。

由于要满足不存在奇环,需要将这个图黑白染色,然后每次都经过黑白边,这样就不会有奇环。但是枚举这个点是黑还是白色…复杂度就可以到 \(2^n * kn^2\),显然不可以,然后会发现实际上你最多 \(k\) 个点需要染色正确,因为你的边不会超过 \(k\),所以理论上\(2^{k}\)次随机就够用了。

code:

#include <bits/stdc++.h>
int read() {
int x = 0 ;
char c = getchar() ;
while(c < 48) c = getchar() ;
while(c > 47) x = x * 10 + (c - 48) , c = getchar() ;
return x ;
} int n, k;
const int maxn = 88 ;
int dis[maxn][maxn] ;
int dp[11][maxn] ;
int main() {
n = read() , k = read() ;
for(int i = 1 ; i <= n ; i ++)
for(int j = 1 ; j <= n ; j ++)
dis[i][j] = read() ;
int seed = 0 ;
for(char c : "sooketxdy")
seed = seed * 233 + c ;
srand(seed) ;
int times = 5000 ;
std :: vector < int > col(n + 1 , 0);
int ans = 1e9 ;
while(times --) {
for(int i = 1 ; i <= n ; i ++)
col[i] = rand() & 1 ;
memset(dp , 0x3f , sizeof(dp)) ;
dp[0][1] = 0;
for(int kk = 0 ; kk < k ; kk ++)
for(int i = 1 ; i <= n ; i ++)
for(int j = 1 ; j <= n ; j ++)
if(col[i] ^ col[j]) dp[kk + 1][j] = std :: min(dp[kk + 1][j] , dp[kk][i] + dis[i][j]) ;
ans = std :: min(ans , dp[k][1]) ;
}
printf("%d" , ans) ;
return 0 ;
}

CF1310D Tourism的更多相关文章

  1. HDU 4049 Tourism Planning(动态规划)

    Tourism Planning Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. 三维重建项目:Photo Tourism: Exploring Photo Collections in 3D

    项目地址:http://phototour.cs.washington.edu/ Photo Tourism是华盛顿大学的SFM重建的过程 Paper:Photo Tourism: Exploring ...

  3. hdu 4049 Tourism Planning [ 状压dp ]

    传送门 Tourism Planning Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  4. [CCC​2019] Tourism题解

    我们先考虑一下拿部分分: subtask1 考虑因为 \(n < 2k\) ,那么我们的划分一定是从中间某个地方裁开,且满足 \(k\) 的条件的,我们发现当划分点在 \([n\ mod\ k, ...

  5. BZOJ3836 : [Poi2014]Tourism

    对于一个连通块,取一个点进行dfs,得到一棵dfs搜索树,则这棵树的深度不超过10,且所有额外边都是前向边. 对于每个点x,设S为三进制状态,S第i位表示根到x路径上深度为i的点的状态: 0:选了 1 ...

  6. Tourism Planning(HDU 4049状压dp)

    题意:n个朋友去游览m个城市,给出每个人对每个城市的兴趣值,和每人去每个城市的花费,如果两人在一个城市有一个价值,若多于2人这这个价值是任意两人产生价值的总和.在去每个城市的过程中人可以随便离开,也可 ...

  7. pyspider爬取tourism management 所有文章的标题 作者 摘要 关键词等等所有你想要的信息

    #!/usr/bin/env python # -*- encoding: utf-8 -*- # vim: set et sw=4 ts=4 sts=4 ff=unix fenc=utf8: # C ...

  8. BZOJ3836 [Poi2014]Tourism 【树形dp +状压dp】

    题目链接 BZOJ3836 题解 显然这是个\(NP\)完全问题,此题的解决全仗任意两点间不存在节点数超过10的简单路径的性质 这意味着什么呢? \(dfs\)树深度不超过\(10\) \(10\)很 ...

  9. 状态压缩DP----HDU4049 Tourism Planning

    状态压缩动态规划感觉都不是那么好写,看网上的人说这题是2011年ACM/ICPC中的水题,暗地里感觉很是惭愧啊(花了将近4个小时),结果还算是勉勉强强地弄出来了. 与往常一样,先说说题目的意思和思路, ...

随机推荐

  1. linux--->redis php扩展安装

    阿里云centos6.9下 redis php扩展安装 下载phpredis wget http://pecl.php.net/get/redis-3.1.0.tgz 或 wget https://g ...

  2. 痞子衡嵌入式:嵌入式里堆栈原理及其纯C实现

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式里堆栈原理及其纯C实现. 今天给大家分享的这篇还是2016年之前痞子衡写的技术文档,花了点时间重新编排了一下格式.栈这种结构在嵌入式 ...

  3. apache 目录网站显示indexs

    Apache Options Indexes FollowSymLinks详解 第一种方法 <Directory "E:\myvirtualhost\localhost"&g ...

  4. MGR安装

    二.环境准备 主机名 IP地址 角色 node2.com 172.16.8.101 primary node3.com 172.16.8.53 seconde node3.com 172.16.8.6 ...

  5. springboot-mybatis配置问题

    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题

  6. 5.场景3:高可用性使用分布式虚拟路由(DVR)

    这个场景描述了使用ML2插件和Open vSwitch的OpenStack网络服务的高可用性分布式虚拟路由(DVR)实现.示例配置创建了一个Flat外部网络和一个VXLAN项目(租户)网络.然而,这种 ...

  7. 实验8:路由器IOS升级2

    IOS 升级 在介绍CISCO路由器IOS升级方法前,有必要对Cisco路由器的存储器的相关知识作以简单介绍.路由器与计算机相似,它也有内存和操作系统.在Cisco路由器中,其操作系统叫做互连网操作系 ...

  8. cpu负载高简单排查思路

    首先通过uptime查看系统负载,然后使用mpstat结合pidstat来初步判断到底是cpu计算量大还是进程争抢过大或者是io过多,接着使用vmstat分析切换次数,以及切换类型,来进一步判断到底是 ...

  9. MySQL8.0数据库基础教程(二)-理解"关系"

    1 SQL 的哲学 形如 Linux 哲学一切都是文件,在 SQL 领域也有这样一条至理名言 一切都是关系 2 关系数据库 所谓关系数据库(Relational database)是创建在关系模型基础 ...

  10. webdriver高级应用 -更改一个对象界面的属性值

    #-*- coding=utf-8 -*- #更改一个对象界面的属性值 from selenium import webdriver import unittest def addAttribute( ...