T1.桥梁(bridges/restriction)

Subtask1:暴力,$O(n^2)$

 1 #include<cstdio>
 2 #include<algorithm>
 3 #define rep(i,l,r) for (int i=(l); i<=(r); i++)
 4 #define For(i,x) for (int i=h[x],k; i; i=nxt[i])
 5 using namespace std;
 6 
 7 const int N=100010;
 8 int n,m,u,v,d,cnt,T,op,x,y,q[N],vis[N],e[N],h[N],to[N<<1],nxt[N<<1],val[N<<1];
 9 
10 void add(int u,int v,int w){ to[++cnt]=v; nxt[cnt]=h[u]; val[cnt]=w; h[u]=cnt; }
11 
12 int bfs(int S,int w){
13     rep(i,1,n) vis[i]=0;
14     q[1]=S; vis[S]=1; int st=0,ed=1;
15     while (st!=ed){
16         int x=q[++st];
17         For(i,x) if (e[val[i]]>=w && !vis[k=to[i]]) vis[k]=1,q[++ed]=k;
18     }
19     return ed;
20 }
21 
22 int main(){
23     freopen("restriction.in","r",stdin);
24     freopen("restriction.out","w",stdout);
25     scanf("%d%d",&n,&m);
26     rep(i,1,m) scanf("%d%d%d",&u,&v,&d),e[i]=d,add(u,v,i),add(v,u,i);
27     for (scanf("%d",&T); T--; ){
28         scanf("%d%d%d",&op,&x,&y);
29         if (op==1) e[x]=y; else printf("%d\n",bfs(x,y));
30     }
31     return 0;
32 }
13pts

相关文章:

  • 2022-12-23
  • 2021-12-09
  • 2021-08-01
  • 2021-08-03
  • 2021-12-14
  • 2022-12-23
  • 2021-09-01
猜你喜欢
  • 2022-12-23
  • 2021-09-19
  • 2021-10-17
  • 2021-10-12
  • 2022-12-23
  • 2021-11-16
  • 2021-08-30
相关资源
相似解决方案