牛客挑战赛47 C 条件(Floyd bitset优化)

牛客挑战赛47 C 条件
在这里插入图片描述
思路:首先我们要两个图,一个是一定能到达的,一个是可能到达的,如果我们使用floyd (n^3)就有可能会超时,因为只要求询问能否到达,所以权值只有0和1,那我们可以使用bitset来优化floyd算法的最后一维,第一维是枚举中间节点,第二维是枚举起点,第三维就是枚举终点,我们要优化的就是终点。(思路参考牛客挑战赛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;
//const double pi=acos(-1);
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()
{iosint t=1;//cin>>t;while(t--){sovle();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Educational Codeforces Round 81 (Rated for Div. 2) C. Obtain The String 序列自动机

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你两个串s,ts,ts,t&#xff0c;每次可以取sss串的一个子序列&#xff0c;问你最少取多少次子序列&#xff0c;将这些子序列拼起来能得到ttt。 思路&#xff1a; 发现我题解里面没写过序列自动机&#xf…

牛客练习赛75 D 减数游戏(队列优化(需要取模的)堆)

牛客练习赛75 D 减数游戏 思路:写一下式子可以发每次选择最小的两个数进行操作&#xff0c;最后得到的答案会是最大的&#xff0c;那我们可以将它放进一个最小堆中来维护&#xff0c;但是里面的数是需要取模的&#xff0c;当它取模的时候&#xff0c;将会变小。那我们可以用一…

C#规范整理·资源管理和序列化

源管理&#xff08;尤其是内存回收&#xff09;曾经是程序员的噩梦&#xff0c;不过在.NET平台上这个噩梦似乎已经不复存在。CLR在后台为垃圾回收做了很多事情&#xff0c;使得我们现在谈起在.NET上进行开发时&#xff0c;都会说还是new一个对象吧&#xff01;回收&#xff1f;…

Codeforces Round #615 (Div. 3) A-F

传送门 这场比较简单&#xff0c;简单的题就不说题意了。 A. 问加nnn个数&#xff0c;能否使a,b,ca,b,ca,b,c相等。 直接先加到相等再看看模333是否为000即可。 //#pragma GCC optimize(2) #include<cstdio> #include<iostream> #include<string> #incl…

使用Elasticsearch 构建 .NET 企业级搜索

最近几年出现的云计算为组织和用户带来了福音。组织对客户的了解达到前所未有的透彻&#xff0c;并能够采用个性化通信锁定客户。用户几乎可以随时随地获取其数据&#xff0c;使其更加易于访问和使用。为了存储所有这些数据&#xff0c;大型数据中心遍布全世界。但是&#xff0…

牛客练习赛73 D 离别(线段树+右端点排序离线查询)

牛客练习赛73 D 离别 思路: 对于每一个固定的右端点i&#xff0c;我们都找到一个区间&#xff08;l,r&#xff09;使得区间中的点为左端点时 里面最大的的种数为k。 这个可以用队列或者vector来维护。 然后我们对于q个查询&#xff0c;安装r从小到大排序。 开始遍历&#xff0…

Codeforces Round #617 (Div. 3) F. Berland Beauty 思维

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给定一棵树&#xff0c;再给定若干两点最短路之间边权的最小值&#xff0c;让你给树的边权赋值&#xff0c;使得满足给定的条件&#xff0c;如果不存在输出−1-1−1。 思路&#xff1a; 观察一个性质&…

书籍推荐:《More Effective C#》

很多年前看过Bill Wagner的《Effective C#》第一版&#xff0c;涵盖了C#2.0相关语言特性的最佳实践&#xff0c;教我们怎样更优雅地去编写C#代码&#xff0c;当时觉得受益匪浅。最近拿到了《More Effective C#》第二版&#xff0c;目前看了大概三分之二&#xff0c;让我对C#的的…

Codeforces Round #717 (Div. 2) D(倍增dp)

Codeforces Round #717 (Div. 2) D 题意:n个数 q个询问&#xff0c;每一个询问有l和r&#xff0c;问你l到r这段区间中最少能分成几段&#xff0c;每一段中的数都是互质的。 思路&#xff1a;首先预处理出每一个点向左走最多能走多远&#xff0c;可以分解质因数来找&#xff0c…

使用 docker 部署常用的开发环境

使用 docker 部署常用的开发环境Intro前段时间电脑之前返厂修了&#xff0c;所有的软件都要重新装一遍&#xff0c;很麻烦&#xff0c;既然用了 docker 有些环境就直接用 docker 部署了&#xff0c;免去了还要再下载软件重新安装的麻烦。部署 SqlServerdocker 部署 SqlServer 2…

Codeforces Round #617 (Div. 3) E2. String Coloring (hard version) 思维 + dp + Dilworth定理

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 让你给一个串染色&#xff0c;不同颜色且相邻的一对字符可以互换位置&#xff0c;用最少的颜色&#xff0c;使交换后这个字符串字典序最小。 思路&#xff1a; 考虑将字符串分成若干个非递减的子序列&…

Codeforces Round #716 (Div. 2) D(随机算法)

Codeforces Round #716 (Div. 2) D 题意:区间查询&#xff0c;问区间最少能分成几部分使得最多的数不超过总数的一半 向上取整。 思路:找到区间的总数s&#xff0c;如果不超过一半的话就是一部分。超过一半的话&#xff0c;那我们只要考虑超过一半的那一个数怎么组合&#xff…

Codeforces Round #716 (Div. 2) D. Cut and Stick 主席树 + 思维

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你个长为nnn的数组aaa&#xff0c;定义好的区间为这个区间中每个数出现的次数≤⌈n2⌉\le \left \lceil \frac{n}{2} \right \rceil≤⌈2n​⌉&#xff0c;定义划分为将这个区间的若干个子序列拿出来构成若…

如何从现在开始写博客?

在前不久知名博主《纯洁的微笑》在博客园分享了他写博客的心得&#xff0c;获得了读者圈的广泛共鸣&#xff0c;同时也引起了一些老生常谈的争议&#xff0c;这样的讨论在我们长沙.NET技术社区内部也经常发生。1、写博客的好处在《软技能代码之外的生存指南》这本书中&#xff…

牛客挑战赛30 C 小G砍树 换根dp+组合

链接&#xff1a;https://ac.nowcoder.com/acm/contest/18072/E 题目&#xff1a;给你一棵n个节点的带标号无根树。每次&#xff0c;你可以选择一个度数为1的节点并将它从树上移除。问总共有多少种不同的方式能将这棵树删到只剩 1 个点。两种方式不同当且仅当至少有一步被删除的…

换根dp求树所有节点的最小深度

链接&#xff1a;https://ac.nowcoder.com/acm/contest/18072/A 牛妹有一张连通图&#xff0c;由n个点和n-1条边构成&#xff0c;也就是说这是一棵树&#xff0c;牛妹可以任意选择一个点为根&#xff0c;根的深度为0&#xff0c;对于任意一个非根的点&#xff0c;我们将他到根节…

译 | 介绍全新 Microsoft.Data.SqlClient

原文&#xff1a;Diego翻译&#xff1a;Edi Wang本文由 SqlClient 和 SQL 服务器工具上的项目经理 Vicky Harp 撰写。那些一直密切关注 .NET 开发的人很可能看到 Scott Hunter 的最新博客文章&#xff0c;即《.NET Core 是 .NET 的未来》。.NET Framework 将重点转向稳定性&…

Codeforces Round #712 (Div. 2) F. Flip the Cards 思维 + 贪心

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你nnn张卡片&#xff0c;每张卡片正面写有数字aaa&#xff0c;反面写有数字bbb&#xff0c;[1,2∗n][1,2*n][1,2∗n]之间的整数在这些数字中都恰好出现一次&#xff0c;我们认为这nnn张牌是排好序的当且仅…

Linux下Jenkins与GitHub自动构建NetCore与部署

今天我们来谈谈NetCore在Linux底下的持续集成与部署。NetCore我就不多介绍了&#xff0c;持续集成用的是Jenkins&#xff0c;源代码管理器用的是GitHub。我们就跟着博文往下走吧。1.Linux环境在进行自动构建之前&#xff0c;我们需要一个可以运行的Linux环境&#xff0c;并保证…

[牛客] Tree-换根dp(预防加法取模导致等0)

链接&#xff1a;https://ac.nowcoder.com/acm/problem/19782 题目&#xff1a;修修去年种下了一棵树&#xff0c;现在它已经有n个结点了。 修修非常擅长数数&#xff0c;他很快就数出了包含每个点的连通点集的数量。 澜澜也想知道答案&#xff0c;但他不会数数…