生活随笔
收集整理的這篇文章主要介紹了
牛客挑战赛47 C 条件(Floyd bitset优化)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
牛客挑戰(zhàn)賽47 C 條件
思路:首先我們要兩個(gè)圖,一個(gè)是一定能到達(dá)的,一個(gè)是可能到達(dá)的,如果我們使用floyd (n^3)就有可能會超時(shí),因?yàn)橹灰笤儐柲芊竦竭_(dá),所以權(quán)值只有0和1,那我們可以使用bitset來優(yōu)化floyd算法的最后一維,第一維是枚舉中間節(jié)點(diǎn),第二維是枚舉起點(diǎn),第三維就是枚舉終點(diǎn),我們要優(yōu)化的就是終點(diǎn)。(思路參考牛客挑戰(zhàn)賽47的題解)
#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <bitset>
#include <cstdlib>
#define INF 0x3f3f3f3f3f3f3f3f
#define inf 0x3f3f3f3f
#define FILL(a,b) (memset(a,b,sizeof(a)))
#define re register
#define lson rt<<1
#define rson rt<<1|1
#define lowbit(a) ((a)&-(a))
#define ios std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);
#define fi first
#define rep(i,n) for(int i=0;(i)<(n);i++)
#define rep1(i,n) for(int i=1;(i)<=(n);i++)
#define se second
#define scd(a) scanf("%d",&a)
#define scdd(a,b) scanf("%d%d",&a,&b)
#define scddd(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define ac cout<<ans<<"\n"
using namespace std
;
typedef long long ll
;
typedef unsigned long long ull
;
typedef pair
<ll
,ll
> pii
;
int dx
[4]= {-1,1,0,0},dy
[4]= {0,0,1,-1};
const ll mod
=1e9+7;
const ll N
=1e3+10;
const double eps
= 1e-4;
int n
,m1
,m2
,q
;
bitset
<N
>a
[N
],b
[N
],c
[N
];
void sovle(){cin
>>n
>>m1
>>m2
>>q
;for(int i
=1;i
<=n
;i
++){a
[i
][i
]=1;}for(int i
=1;i
<=m1
;i
++) {int u
,v
;cin
>>u
>>v
;a
[u
][v
]=1;}for(int i
=1;i
<=m2
;i
++) {int u
,v
;cin
>>u
>>v
;b
[u
][v
]=1;}for(int i
=1;i
<=n
;i
++)for(int j
=1;j
<=n
;j
++){if(b
[i
][j
]) continue;else c
[i
][j
]=1;}for(int i
=1;i
<=n
;i
++)for(int j
=1;j
<=n
;j
++){if(a
[j
][i
]) a
[j
]|=a
[i
];if(c
[j
][i
]) c
[j
]|=c
[i
];}while(q
--){int u
,v
;cin
>>u
>>v
;if(a
[u
][v
]) cout
<<"Yes ";else cout
<<"No ";if(!c
[u
][v
]) cout
<<"No\n";else cout
<<"Yes\n";}
}int main()
{ios
int t
=1;while(t
--){sovle();}return 0;
}
總結(jié)
以上是生活随笔為你收集整理的牛客挑战赛47 C 条件(Floyd bitset优化)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。