SPOJ16636 Journey IE2

更好的阅读体验

在Byteland有n个城市,编号从1到n。这些城市由m条双向道路网络连接。众所周知,每一对城市最多只能由一条道路连接。

Byteman最近承认,他喜欢某些城市多于其他城市。更确切地说,他在数字为1到k的城市中花费的时间特别多,所以在每次旅行中,他至少要访问其中的每个城市一次。

Byteman的旅程是一个由d个城市组成的序列,使得每一对连续的城市都由一条道路连接。旅程可以在任何城市开始和结束。你的任务是计算Byteman可以围绕Byteland进行的不同旅程的数量。因为这个数字可能相当大,所以只需找到1e9+9的模数即可。

  • 题目来源:SPOJ16636 Journey IE2
  • 算法一:
    • 我会暴力!
    • 复杂度 \(O(nd)\) 期望得分20
  • 算法二:
    • 在之前基础上特判k=0 DP+矩阵优化
    • 设 \(f(i,j)\) 为 \(i\) 时刻在城市 \(j\) 的方案数,然后矩阵乘法优化
    • 复杂度 \(O(n^3\log_2d)\) 期望得分30
  • 算法三:
    • 对于测试点3、4 状压DP
    • DP 时除了记录当前点,再记录关键城市是否到过
    • 我故意把这几个点的数据做得较水,应该能过
    • 复杂度 \(O(dnm \times 2^k)\) 期望得分50
  • 算法四:
    • DP+矩阵优化+容斥
    • 同算法2 的DP,先暂且不理k 个重要城市,构建矩阵
    • 用容斥解决重要城市的问题,由于 \(k\) 最多只有 \(7\),所以 \(2k\) 枚举重要城市{可以经过/强制不能经过},强制不能经过只需在构建矩阵时无视与这个城市相连的边就行了
    • 最后 ans=f 强制关闭0 个重要城市-f 强制关闭1 个重要城市+f 强制关闭2 个重要城市-f 强制关闭3 个重要城市 +... ...
    • 复杂度 \(O(n^3\log_2d \times 2k)\) 期望得分100
  • 算法五:
    • 这个位置留给大家了
    • 我的算法在SPOJ 上总运行时间17.24s 垫底,rank1 的运行时间1.75s
    • 所以我的做法显然不是标准算法

SPOJ16636 Journey IE2的更多相关文章

  1. CF721C. Journey[DP DAG]

    C. Journey time limit per test 3 seconds memory limit per test 256 megabytes input standard input ou ...

  2. POJ2488A Knight's Journey[DFS]

    A Knight's Journey Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 41936   Accepted: 14 ...

  3. CF #374 (Div. 2) C. Journey dp

    1.CF #374 (Div. 2)    C.  Journey 2.总结:好题,这一道题,WA,MLE,TLE,RE,各种姿势都来了一遍.. 3.题意:有向无环图,找出第1个点到第n个点的一条路径 ...

  4. POJ2488-A Knight's Journey(DFS+回溯)

    题目链接:http://poj.org/problem?id=2488 A Knight's Journey Time Limit: 1000MS   Memory Limit: 65536K Tot ...

  5. codeforces 721C C. Journey(dp)

    题目链接: C. Journey time limit per test 3 seconds memory limit per test 256 megabytes input standard in ...

  6. A Knight's Journey 分类: POJ 搜索 2015-08-08 07:32 2人阅读 评论(0) 收藏

    A Knight's Journey Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 35564 Accepted: 12119 ...

  7. HDOJ-三部曲一(搜索、数学)- A Knight's Journey

    A Knight's Journey Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) ...

  8. 【推公式】UVa 10995 - Educational Journey

    1A~,但后来看人家的代码好像又写臭了,T^T... Problem A: Educational journey The University of Calgary team qualified f ...

  9. poj 3544 Journey with Pigs

    Journey with Pigs Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3004   Accepted: 922 ...

随机推荐

  1. Ubuntu 16.04 NVidia显卡 输入密码后 重复出现登录界面

    问题根源:显卡驱动 解决办法: CTRL+ALT+F1 # 切换到命令行 sudo service lightdm stop  # 关闭桌面显示管理器 sudo apt-get remove --pu ...

  2. 紫色飞猪的研发之旅--06go自定义状态码

    在实际开发中,需要前后端需要协商状态码,状态码用于后端返前端时使用.在一个团队中,定义的状态码讲道理应该是一致的,项目开始的起始阶段状态码应该是定义了个七七八八的,随着功能的叠加而不断增加.此系列将围 ...

  3. 20201219 u,v,w

    开考前刚起床,所以一边考一边吃饭,然后整场都很迷... A. u 考场 半天才搞懂"下三角区域"指哪个区域,手模样例确认后打了 \(O(qn^2)\) 的裸暴力,然后就不会做了. ...

  4. Python - 面向对象编程 - 实战(6)

    需求 设计一个培训机构管理系统,有总部.分校,有学员.老师.员工,实现具体如下需求: 有多个课程,课程要有定价 有多个班级,班级跟课程有关联 有多个学生,学生报名班级,交这个班级对应的课程的费用 有多 ...

  5. www迁移

    www迁移主要就是2部分: 1)官网页面架构,即 ./drupal/index.php 2)官网图片,即 ./drupal/assets/ 目录下的文件 1. 在ubuntu上搭建基础v1.0环境 2 ...

  6. 尚硅谷Java基础学习笔记

    综述: Java学习图谱: 常见dos命令: 操作案例: Java语言的特点: 面向对象 两个基本概念:类.对象 三个基本特性:封装.继承.多态 健壮性.可继承性 write once,run any ...

  7. Maven项目之间关系介绍

    Maven项目之间的关系 依赖关系 单纯的项目A中需要项目B中的资源,将项目B打成Jar包被A依赖,此时项目A直接调用项目B中资源即可. 项目A和项目B此时形成最基本的依赖关系. 继承关系 需要场景: ...

  8. docker-compose 的使用和负载均衡的初探

    docker-compose 的使用和负载均衡的初探 前言 a. 本文主要为 Docker的视频教程 笔记. b. 环境为 CentOS 7.0 云服务器 c. 上一篇:Docker 私有仓库 1. ...

  9. [闻缺陷则喜]关于boost的想法

    公司有个大约2万行的项目,用到了boost,我想取消掉不用boost.理由:一,可理解性差,除了高手很难弄懂.二,类太多,光头文件就1万多.大点的团队四五个高手,每人用一个boost类.高手流失后,很 ...

  10. 利用 Nginx 搭建小型的文件服务器

    利用 Nginx 搭建小型的文件服务器 1.查看 Nginx 配置 android@localhost:/etc/nginx/conf.d$ nginx -hnginx version: nginx/ ...