-
个人简介
死亡不是结束,而是另一种开始。
#include<bits/stdc++.h> #define ll long long #define int ll #define L xd[x].l #define R xd[x].r #define mid (l+r>>1) #define lc L,l,mid #define rc R,mid+1,r #define OK Ll<=l&&r<=Rr #define Root 1,1,n #define rep(x,y,z) for(int x=(y);x<=(z);x++) #define per(x,y,z) for(int x=(y);x>=(z);x--) #define pb push_back #define ull unsigned ll #define e(x) for(int i=h[x],y=to[i];i;i=nxt[i],y=to[i]) #define E(x) for(auto y:p[x]) #define Pi pair<int,int> #define ui unsigned ll inline int read(){int s=0,w=1;char c=getchar();while(c<48||c>57) {if(c=='-') w=-1;c=getchar();}while(c>=48&&c<=57)s=(s<<1)+(s<<3)+c-48,c=getchar();return s*w;} inline void pf(ll x){if(x<0) putchar('-'),x=-x;if(x>9)pf(x/10);putchar(x%10+48);} const int N =2e5+5,M=5e6+5,inf=(1LL<<31)-1; const ll llf=1e18,mod=1e9+7; using namespace std; int T=read(),n,m,q,a[N]; struct edge{ int x,y,w; }e[N]; int s[N],tp,f[N],out[N]; inline int find(int x){ return f[x]==x?x:f[x]=find(f[x]); } struct node{ int s,t,w,id; }sol[N]; inline bool cmp(edge a,edge b){ return a.w<b.w; } inline bool Cmp(node c,node d){ return a[c.s]+c.w<a[d.s]+d.w; } signed main(){ while(T--){ n=read(),m=read(); rep(i,1,n)a[i]=read(),f[i]=i; rep(i,1,m)e[i].x=read(),e[i].y=read(),e[i].w=max(a[e[i].x],a[e[i].y]); sort(e+1,e+m+1,cmp); q=read(); rep(i,1,q)sol[i].s=read(),sol[i].t=read(),sol[i].w=read(),sol[i].id=i; sort(sol+1,sol+q+1,Cmp); int Ll=1; rep(i,1,q){ while(Ll<=m&&e[Ll].w<=a[sol[i].s]+sol[i].w)f[find(e[Ll].x)]=find(e[Ll].y),Ll++; out[sol[i].id]=(find(sol[i].s)==find(sol[i].t)); } rep(i,1,q)if(out[i])cout <<"Yes\n"; else cout <<"No\n"; cout <<'\n'; } return 0; }
Administrator [誓死坚守游戏下载_Until We Die中文版下载[策略游戏]-下载之家 (downza.cn)]
http://www.ddooo.com/softdown/200103.htm
next_permutation(a+1,a+1+n) 指针 - OI Wiki (oi-wiki.org) https://www.luogu.org https://www.luogu.com.cn/problem/P2483
#include using namespace std; const int MAXN=65535; const int INF=1000050; long long l,r; long long a,b,c,d,e,f; long long p[MAXN],num; bitset<INF>v; void ols(){ v.reset(); for(int i=2;i<=MAXN;i++){ if(!v[i])p[++num]=i; for(int j=1;j<=num;j++){ if(i*p[j]>MAXN)break; v[i*p[j]]=1; if(i%p[j]==0)break; } } } void ass(){ v.set(); for(long long i=1;i<=num;i++){ for(long long j=r/p[i];j>1&&p[i]*j>=l;j--)v[p[i]*j-l]=false; } } int main(){ ols(); while(cin>>l>>r){ if(l==1)l=2; ass(); a=-1000000,b=1000000,c=0,d=0,e=0,f=0; for(long long i=l;i<=r;i++){ if(v[i-l]){ e=f; f=i; if(e>0){ if(f-e<b-a)b=f,a=e; if(f-e<d-c)d=f,c=e; } } } if(a<0)puts("There are no adjacent primes."); else printf("%lld,%lld are closest, %lld,%lld are most distant.\n",a,b,c,d); } return 0; }
#include <iostream> #include <cstring> #include <algorithm> #include <queue> const int N = 1e5 + 9, M = 1e6 + 9; int n, m, s, tot; int head[N], dis[N]; bool vis[N]; struct Edge { int ver, edge, next; } g[M]; std::priority_queue < std::pair <int, int> > que; void add(int x, int y, int z) { g[++tot] = {y, z, head[x]}; head[x] = tot; } void Dijkstra() { memset(dis, 0x3F, sizeof dis); dis[s] = 0; que.push(std::make_pair(0, s)); while (!que.empty()) { int x = que.top().second; que.pop(); if (vis[x]) continue; vis[x] = true; for (int i = head[x]; i; i = g[i].next) { int y = g[i].ver, z = g[i].edge; if (dis[y] > dis[x] + z) { dis[y] = dis[x] + z; que.push(std::make_pair(-dis[y], y)); } } } } int main() { scanf("%d%d%d", &n, &m, &s); for (int i = 1, u, v, w; i <= m; i++) scanf("%d%d%d", &u, &v, &w), add(u, v, w); Dijkstra(); for (int i = 1; i <= n; i++) printf("%d ", dis[i]); return 0; }
-
通过的题目
- P82
- P83
- P84
- P89
- P92
- P93
- P94
- P98
- P100
- P101
- P102
- P103
- P104
- P105
- P106
- P108
- P109
- P110
- P115
- P117
- P119
- P122
- P129
- P130
- P131
- P152
- P153
- P154
- P158
- P159
- P160
- P161
- P162
- P169
- P172
- P224
- P243
- P244
- P260
- P265
- P266
- P267
- P268
- P297
- P298
- P299
- P300
- P301
- P302
- P304
- P306
- P308
- P314
- P317
- P321
- P326
- P334
- P335
- P342
- P345
- P355
- P368
- P370
- P377
- P387
- P388
- P413
- P414
- P416
- P417
- P429
- P434
- P436
- P443
- P501
- P593
- P594
- P595
- P596
- P597
- P598
- P599
- P600
- P602
- P603
- P604
- P605
- P607
- P610
- P611
- P612
- P613
- P614
- P615
- P616
- P617
- P618
- P620
- P639
- P642
- P646
- P650
- P654
- P661
- P664
- P665
- P670
- P680
- P693
- P694
- P699
- P701
- P705
- P719
- P737
- P745
- P761
- P778
- P790
- P791
- P827
- P829
- P834
- P864
- P877
- P904
- P911
- P921
- P930
- P931
- P932
- P973
- P986
- P987
- P1040
- P1074
- P1123
- P1127
- P1160
- P1161
- P1162
- P1166
- P1167
- P1184
- P1208
- P1213
- P1222
- P1226
- P1235
- P1245
- P1249
- P1250
- P1285
- P1305
- P1308
- P1310
- P1311
- P1324
- P1337
- P1348
- P1379
- P1380
- P1383
- P1388
- P1389
- P1475
- P1476
- P1477
- P1480
- P1494
- P1495
- P1512
- P1516
- P1524
- P1527
- P1528
- P1529
- P1534
- P1535
- P1551
- P1552
- P1553
- P1554
- P1555
- P1556
- P1557
- P1558
- P1564
- P1579
- P1580
-
最近活动
-
最近编写的题解
题目标签
- 基础问题
- 46
- 分支问题
- 42
- 简单循环
- 28
- 字符串
- 19
- 数组问题
- 13
- 动态规划
- 13
- 需要找规律的循环
- 12
- 数据结构
- 10
- 嵌套循环
- 7
- 搜索
- 6
- 深搜
- 6
- noip复赛
- 6
- 背包
- 6
- 树结构
- 6
- 递归
- 4
- 哈希
- 4
- 并查集
- 4
- 数论
- 4
- 堆
- 4
- 位运算
- 4