网站建设的实验心得,wordpress做一个视频网站吗,wordpress 怎么启动,网站设计红色表示什么传送门 解锁成就#xff1a;ynoi的题目都做到过原题 因为\(n\)很小#xff0c;我们可以用\(sss[u][i]\)表示到点\(u\)的距离不超过\(i\)的点的集合#xff0c;这个可以用bitset存#xff0c;然后先一遍bfs#xff0c;再做一个前缀和就可以处理好了 询问的话#xff0c;把…传送门 解锁成就ynoi的题目都做到过原题 因为\(n\)很小我们可以用\(sss[u][i]\)表示到点\(u\)的距离不超过\(i\)的点的集合这个可以用bitset存然后先一遍bfs再做一个前缀和就可以处理好了 询问的话把所有的\(sss\)并起来然后求一下里面\(1\)的个数就好了 顺便一提这题存图得用vector不能用前向星据说是因为连续访问内存会比较快我这辈子第一次见到有人卡前向星的orz //minamoto
#includebits/stdc.h
#define R register
#define inf 0x3f3f3f3f
#define fp(i,a,b) for(R int ia,Ib1;iI;i)
#define fd(i,a,b) for(R int ia,Ib-1;iI;--i)
using namespace std;
char buf[121],*p1buf,*p2buf;
inline char getc(){return p1p2(p2(p1buf)fread(buf,1,121,stdin),p1p2)?EOF:*p1;}
int read(){R int res,f1;R char ch;while((chgetc())9||ch0)(ch-)(f-1);for(resch-0;(chgetc())0ch9;resres*10ch-0);return res*f;
}
char sr[121],z[20];int C-1,Z0;
inline void Ot(){fwrite(sr,1,C1,stdout),C-1;}
void print(R int x){if(C120)Ot();if(x0)sr[C]-,x-x;while(z[Z]x%1048,x/10);while(sr[C]z[Z],--Z);sr[C]\n;
}
const int N1005;
int dis[N][N],q[N],n,m,h,t,u,v,Q,k;bitsetNsss[N][N],ans;vectorintmp[N];
void bfs(int S,int *dis){fp(i,1,n)dis[i]inf;q[ht1]S,dis[S]0;while(ht){uq[h];fp(i,0,mp[u].size()-1){vmp[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);nread(),mread(),Qread();fp(i,1,m)uread(),vread(),mp[u].push_back(v),mp[v].push_back(u);fp(i,1,n)bfs(i,dis[i]);while(Q--){kread(),ans.reset();while(k--){uread(),vread();if(vn)vn;ans|sss[u][v];}print(ans.count());}return Ot(),0;
} 转载于:https://www.cnblogs.com/bztMinamoto/p/10105241.html