logo AlgoBeat OnlineJudge
登录 注册

#10084. [Sleeping Cup #8] E. Extraordinary TSP Problem

内存限制:512 MiB 时间限制:2000 ms 输入文件:tsp.in 输出文件:tsp.out
题目类型:传统 评测方式:文本比较
上传者: 匿名

题目描述

注记:

由于评测机性能差异,本题的时间限制由 1 秒改为 2 秒。

作为提示, 中共有 个质数。

对于很大的 bool 类型数组(每个元素占用 字节),可以考虑使用 std::bitset(使用时需要包含 <bitset><bits/stdc++.h> 头文件)进行存储(每 个元素占用 字节)以节省空间。例如,可以使用 std::bitset <12345678> b 来定义一个大小为 ,名称为 bool 类型数组。

可以证明,在本题的数据范围下,答案不超过 。也就是说,你可以直接使用 位有符号整数(或 位无符号整数)进行运算。

Sleeping Hippo 是一个旅行商,现在他坐在 Bizy 国首都的火车站中。

Bizy 国有若干个城市,其中第一个城市是首都。

对于任意两个 Bizy 国的城市:

  • 若两个城市的编号中至少有一个数是质数,则它们存在一条双向的火车线路,票价为二者编号之差。
  • 否则,不存在往返于这两个城市的火车线路。

此外,为了促进贸易,对于任意一条火车线路:

  • 如果 Sleeping Hippo 没有搭乘过这个线路,则不需要买票。
  • 如果 Sleeping Hippo 搭乘过恰好一次这个线路,则需要买一张票,支付二者编号之差的票价。
  • 如果 Sleeping Hippo 搭乘过超过一次这个线路,则只需要买一张票,支付二者编号之差的票价。

现在 Sleeping Hippo 需要访问每个城市至少一次(此处认为 Sleeping Hippo 出发前就访问了首都),求他需要支付的票价之和的最小值。

给定一张 个结点(编号从 开始)的无向图,两个结点 之间有连边当且仅当 中至少有一个是质数,且该边的边权为

试求出该图的最小生成树的边权之和。(可以证明这张图是连通的。)

输入格式

一行一个正整数

输出格式

一行一个非负整数表示答案。

样例

样例输入 #1

1

样例输出 #1

0

样例输入 #2

2

样例输出 #2

1

样例输入 #3

3

样例输出 #3

2

样例输入 #4

4

样例输出 #4

3

样例输入 #5

5

样例输出 #5

4

样例输入 #6

6

样例输出 #6

5

样例输入 #7

7

样例输出 #7

6

样例输入 #8

8

样例输出 #8

7

数据范围与提示

样例解释

在所有的样例中,选取 的一条链作为生成树都是最优的,此时的答案为