Luogu P5068 [Ynoi2015]我回来了
题目
Ynoi难得的水题。
首先我们可以\(O(n^2)\)地求出任意两点之间的距离。
然后我们可以\(O(n^3)\)地求出对于任意一个点\(u\),跟它距离\(\le d\)的点的集合。
然后对于每个询问,我们就可以直接把所有到\(x_i\)距离小于\(y_i\)的集合或起来,复杂度为\(O(n\sum\limits a)\)。
用bitset优化可以保证空间和时间复杂度的正确性。
#include<bits/stdc++.h>
#define pb push_back
using namespace std;
namespace IO
{
char ibuf[(1<<21)+1],obuf[(1<<21)+1],st[15],*iS,*iT,*oS=obuf,*oT=obuf+(1<<21);
char Get(){return (iS==iT? (iT=(iS=ibuf)+fread(ibuf,1,(1<<21)+1,stdin),(iS==iT? EOF:*iS++)):*iS++);}
void Flush(){fwrite(obuf,1,oS-obuf,stdout),oS=obuf;}
void Put(char x){*oS++=x;if(oS==oT)Flush();}
int read(){int x=0,c=Get();while(!isdigit(c))c=Get();while(isdigit(c))x=x*10+c-48,c=Get();return x;}
void write(int x){int top=0;if(!x)Put('0');while(x)st[++top]=(x%10)+48,x/=10;while(top)Put(st[top--]);Put('\n');}
}
using namespace IO;
const int N=1007,INF=0x3f3f3f3f;
int n,m,Q,dis[N][N];vector<int>E[N];queue<int>q;bitset<N>s[N][N],t;
void add(int u,int v){E[u].pb(v),E[v].pb(u);}
void bfs(int x)
{
dis[x][x]=0,q.push(x);
for(int u;!q.empty();)
{
u=q.front(),q.pop();
for(int v:E[u]) if(dis[x][v]==INF) dis[x][v]=dis[x][u]+1,q.push(v);
}
}
void init()
{
for(int u,v=1;u<=n;++u) for(v=1;v<=n;++v) if(dis[u][v]^INF) s[u][dis[u][v]][v]=1;
for(int u=1,d;u<=n;++u) for(d=1;d<=n;++d) s[u][d]|=s[u][d-1];
}
void work()
{
int a=read();t.reset();
for(int x,d;a;--a) x=read(),d=read(),t|=s[x][d];
write(t.count());
}
int main()
{
memset(dis,0x3f,sizeof dis),n=read(),m=read(),Q=read();
for(int i=1;i<=m;++i) add(read(),read());
for(int i=1;i<=n;++i) bfs(i);
init();
while(Q--) work();
return Flush(),0;
}
Luogu P5068 [Ynoi2015]我回来了的更多相关文章
- 【题解】Luogu P5068 [Ynoi2015]我回来了
众所周知lxl是个毒瘤,Ynoi道道都是神仙题,这道题极其良心,题面好评 原题传送门 我们先珂以在\(O(n^2)\)的时间内bfs求出任意两点距离 我们考虑如何计算从一个点到所有点的最短路长度小于等 ...
- [洛谷P5068][Ynoi2015]我回来了
题目大意:给你一张$n(n\leqslant10^3)$个点$m(m\leqslant10^5)$个点的无向无权图,多组询问,每次询问给你一些二元组$(x_i,y_i)$,求有多少个$u$于至少一个二 ...
- P5068 [Ynoi2015]我回来了
传送门 解锁成就:ynoi的题目都做到过原题 因为\(n\)很小,我们可以用\(sss[u][i]\)表示到点\(u\)的距离不超过\(i\)的点的集合,这个可以用bitset存,然后先一遍bfs,再 ...
- luoguP5068 [Ynoi2015]我回来了
https://www.luogu.org/problemnew/show/P5068 ynoi 中的良心题啊 考虑用 bitset 来维护里一个点距离小于 $ y_i $ 的点,那么答案就是一堆 b ...
- [Ynoi2015]我回来了
题目大意: 给定一张无向无权图,每次给定若干个二元组\((x_i,y_i)\),定义点\(u\)满足条件,当且仅当存在\(i\),并满足\(dist(u,x_i)\leqslant y_i\)(\(d ...
- 【题解】Luogu P5071 [Ynoi2015]此时此刻的光辉
众所周知lxl是个毒瘤,Ynoi道道都是神仙题,题面好评 原题传送门 一看这题没有修改操作就知道这是莫队题(我也只会莫队) 我博客里对莫队的简单介绍 一个数N可以分解成\(p_1^{c_1}p_2^{ ...
- 【题解】Luogu P5072 [Ynoi2015]盼君勿忘
众所周知lxl是个毒瘤,Ynoi道道都是神仙题,题面好评 原题传送门 一看这题没有修改操作就知道这是莫队题 我博客里对莫队的简单介绍 既然是莫队,我们就要考虑每多一个数或少一个数对答案的贡献是什么 假 ...
- Luogu P5072 [Ynoi2015]盼君勿忘
题意 给定一个长度为 \(n\) 的序列 \(a\) 和 \(m\) 次询问,第 \(i\) 次询问需要求出 \([l_i,r_i]\) 内所有子序列去重之后的和,对 \(p_i\) 取模. \(\t ...
- 【题解】Luogu P5313 僕たちはひとつの光([Ynoi2012]D2T2)
原题传送门 lovelive好评 比赛时只拿到了60pts,还是自己太菜了 这题的思想实际有点像Luogu P3674 小清新人渣的本愿与Luogu P5071 [Ynoi2015]此时此刻的光辉 这 ...
随机推荐
- beyond compare3 下载
强大的对比工具,有需要的可以访问以下网址下载. http://www.xfdown.com/soft/4967.html
- 访问zabbix首页无法正常登陆
访问: http://IP/zabbix/ (1) You should see the first screen of the frontend installation wizard. (2) 检 ...
- bilibili番剧评分爬虫
python选修课学习中练手写的,主要就是查询bilibili提供得api # -*- coding:utf-8 -*- import requests import json import csv ...
- 认识weblogic的各个机构
一.认识Weblogic中各个机构 WebLogic是一个企业级的应用服务器,包括j2ee中的各类应用,是jsp,servlet,ejb的容器.功能强大,为了更方便的管理weblogic的各个功能,从 ...
- 移动端隐藏scroll滚动条::-webkit-scrollbar
::-webkit-scrollbar {/*隐藏滚轮*/ display: none; } CSS3自定义滚动条样式 -webkit-scrollbar 前言 webkit支持拥有overflow属 ...
- window 下要运行php,需要编辑php环境变量
参考:https://blog.csdn.net/zhezhebie/article/details/72765262
- 十、封装assertResponse响应断言
一.assertNotNull介绍 assertNotNull(responseEntity.getBody());可判断报文是否为空 responseEntity为响应实体对象 二.assertEq ...
- Docker安装ElasticSearch 版本7.1.1
一.Docker 部署 ElasticSearch 1.从仓库中查找所有ElasticSearch的镜像 [root@iZwz99dhxbd6xwly17tb3bZ app]# docker sear ...
- js获取当前日期并格式yyy-MM-dd
//格式化日期:yyyy-MM-dd function formatDate(date) { var myyear = date.getFullYear(); var mymonth = date.g ...
- Coding Rules
c语言按行读取的时候,注意用fgets可以读一行,但默认会把换行符也读进去,使用scanf("%s")却不会.