题目大意:给你一张$n(n\leqslant10^3)$个点$m(m\leqslant10^5)$个点的无向无权图,多组询问,每次询问给你一些二元组$(x_i,y_i)$,求有多少个$u$于至少一个二元组满足:$dis(u,x_i)\leqslant y_i$

题解:对每个点跑一遍$bfs$,求出每个点到达其他点的距离,按距离前缀和一下(就是说变成小于等于这个距离是哪几个点),$f_{i,j}$表示到第$i$个点距离小于等于$j$的点有哪些,查询时把答案与$f_{x,y}$求个并集就行了,可以用$bitset$优化

复杂度:$O(\dfrac{n^3}{\omega})$,可以通过

卡点:用前向星存边被卡常,需要用$vector$(可能是因为边数较大,$vector$内存访问连续)

C++ Code:

#include <iostream>
#include <cstring>
#include <bitset>
#include <vector>
#define maxn 1024
#define maxm 100010
const int inf = 0x3f3f3f3f;std::vector<int> e[maxn];int n, m, Q;
std::bitset<maxn> v[maxn][maxn];
int d[maxn], q[maxn], h, t;
int MAXL[maxn];
void bfs(int S, std::bitset<maxn> *v) {memset(d, 0, sizeof d);q[h = t = 0] = S;while (h <= t) {int u = q[h++];v[d[u]].set(u);const std::vector<int>::iterator End = e[u].end();for (std::vector<int>::iterator it = e[u].begin(); it != End; ++it) {int v = *it;if (v != S && !d[v]) {d[v] = d[u] + 1;q[++t] = v;}}}const int M = d[q[t]];for (int i = 1; i <= M; i++) v[i] |= v[i - 1];MAXL[S] = M;
}int main() {std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);std::cin >> n >> m >> Q;for (int i = 0, a, b; i < m; i++) {std::cin >> a >> b;e[a].push_back(b);e[b].push_back(a);}for (int i = 1; i <= n; i++) bfs(i, v[i]);while (Q --> 0) {std::bitset<maxn> ans;int T;std::cin >> T;while (T --> 0) {int x, y;std::cin >> x >> y; if (y > MAXL[x]) y = MAXL[x];ans |= v[x][y];}std::cout << ans.count() << '\n';}return 0;
}

  

转载于:https://www.cnblogs.com/Memory-of-winter/p/10107555.html

[洛谷P5068][Ynoi2015]我回来了相关推荐

  1. 洛谷P5069 [Ynoi2015]纵使日薄西山(树状数组,set)

    洛谷题目传送门 一血祭 向dllxl致敬! 算是YNOI中比较清新的吧,毕竟代码只有1.25k. 首先我们对着题意模拟,寻找一些思路. 每次选了一个最大的数后,它和它周围两个数都要减一.这样无论如何, ...

  2. 洛谷P5071 [YNOI2015]此时此刻的光辉 莫队+玄学优化+卡常QWQ

    题目链接:传送门 在太阳西斜的这个世界里,置身天上之森.等这场战争结束之后,不归之人与望眼欲穿的众人, 人人本着正义之名,长存不灭的过去.逐渐消逝的未来.我回来了,纵使日薄西山,即便看不到未来,此时此 ...

  3. 洛谷P5072 [YNOI2015]盼君勿忘 莫队+unordered_set+毒瘤卡常

    在太阳西斜的这个世界里,置身天上之森.等这场战争结束之后,不归之人与望眼欲穿的众人, 人人本着正义之名,长存不灭的过去.逐渐消逝的未来.我回来了,纵使日薄西山,即便看不到未来,此时此刻的光辉,盼君勿忘 ...

  4. P5068 [Ynoi2015]我回来了

    传送门 解锁成就:ynoi的题目都做到过原题 因为\(n\)很小,我们可以用\(sss[u][i]\)表示到点\(u\)的距离不超过\(i\)的点的集合,这个可以用bitset存,然后先一遍bfs,再 ...

  5. 洛谷 - 试炼场(全部题目备份)

    整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...

  6. 洛谷P2904 [USACO08MAR]跨河River Crossing 动态规划

    洛谷P2904 [USACO08MAR]跨河River Crossing 动态规划 区间DP f[ i ] 表示 将 i 头牛 运了过去,然后John 又返回所需要的最少时间 1 #include & ...

  7. 2019.6.7 一场搜索专题的考试【including 洛谷·血色先锋队,入门OJ·兴建高铁,珠光宝气阁

    这次分数还好.但全是搜索题还没上200就有点打击人了--[本狸才177QAQ 血色先锋队/血色敢死队 传送门:洛谷P1332 & 入门OJ P2259 Description 邪魔天国领主复活 ...

  8. 专题·置换【including 置换,置换快速幂,洛谷·[HNOI2001]洗牌机

    前言:若您手中有一本<组合数学>,那么请翻到P330看书吧,书上讲的是真的好.本文也基本参考该书讲解] 本篇博客算是后期两周内会写的一篇关于Polya定理的专题的前置知识] 目录 一.置换 ...

  9. 洛谷P3336 [ZJOI2013]话旧 题解

    洛谷P3336 [ZJOI2013]话旧 题解 题目链接:P3336 [ZJOI2013]话旧 题意:小林跟着银河队选手去了一趟宇宙比赛,耳濡目染,变得学术起来.回来后,他发现世界大变样了.比丘兽究级 ...

最新文章

  1. tensorflow 入门
  2. 求助:谁可以给我点share point 开发的资料
  3. python交作业的格式_python作业4
  4. 计算机的教学中作用是什么,发挥计算机在教学中应有的作用
  5. springboot springmvc mybatis_12道重点的Spring Boot面试题,帮你整理好了!
  6. Fragment学习1--生命周期
  7. 修改数据库表数据的办法
  8. 如何让地面不起灰_地面不平能铺地板吗?木地板不平怎么修复
  9. 01-vue项目之滚动加载数据
  10. mysql安装包提示选项_Windows操作系统安装MySQL解压版
  11. Vmware里安装Ubuntu时由于分辨率问题,界面显示不全解决办法
  12. python shell清屏指令_Python Shell 怎样清屏?
  13. 知识改变命运 股市改变人生
  14. 一文搞定十大排序算法(细)
  15. ElasticSearch文档检索,分词、精确匹配、多条件
  16. 战旗三国一直显示连接服务器,原来战棋三国2可以这么玩,新手玩家可别错过了!...
  17. 【解决】client does not support authentication转载的两种解法
  18. 达人评测 i5-1155g7和i5-1235u选哪个 i51155g7和1235u差距
  19. 如何用python输出jpg_python怎么输出图片
  20. Python程序员经常会遇到文件权限问题,例如在打开或写入文件时出现“PermissionError: [Errno 13] Permission denied...

热门文章

  1. 工作中遇到的问题——数据库
  2. HTTP和RPC的区别?
  3. 我的六年软件测试感悟... 测试人的一生。算是摸透了软件测试这一行
  4. 计算机专业的英语文献,计算机专业英语论文参考文献集 计算机专业英语英语参考文献哪里找...
  5. php 扩展库 开发环境,PHP 扩展开发环境搭建
  6. 用jk触发器构成二分频电路_模拟电路,电子电路,二极管,放大电路
  7. xshell安装mysql步骤_xshell怎么搭建mysql
  8. mysql 日期 1970_Mysql中处理1970年前的日期(unixtime为负数的情况)负数时间戳格式化...
  9. 机器学习在植物病害识别研究中的应用
  10. stretchlim函数