P5068 [Ynoi2015]我回来了

传送门

解锁成就:ynoi的题目都做到过原题
因为\(n\)很小,我们可以用\(sss[u][i]\)表示到点\(u\)的距离不超过\(i\)的点的集合,这个可以用bitset存,然后先一遍bfs,再做一个前缀和就可以处理好了
询问的话,把所有的\(sss\)并起来,然后求一下里面\(1\)的个数就好了
顺便一提,这题存图得用vector不能用前向星,据说是因为连续访问内存会比较快(我这辈子第一次见到有人卡前向星的orz)

//minamoto
#include<bits/stdc++.h>
#define R register
#define inf 0x3f3f3f3f
#define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){R int res,f=1;R char ch;while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');return res*f;
}
char sr[1<<21],z[20];int C=-1,Z=0;
inline void Ot(){fwrite(sr,1,C+1,stdout),C=-1;}
void print(R int x){if(C>1<<20)Ot();if(x<0)sr[++C]='-',x=-x;while(z[++Z]=x%10+48,x/=10);while(sr[++C]=z[Z],--Z);sr[++C]='\n';
}
const int N=1005;
int dis[N][N],q[N],n,m,h,t,u,v,Q,k;bitset<N>sss[N][N],ans;vector<int>mp[N];
void bfs(int S,int *dis){fp(i,1,n)dis[i]=inf;q[h=t=1]=S,dis[S]=0;while(h<=t){u=q[h++];fp(i,0,mp[u].size()-1){v=mp[u][i];if(dis[v]==inf)dis[v]=dis[u]+1,q[++t]=v;}}fp(i,1,n)if(dis[i]!=inf)sss[S][dis[i]].set(i);fp(i,1,n)sss[S][i]|=sss[S][i-1];
}
int main(){
//  freopen("testdata.in","r",stdin);n=read(),m=read(),Q=read();fp(i,1,m)u=read(),v=read(),mp[u].push_back(v),mp[v].push_back(u);fp(i,1,n)bfs(i,dis[i]);while(Q--){k=read(),ans.reset();while(k--){u=read(),v=read();if(v>n)v=n;ans|=sss[u][v];}print(ans.count());}return Ot(),0;
}

转载于:https://www.cnblogs.com/bztMinamoto/p/10105241.html

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

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

相关文章

U盘安装centos 7 提示 “Warning: /dev/root does not exist, could not boot” 解决办法

安装centos 7时提示 “Warning: /dev/root does not exist, could not boot” 这个问题是没有找到你的U盘&#xff0c;这个配置是需要在上一步需要完成的&#xff0c;但在上一步我们并不知道U盘的文件名&#xff0c;所以索性在这一步查看一下U盘的设备名&#xff0c;然后再回到…

bzoj 3585 mex

Written with StackEdit. 题目描述 有一个长度为\(n\)的数组\({a_1,a_2,...,a_n}\)。\(m\)次询问&#xff0c;每次询问一个区间内最小没有出现过的自然数。 Input 第一行\(n,m\)。 第二行为\(n\)个数。 从第三行开始&#xff0c;每行一个询问\(l,r\)。 Output 一行一个数&#…

ffmpeg转mp4格式

FFMPEG -i uploadfile/video/test.wmv -c:v libx264 -strict -2 uploadfile/mp4/test.mp4FFMPEG -i uploadfile/video/test.wmv -c:v libx264 -strict -2 -s 1280x720 -b 1000k uploadfile/mp4/test.mp4

(笔记)网络技术学习交流会

1、网络工程师发展历程 &#xff08;1&#xff09;网络管理员阶段 ①计算机硬件的维护 ②计算机系统的维护 ③局域网的维护 ④打印服务的维护 ⑤业务数据的管理&#xff08;更新、备份&#xff09; ⑥网站的维护&#xff08;在网站上进行更新&#xff09; ⑦在网络上对公司进行…

CentOS 6服务器简单安全配置

1. 禁用不使用的用户 注意&#xff1a;不建议直接删除&#xff0c;当你需要某个用户时&#xff0c;自己重新添加会很麻烦。也可以usermod -L或passwd -l user锁定。 cp /etc/passwd{,.bak}修改之前先备份 vi /etc/passwd编辑用户&#xff0c;在前面加上#注释掉此行 注释的用…

【原创】大叔经验分享(6)Oozie如何查看提交到Yarn上的任务日志

通过oozie job id可以查看流程详细信息&#xff0c;命令如下&#xff1a; oozie job -info 0012077-180830142722522-oozie-hado-W 流程详细信息如下&#xff1a; Job ID : 0012077-180830142722522-oozie-hado-W -----------------------------------------------------------…

Beta 冲刺(3/7)

Beta 冲刺&#xff08;3/7&#xff09; Beta 冲刺 &#xff08;3/7&#xff09; 队名&#xff1a;第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬&#xff08;组长&#xff09; 过去两天完成了哪些任务 文字/口头描述 参与开发关键词提醒部分展示G…

vuex的理解

首先需要了解vuex的基本概念和使用方式&#xff0c;vue的官网也有很详细的说明或者浏览&#xff1a;https://zhuanlan.zhihu.com/p/24357762。vue是单页应用所以当页面刷新时vuex的数据随之也被清空了&#xff0c;如何实现页面被刷新而数据没有被清空呢&#xff1f;vuex主要是v…

Redis高可用sentinel

1.sentine介绍 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案&#xff0c;当用Redis做Master-slave的高可用方案时&#xff0c;假如master宕机了&#xff0c;Redis本身(包括它的很多客户端)都没有实现自动进行主备切换&#xff0c;而Redis-sentinel本身也是一个独立运行…

关于eclipse web项目认不到用户库的问题

解决方法&#xff1a; 选中项目右键属性&#xff0c;弹出对话框&#xff0c;选择Deployment Assembly&#xff0c;设置用户库对应路径。

Python中 类和对象调用其他类中的变量和方法

class house_item: def __init__(self,name,area): self.namename self.areaarea def __str__(self): return "%s,\n面积是%.2f" % (self.name,self.area)class house: def __init__(self,house_type,house_area): self.typeho…

201771010109焦旭超《面向对象程序设计(java)》第十六周学习总结

1、实验目的与要求 (1) 掌握线程概念&#xff1b; (2) 掌握线程创建的两种技术&#xff1b; (3) 理解和掌握线程的优先级属性及调度方法&#xff1b; (4) 掌握线程同步的概念及实现技术&#xff1b; 2、实验内容和步骤 实验1&#xff1a;测试程序并进行代码注释。 测试程序1&am…

Hibernate hql getHibernateTemplate()常用方法汇总

getHibernateTemplate()常用方法 一、find(String queryString); 示例&#xff1a; Java代码 this.getHibernateTemplate().find("from bean.User"); 返回所有User对象 二、find(String queryString , Object value); 示例&#xff1a; Java代码 this.getHib…

ASP.NET操作DataTable各种方法总结(给Datatable添加行列、DataTable选择排序等)

using System; using System.Collections.Generic; using System.Data; using System.Text;namespace Gzcms.Common {public class CreateTable{public static DataTable getTable(){//1.创建 datatable DataTable dt new DataTable("datatable");//可以给表创建一…

csvn下载地址

csvn下载地址&#xff1a;https://ctf.open.collab.net/sf/go/projects.svnedge/wiki

封装jquery的ajax,便于加载等待提示框

先贴上代码。传入4给参数&#xff0c;保证post&#xff0c;get都能执行&#xff0c;和普通的ajax区别在于添加了设置的timeout。并在每一次的发送接收请求后执行dialog&#xff08;&#xff09;方法。function AjaxRequest(apiUrl, method, param, callback) {$.ajax({url: api…

nginx+tomcat7+memcached

tomcat/conf/server.xml下Context标签下添加 <Manager className"de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes"n1:127.0.0.1:11211" sticky"false" lockingMode"auto" …

c# Brush、Color、String相互转换

using System.Windows.Media; 1、String转换成Color Color color (Color)ColorConverter.ConvertFromString(string); 2、String转换成Brush BrushConverter brushConverter new BrushConverter(); Brush brush (Brush)brushConverter.ConvertFromString(string)…

jSignature使用方法

一、初始画布var arguments { width: 100%, height: 100%, color:#000, "decor-color": "transparent",//去除默认画布上那条横线 lineWidth: 3 }; $("#signature")…

修改gitignore 后不起作用

git rm -r --cached .git add .git commit -m update .gitignore转载于:https://www.cnblogs.com/php-no-2/p/10131903.html