[CSP-S模拟测试]:Tourist Attractions(简单图论+bitset)
题目描述
在美丽的比特镇一共有$n$个景区,编号依次为$1$到$n$,它们之间通过若干条双向道路连接。
$Byteasar$慕名来到了比特镇旅游,不过由于昂贵的门票费,他只能负担起$4$个景区的门票费。他可以在任意景区开始游览,然后结束在任意景区。
$Byteasar$的旅游习惯比较特殊,一旦他路过了一个景区,他就一定会进去参观,并且他永远不会参观同一个景区两次。所以他想知道,有多少种可行的旅游路线,使得他可以恰好参观$4$个景区呢?即,有多少条简单路径恰好经过了$4$个点。
输入格式
第一行包含两个整数$n$,表示景区的总数。
第$2$至第$n+1$行,每行一个长度为$n$的$01$字符串,第$i+1$行第$j$个字符为$0$表示$i$和$j$之间没有道路,为$1$表示有一条道路。
输入数据保证$(i,j)$的连接情况等于$(j,i)$的连接情况,且$(i,i)$恒为$0$。
输出格式
输出一行一个整数,即可行的路线总数。
样例
样例输入:
4
0101
1010
0101
1010
样例输出:
8
数据范围与提示
样例解释:
$8$条路线分别为:
$1\rightarrow 2\rightarrow 3\rightarrow 4$,$4\rightarrow 3\rightarrow 2\rightarrow 1$,
$2\rightarrow 3\rightarrow 4\rightarrow 1$,$1\rightarrow 4\rightarrow 3\rightarrow 2$,
$3\rightarrow 4\rightarrow 1\rightarrow 2$,$2\rightarrow 1\rightarrow 4\rightarrow 3$,
$4\rightarrow 1\rightarrow 2\rightarrow 3$,$3\rightarrow 2\rightarrow 1\rightarrow 4$。
数据范围:

题解
$\Theta(n^4)$搜索肯定死,我们考虑如何优化。
假设路径是$a\rightarrow b\rightarrow c\rightarrow d$,那么我们可以考虑枚举边$b\rightarrow c$,然后看有多少可行的$a,b$,所以边$b\rightarrow c$对答案的贡献即为$({deg}_b-1)\times ({deg}_c-1)-$经过$b\rightarrow c$这条边的三元环个数,这样我们就成功的优化到了$\Theta(n^3)$。
考虑接着优化,因为经过$b\rightarrow c$这条边的三元环个数就是跟$b,c$两个点都有连边的点的个数,所以我们可以用$bitset$优化,这样就拿到满分了。
时间复杂度:$\Theta(\frac{n^3}{k})$($k$根据评测机配置不同略有不同,大多情况下是$32$)。
期望得分:$100$分。
实际得分:$100$分。
代码时刻
#include<bits/stdc++.h>
using namespace std;
int n;
char ch[1501];
int du[1501];
bitset<1500> bit[1501];
bool Map[1501][1501];
long long ans;
int main()
{
int n;scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%s",ch+1);
for(int j=1;j<=n;j++)
if(ch[j]-'0')
du[i]+=(bit[i][j]=Map[i][j]=1);
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
ans+=Map[i][j]*((du[i]-1)*(du[j]-1)-(bit[i]&bit[j]).count());
printf("%lld",ans);
return 0;
}
rp++
[CSP-S模拟测试]:Tourist Attractions(简单图论+bitset)的更多相关文章
- 模拟测试—moq:简单一两句
		在Xunit的基础上,说话模拟测试. 假如我们有这样一个控制器里面有这样一个方法,如图 我们在对Bar测试得时候,如果测试未通过,错误有可能来至于Bar,也有可能错误来至于serverde Foo方法 ... 
- [CSP-S模拟测试]:城市游戏(图论+DP)
		题目传送门(内部题109) 输入格式 第一行,两个整数$n,m$. 接下来$m$行,每行三个整数$u,v,l$,描述了一条道路连接的两个路口的编号以及道路的长度. 输出格式 输出一行一个整数,为所求的 ... 
- [CSP-S模拟测试]:电压机制(图论+树上差分)
		题目描述 科学家在“无限神机”($Infinity\ Machine$)找到一个奇怪的机制,这个机制有$N$个元件,有$M$条电线连接这些元件,所有元件都是连通的.两个元件之间可能有多条电线连接.科学 ... 
- [CSP-S模拟测试]:木叶下(图论)
		题目传送门(内部题77) 输入格式 第一行一个整数$n$,表示原先的树的点数接下来$n-1$行每行两个整数$a,b$,表示原先的树上的$n-1$条边,保证这$n-1$条边形成一棵树. 接下来一行一个整 ... 
- 联赛模拟测试17  A. 简单的区间 启发式合并
		题目描述 分析 我们要找的是一段区间的和减去该区间的最大值能否被 \(k\) 整除 那么对于一段区间,我们可以先找出区间中的最大值 然后枚举最大值左边的后缀与最大值右边的前缀之和是否能被 \(k\) ... 
- 联赛模拟测试22  D. 简单计算
		题目描述 分析 \(\sum_{i=0}^p[(p|qi)?0:1]=\sum_{i=0}^p[(p/gcd(p,q)|qi/gcd(p,q))?0:1]=\sum_{i=0}^p[(p/gcd(p, ... 
- 比特镇旅游(Tourist Attractions)【暴力+Bitset  附Bitset用法】
		Online Judge:NOIP2016十连测第一场 T2 Label:暴力,Bitset 题目描述 在美丽的比特镇一共有n个景区,编号依次为1到n,它们之间通过若干条双向道路连接. Byteasa ... 
- csp-s模拟48,49 Tourist Attractions,养花,画作题解
		题面:https://www.cnblogs.com/Juve/articles/11569010.html Tourist Attractions: 暴力当然是dfs四层 优化一下,固定两个点,答案 ... 
- [考试反思]1109csp-s模拟测试106:撞词
		(撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ... 
随机推荐
- python判断字符串是否是json格式方法分享
			python判断字符串是否是json格式方法分享 在实际工作中,有时候需要对判断字符串是否为合法的json格式 解决方法使用json.loads,这样更加符合'Pythonic'写法 代码示例: ... 
- Linux 路由表详解及 route 命令详解
			参考资料 Linux 内核的路由表 通过 route 命令查看 Linux 内核的路由表: [root@VM_139_74_centos ~]# route Kernel IP routing tab ... 
- VS代码自动补全功能
			VS代码自动补全功能 新建工程后,依次打开 工具>>代码段管理器>>选择C++>>点击 添加(A)...按钮 ,设置你的代码块的目录 复制以下代码并存为note.s ... 
- IIS网站绑定域名
			你新建的网站右键-->编辑绑定-->添加 -->类型:http,IP地址:全部未分配,端口号:80,主机名:你的域名,例如yangche.cn-->确定 
- .net 项目中cookie丢失解决办法
			创建cookie的时候 HttpCookie PdaCookie = new HttpCookie("Pda");PdaCookie ["PdaId"] = 1 ... 
- React后台管理手动封装图片上传组件
			分为两个文件夹,index.js(逻辑文件) styled.js(样式文件) index.js文件,编写完成之后在对应的地方引入即可 import React from "react&quo ... 
- [Python3 填坑] 013 几个类相关函数的举例
			目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 issubclass() 2.2 isinstance() 2.3 hasattr() 2.4 getattr() 2.5 setatt ... 
- webpack的code spliting与chunks
			webpack的code spliting与chunks :https://blog.csdn.net/liuqi332922337/article/details/53020992 
- 复制书稿 (dp+贪心)
			[题目描述] 现在要把m本有顺序的书分给k个人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如不能把第一.第三和第四本书给同一个人抄写 ... 
- 【JAVA】 05-String类和JDK5
			链接: 笔记目录:毕向东Java基础视频教程-笔记 GitHub库:JavaBXD33 目录: <> <> 内容待整理: API-String 特点 String类: 1.St ... 
