【bitset】【推导】hdu5961 传递
<法一>http://blog.csdn.net/u014325920/article/details/53046890
1、判断传递的条件为:若G中有 一条边从a到b且有一条边从b到c ,则G中同样有一条边从a到c。
2、我们去枚举b,我们假设集合Sb={x|x−>b}表示有一条x指向b的边。我们假设集合Tb={x|b−>x},表示有有一条b指向x的边。
3、我们再去枚举Sb中的元素,假设我们当前枚举的是x,因为x是指向b的,所以我们根据题意容易得知该图是传递图的话一定满足:Tx∩Tb=Tb,然后就可以得出答案了,至于怎么处理集合的并,我们可以用bitset搞搞就可以了!!!具体看代码。
<法二>http://www.cnblogs.com/zarth/p/6671252.html

给出法一的代码
#include<cstdio>
#include<bitset>
using namespace std;
bitset<2030> S[2030];
int T,n;
char a[2030][2030];
int main(){
scanf("%d",&T);
for(;T;--T){
for(int i=1;i<=n;++i){
S[i].reset();
}
scanf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%s",a[i]+1);
}
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
if(a[i][j]=='P'){
S[i].set(j);
}
}
}
bool flag=1;
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
if(a[i][j]=='P'){
if((S[j]|S[i])!=S[i]){
flag=0;
goto OUT;
}
}
}
}
OUT:
if(!flag){
puts("N");
continue;
}
flag=1;
for(int i=1;i<=n;++i){
S[i].reset();
}
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
if(a[i][j]=='Q'){
S[i].set(j);
}
}
}
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
if(a[i][j]=='Q'){
if((S[j]|S[i])!=S[i]){
flag=0;
goto OUT2;
}
}
}
}
OUT2:
if(!flag){
puts("N");
}
else{
puts("T");
}
}
return 0;
}
【bitset】【推导】hdu5961 传递的更多相关文章
- HDU5961 传递
传递 因为文化课复习实在捉急qwq,题解就一切从简了qwq 简单说一说 上来一看这道题没看出来突破点在哪... 去HDU上看原题,发现原题是带样例的图解的,然鹅还是没找到思路(太菜了吧) 没办法看了一 ...
- python 函数的参数定义及调用
参数定义:1. 位置参数: 这是熟悉的标准化参数,位置参数必须在调用函数中定义的准确顺序来传递,在没有默认参数的情况下,传入参数 的精确数目必须和声明的数目一致. def foo(who, ...
- hdu_5961_传递(bitset)
题目链接:hdu_5961_传递 题意: 中文,不解释 题解: 上bitset卡常,很优美的就过去了 #include<bits/stdc++.h> #define F(i,a,b) fo ...
- POJ3275:Ranking the Cows(Bitset加速floyd求闭包传递)
Each of Farmer John's N cows (1 ≤ N ≤ 1,000) produces milk at a different positive rate, and FJ woul ...
- [CSP-S模拟测试]:传递(暴力+bitset)
题目描述 我们称一个有向图$G$是传递的,当且仅当对于图$G$的三个不同顶点$a,b,c$,若图$G$中有一条边从$a$到$b$且有一条边从$b$到$c$,那么图中也有一条边从$a$到$c$.我们称一 ...
- 分布式系列文章——Paxos算法原理与推导
Paxos算法在分布式领域具有非常重要的地位.但是Paxos算法有两个比较明显的缺点:1.难以理解 2.工程实现更难. 网上有很多讲解Paxos算法的文章,但是质量参差不齐.看了很多关于Paxos的资 ...
- RNN求解过程推导与实现
RNN求解过程推导与实现 RNN LSTM BPTT matlab code opencv code BPTT,Back Propagation Through Time. 首先来看看怎么处理RNN. ...
- bzoj1045 糖果传递
escription 老师准备了一堆糖果, 恰好n个小朋友可以分到数目一样多的糖果. 老师要n个小朋友去拿糖果, 然后围着圆桌坐好, 第1个小朋友的左边是第n个小朋友, 其他第i个小朋友左边是第i-1 ...
- 图说函数模板右值引用参数(T&&)类型推导规则(C++11)
见下图: 规律总结: 只要我们传递一个基本类型是A④的左值,那么,传递后,T的类型就是A&,形参在函数体中的类型就是A&. 只要我们传递一个基本类型是A的右值,那么,传递后,T的类型就 ...
随机推荐
- springmvc4处理get和post请求中文乱码问题
1.在springmvc4处理get和post请求的问题 参看大牛博客连接:https://blog.csdn.net/qq_41665356/article/details/80234392
- js_判断当前页面是否有网络和网络连接超时
2018-04-12 方法一:通过navigator.onLine属性判断,返回true为有联网状态,false为断网状态. //方法一 if(navigator.onLine) { console. ...
- html中的meta标签
1.定义 meta元素提供页面的原信息,位于文档头部 2.必须的属性 content属性 该属性提供名称/值对中的值,使用要与http-equiv或name属性一起使用 3.可选的属性 3.1.htt ...
- Mimikatz.ps1本地执行
PS C:\Users\hacker> Get-ExecutionPolicy Restricted PS C:\Users\hacker> Set-ExecutionPolicy Unr ...
- 前端—css
css css概述 CSS是Cascading Style Sheets的简称,中文称为层叠样式表,用来控制网页数据的表现,可以使网页的表现与数据内容分离. 一.css的四种引入方式: 1.行内式 ...
- 异步网络模块之aiohttp的使用(一)
异步网络模块之aiohttp的使用(一) 平时我们也许用的更多的是requests模块,或者是requests_hml模块,但是他们都属于阻塞类型的不支持异步,速度很难提高,于是后来出现了异步的gre ...
- 【UOJ224】短路
具体可以看UOJmyy的blog,orz 就是一个贪心. #include<bits/stdc++.h> typedef long long ll; using namespace std ...
- JavaScript中数组对象详解
Array对象即数组对象用于在单个变量中存储多个值,JS的数组是弱类型的,所以允许数组中含有不同类型的元素,数组元素甚至可以是对象或者其他数组. 创建数组的语法 1.Array构造器 1.var li ...
- MYSQL表中向SET类型的字段插入值时值之间不能有空格
MYSQL 中有一种数据类型是 SET,首先我们查看一个包含 SET 类型字段的表结构: 接下来我们向表中插入数据: 按照上面的语句插入数据发现报错了,于是去掉了插入值之间的空格,然后插入成功:
- Git----创建远程分支,并将文件上传到创建的远程分支上
1.首先创建一个远程仓库 2.将远程仓库克隆到本地 (1)本地新建文件夹,命令行进入文件夹,执行clone操作 (2) git clone git@github.com:Lucky-Syw/lucky ...