-
个人简介
快读快写
int read(){ int sum=0,f=1; char c=getchar(); while(c<'0'||c>'9'){ if(c=='-')f=-1; c=getchar(); } while(c>='0'&&c<='9'){ sum=((sum<<1)+(sum<<3))+(c^48); c=getchar(); } return sum*f; } void write(int x){ if(x>9){ write(x/10); } putchar(x%10+'0'); return; }spfa
#include<bits/stdc++.h> using namespace std; const int N=1e6+10, INF=0x3f3f3f3f; int head[N],dis[N],vis[N],cnt,n,m,num[N]; struct T{ int to,w,next; T(){} T(int a,int b):w(a),to(b){} bool operator< (const T& t) const{ return w > t.w; } }G[N]; void add(int u,int v,int w){ G[++cnt].to = v; G[cnt].w = w; G[cnt].next = head[u]; head[u] = cnt; } bool spfa(int s){ memset(dis, 0x3f, sizeof(dis)); dis[s]=0; queue<int> que; que.push(s); vis[s] = 1; while(!que.empty()){ int u=que.front(); que.pop(); vis[u] = 0; for(int i=head[u]; ~i; i=G[i].next){ int v=G[i].to, w=G[i].w; if(dis[v] > dis[u]+w){ dis[v] = dis[u]+w; num[v] = num[u]+1; if(num[v]>=n) return 0; if(!vis[v]){ que.push(v); vis[v] = 1; } } } } return 1; } int main(){ scanf("%d%d", &n,&m); memset(head, -1, sizeof head); for(int i=1; i<=m; i++){ int u,v,w; scanf("%d%d%d", &u,&v,&w); add(u,v,w), add(v,u,w); } bool flag = spfa(1); if(flag==0) printf("NO\n"); else printf("%d ", dis[n]); return 0; }单调队列
定义/清空单调队列 //需要队头队尾均可压入和弹出,如双端队列 for(int i=1;i<=n;i++) { while(队列非空 && 队尾劣于当前元素i) 弹出队尾; 队尾压入i; while(队列非空 && 队头超出范围) 弹出队头; //此时队头为最优元素,按题目需要使用 }#include<bits/stdc++.h> using namespace std; int a[100010]; struct f{ long long tz,xb,s = 0; } b[100010]; bool cmp(f x, f y) { if (x.tz==y.tz)return x.xb>y.xb; return x.tz<y.tz; } bool cmpb(f x, f y) { return x.xb<y.xb; } int main() { int n,m; cin>>n>>m; for (int i = 1; i <= n; i++) { cin >> a[i]; } for (int i = 1; i <= m; i++) { cin >> b[i].tz, b[i].xb = i; } sort(a+1,a+n+1); sort(b + 1,b+1+m,cmp); int c=m; for (int i=n;i>=1;i--) { if (c==0) c = m; b[c--].s+=a[i]; } sort(b+1,b+1+m,cmpb); for (int i=1; i<=m;i++) { cout<<b[i].s<<" "; } return 0; }#include <bits/stdc++.h> using namespace std; struct W{int u,c;bool cl,in_q;list<int>::iterator it;W(int u_):u(u_),c(0),cl(0),in_q(0){}}; int main(){ ios::sync_with_stdio(0); cin.tie(0); int T; cin>>T; while(T--){ int n; cin>>n; unordered_map<int,W> w; list<int> q; int t=-1; for(int i=1;i<=n;++i){ string op; cin>>op; if(op=="Add"){ int u; cin>>u; auto it=w.find(u); if(it!=w.end()&&!it->second.cl) cout<<"Operation #"<<i<<": same priority\n"; else{ W win(u); q.push_back(u); win.in_q=1; win.it=prev(q.end()); w[u]=win; cout<<"Operation #"<<i<<": success\n"; } } else if(op=="Close"){ int u; cin>>u; auto it=w.find(u); if(it==w.end()||it->second.cl) cout<<"Operation #"<<i<<": invalid priority\n"; else{ if(u==t)t=-1; if(it->second.in_q)q.erase(it->second.it); it->second.cl=1; cout<<"Operation #"<<i<<": close "<<u<<" with "<<it->second.c<<'\n'; } } else if(op=="Chat"){ int w_; cin>>w_; if(t!=-1){ w[t].c+=w_; cout<<"Operation #"<<i<<": success\n"; } else{ if(q.empty()) cout<<"Operation #"<<i<<": empty\n"; else{ int u=q.front(); w[u].c+=w_; cout<<"Operation #"<<i<<": success\n"; } } } else if(op=="Rotate"){ int x; cin>>x; if(x<1||x>q.size()) cout<<"Operation #"<<i<<": out of range\n"; else{ auto it=q.begin(); advance(it,x-1); int u=*it; q.erase(it); q.push_front(u); w[u].it=q.begin(); cout<<"Operation #"<<i<<": success\n"; } } else if(op=="Prior"){ if(q.empty()) cout<<"Operation #"<<i<<": empty\n"; else{ int max_u=-1; list<int>::iterator max_it; for(auto it=q.begin();it!=q.end();++it){ int u=*it; if(u>max_u){ max_u=u; max_it=it; } } q.erase(max_it); q.push_front(max_u); w[max_u].it=q.begin(); cout<<"Operation #"<<i<<": success\n"; } } else if(op=="Choose"){ int u; cin>>u; auto it=w.find(u); if(it==w.end()||it->second.cl||u==t||!it->second.in_q) cout<<"Operation #"<<i<<": invalid priority\n"; else{ q.erase(it->second.it); q.push_front(u); it->second.it=q.begin(); cout<<"Operation #"<<i<<": success\n"; } } else if(op=="Top"){ int u; cin>>u; auto it=w.find(u); if(it==w.end()||it->second.cl) cout<<"Operation #"<<i<<": invalid priority\n"; else{ if(t!=-1){ int o=t; w[o].in_q=1; q.push_front(o); w[o].it=q.begin(); } if(it->second.in_q)q.erase(it->second.it); t=u; it->second.in_q=0; cout<<"Operation #"<<i<<": success\n"; } } else if(op=="Untop"){ if(t==-1) cout<<"Operation #"<<i<<": no such person\n"; else{ int u=t; q.push_front(u); w[u].in_q=1; w[u].it=q.begin(); t=-1; cout<<"Operation #"<<i<<": success\n"; } } } if(t!=-1&&!w[t].cl) cout<<"Bye "<<t<<" : "<<w[t].c<<'\n'; for(int u:q) cout<<"Bye "<<u<<" : "<<w[u].c<<'\n'; } return 0; }4045
#include<bits/stdc++.h> using namespace std; //二分+贪心 /* n辆车,m个测速仪,路全长l,道路限速v,进入位置d,初始速度v1,加速度为a 测速仪位置p */ const int N=1e6+10; const int M=1e6+10; bool y[N]; int d[N],v[N],a[N]; int ix[M]; struct car { int d,v,a; } c[N]; struct idd { int ix; // vector<int> have; } p[M]; int n,m,l,V; struct lr { int ll, rr; friend bool operator < (lr a,lr b) {//对区间内进行比较 if(a.ll==b.ll)return a.rr>b.rr; return a.ll<b.ll; } }fd[N]; void solve() { cin>>n>>m>>l>>V; for(int i=1; i<=n; i++) { cin>>d[i]>>v[i]>>a[i]; } int cnt=0; for(int i=1; i<=m; i++) { cin>>ix[i]; } for(int i=1; i<=n; i++) { if(v[i]<=V&&a[i]<=0)continue; else if(a[i]>0) { int dt=V*V-v[i]*v[i]; dt/=(2*a[i]); dt+=d[i]; int lll=1,rrr=m,ans=0; while(lll<=rrr) {//对测速站的区间1 int mid=(lll+rrr)>>1; if(ix[mid]>dt) { rrr=mid-1; ans=mid; } else { lll=mid+1; } } if(!ans)continue; fd[++cnt].ll=ans,fd[cnt].rr=m; } else{ int lll=1,rrr=m,c1=0; while(lll<=rrr){//对测速站的区间2 int mid=(lll+rrr)>>1; if(ix[mid]>=d[i]){ rrr=mid-1; c1=mid; } else{ lll=mid+1; } } if(!c1)continue; lll=c1,rrr=m; int c2=0; while(lll<=rrr){ int mid=(lll+rrr)>>1; double now_v=sqrt(v[i]*v[i]+2.0*a[i]*(ix[mid]-d[i]));//公式套用 if(now_v>V){ lll=mid+1; c2=mid; } else{ rrr=mid-1; } } if(c2<c1)continue; fd[++cnt].ll=c1,fd[cnt].rr=c2; } } sort(fd+1,fd+cnt+1); // ans=INT_MAX; int mr=M+2; for(int i=cnt;i>=1;i--){ if(mr<=fd[i].rr)y[i]=true; mr=min(mr,fd[i].rr); }//? int ans=0,c=0; for(int i=1;i<=cnt;i++){ if(y[i]){ y[i]=0; continue; } if(c<fd[i].ll){ ans++; c=fd[i].rr; } } cout<<cnt<<" "<<m-ans<<endl; } int main() { int t; cin>>t; while(t--) { solve(); } return 0; }超强斐波那契,
范围可到1e8:#include<bits/stdc++.h> #define ll long long #define up(i,j,k) for(int i=j;i<=k;i++) using namespace std; const int M=1e9+7; struct m{ ll m[3][3]; void clear() { memset(m,0,sizeof(m)); } void init() { for(int i = 1; i<=2; i++) { m[i][i]=1; } } }; m operator %(m a,int mod) { m c; up(i,1,2) { up(j,1,2) { a.m[i][j]%=mod; } } c=a; return c; } m operator *(m a,m b) { m c; c.clear(); for(int i=1; i<=2; i++) { for(int j=1; j<=2; j++) { for(int k=1; k<=2; k++) { c.m[i][j]+=(a.m[i][k]*b.m[k][j])%M; } } } c=c%M; return c; } m operator ^(m a,ll y) { m ans; ans.clear(); ans.init(); while(y) { if(y&1) ans=ans*a; a=a*a; y>>=1; } return ans; } int main() { ll n; scanf("%lld",&n); if(n<=2) { printf("1"); return 0; } m zj; zj.clear(); zj.m[1][1]=zj.m[1][2]=1; m c; c.clear(); c.m[1][1]=0,c.m[1][2]=c.m[2][1]=c.m[2][2]=1; m ans; ans.clear(); ans=c^(n-2); ans=zj*ans; printf("%lld",ans.m[1][2]); }clever dick
暴力出奇迹,打表出省一:
#include<bits/stdc++.h> #define ll long long using namespace std; ll a[100]={0,1},n,isp[100]; bool vis[100]={0,1}; int sum=0; void dfs(ll x,ll op) { if(sum==10)return; if(x==n+1&&isp[a[n]+a[1]]&&a[1]==1) { for(int i=1;i<n;i++)printf("%d ",a[i]); sum++; printf("%d\n",a[n]); } if(x==n+1)return ; for(int i=op;i<=n;i+=2) if(!vis[i]&&isp[i+a[x-1]]) { a[x]=i; vis[i]=1; dfs(x+1,op^3); vis[i]=0; } } int main() { scanf("%d",&n); if(n==20){ printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",1 ,2 ,3, 4, 7 ,6 ,5, 8, 9 ,10 ,13 ,16 ,15 ,14, 17 ,20 ,11, 12, 19, 18); printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",1, 2, 3, 4, 7 ,6, 5 ,8 ,9, 10, 13, 16, 15, 14, 17, 20, 11, 18, 19, 12); printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",1 ,2 ,3, 4, 7 ,6, 5, 8 ,9, 10, 13 ,18 ,19 ,12 ,11 ,20 ,17, 14, 15, 16); printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",1 ,2 ,3, 4 ,7 ,6 ,5,8 ,9 ,10, 19 ,12 ,11, 20, 17, 14 ,15 ,16, 13 ,18); printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",1, 2 ,3, 4 ,7 ,6, 5 ,8, 9 ,10, 19 ,18, 13, 16, 15 ,14 ,17 ,20 ,11 ,12); printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",1, 2, 3 ,4 ,7 ,6 ,5, 8, 9 ,14 ,15, 16, 13 ,10 ,19, 12, 17 ,20, 11, 18); printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",1, 2 ,3, 4, 7 ,6 ,5 ,8 ,9, 14 ,15, 16, 13, 10 ,19 ,18 ,11, 20 ,17 ,12); printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",1, 2 ,3, 4, 7 ,6 ,5,8, 9 ,14 ,15 ,16 ,13 ,18 ,11 ,20 ,17 ,12 ,19 ,10); printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",1, 2 ,3, 4 ,7 ,6, 5, 8 ,9 ,20 ,11, 12 ,17 ,14 ,15, 16 ,13, 10, 19, 18); printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",1 ,2 ,3 ,4 ,7 ,6 ,5, 8 ,9 ,20 ,11 ,12 ,17, 14 ,15 ,16, 13 ,18, 19 ,10); return 0; } isp[2]=isp[3]=isp[5]=isp[7]=isp[11]=isp[13]=isp[17]=isp[19]=isp[23]=isp[29]=isp[31]=1; dfs(2,2); return 0; }void ei(int n){//埃氏筛 for(int i=2;i<=n;i++){ if(ist[i])continue; ip[++idx]=i; int k=2; while(i*k<=n){ ist[i*k]=true; k++; } } } void oi(int n){//欧拉筛 for(int i=2;i<=n;i++){ if(!ist[i]){ ip[++idx]=i; } for(int i=1;i<=idx;i++){ if(i*ip[j]>n)break; ist[i*ip[j]]=true; if(i%ip[j]==0)break; } } }哥德巴赫猜想:
#include<bits/stdc++.h> using namespace std; bool s[10001]={0}; int su[1230]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919,7927,7933,7937,7949,7951,7963,7993,8009,8011,8017,8039,8053,8059,8069,8081,8087,8089,8093,8101,8111,8117,8123,8147,8161,8167,8171,8179,8191,8209,8219,8221,8231,8233,8237,8243,8263,8269,8273,8287,8291,8293,8297,8311,8317,8329,8353,8363,8369,8377,8387,8389,8419,8423,8429,8431,8443,8447,8461,8467,8501,8513,8521,8527,8537,8539,8543,8563,8573,8581,8597,8599,8609,8623,8627,8629,8641,8647,8663,8669,8677,8681,8689,8693,8699,8707,8713,8719,8731,8737,8741,8747,8753,8761,8779,8783,8803,8807,8819,8821,8831,8837,8839,8849,8861,8863,8867,8887,8893,8923,8929,8933,8941,8951,8963,8969,8971,8999,9001,9007,9011,9013,9029,9041,9043,9049,9059,9067,9091,9103,9109,9127,9133,9137,9151,9157,9161,9173,9181,9187,9199,9203,9209,9221,9227,9239,9241,9257,9277,9281,9283,9293,9311,9319,9323,9337,9341,9343,9349,9371,9377,9391,9397,9403,9413,9419,9421,9431,9433,9437,9439,9461,9463,9467,9473,9479,9491,9497,9511,9521,9533,9539,9547,9551,9587,9601,9613,9619,9623,9629,9631,9643,9649,9661,9677,9679,9689,9697,9719,9721,9733,9739,9743,9749,9767,9769,9781,9787,9791,9803,9811,9817,9829,9833,9839,9851,9857,9859,9871,9883,9887,9901,9907,9923,9929,9931,9941,9949,9967,9973}; void init() { for(int i=1;i<=1229;i++) s[su[i]]=1; } int main() { int n; init(); cin>>n; for(int i=4;i<=n;i+=2) for(int j=1;j<=1230;j++) if(s[i-su[j]]==1) { printf("%d=%d+%d\n",i,su[j],i-su[j]); break; } return 0; }字串变换
#include<bits/stdc++.h> #define endl '\n' #define ll long long #define fr(l,r) for(long long i=l;i<=r;i++) #define rf(r,l) for(long long i=r;i>=l;i--) #define made return #define of 0 #define Barry +0 #define ll long long using namespace std; struct node{ string s; ll sum; }; queue<node>q; ll n=1; string A,B,a[1111],b[1111]; int main(){ cin>>A>>B; while(cin>>a[n]>>b[n]) n++; n--; q.push(node{A,0}); while(!q.empty()){ node u=q.front(); q.pop(); if(u.sum>=10)break; fr(1,n){ int mark=u.s.find(a[i]); while(mark!=-1){ string temp=u.s; temp=temp.replace(mark,a[i].size(),b[i]); if(temp==B){ cout<<u.sum+1<<endl; return 0; } q.push(node{temp,u.sum+1}); mark=u.s.find(a[i],mark+1); } } } cout<<"NO ANSWER!"<<endl; made of Barry; }最短路径问题:
#include<bits/stdc++.h> using namespace std; #define N 2001 int a[105][2]; double d[105][105]; int main() { int n,m; cin>>n; int i,j,k; memset(d,0x7f,sizeof(d)); for(i=1;i<=n;i++) { cin>>a[i][1]>>a[i][2]; } cin>>m; int x,y; for(i=1;i<=m;i++)//邻接矩阵 { cin>>x>>y; d[x][y]=d[y][x]=sqrt(pow(double(a[x][1]-a[y][1]),2)+pow(double(a[x][2]-a[y][2]),2)); } for(k=1;k<=n;k++)//floyed算法 for(i=1;i<=n;i++) for(j=1;j<=n;j++) { if(i!=k&&j!=i&&j!=k&&d[i][j]>d[i][k]+d[k][j]) d[i][j]=d[i][k]+d[k][j]; } int b,e; cin>>b>>e; printf("%.2lf\n",d[b][e]); return 0; } -
通过的题目
- 1
- 2
- 6
- 7
- 9
- 11
- 12
- 13
- 15
- 16
- 19
- 20
- 21
- 22
- 23
- 25
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 43
- 44
- 45
- 50
- 53
- 55
- 56
- 59
- 60
- 61
- 62
- 64
- 66
- 67
- 75
- 88
- 89
- 92
- 93
- 98
- 100
- 105
- 120
- 130
- 136
- 137
- 167
- 172
- 212
- 215
- 216
- 221
- 222
- 226
- 236
- 246
- 264
- 275
- 276
- 277
- 280
- 281
- 283
- 294
- 295
- 296
- 297
- 298
- 302
- 304
- 314
- 326
- 355
- 357
- 368
- 399
- 402
- 403
- 407
- 409
- 411
- 419
- 429
- 430
- 434
- 436
- 439
- 459
- 464
- 469
- 481
- 482
- 483
- 487
- 502
- 505
- 511
- 517
- 533
- 554
- 555
- 557
- 562
- 565
- 586
- 587
- 636
- 637
- 643
- 648
- 661
- 663
- 670
- 672
- 682
- 683
- 685
- 687
- 692
- 701
- 747
- 748
- 760
- 761
- 767
- 774
- 775
- 776
- 790
- 797
- 798
- 815
- 816
- 817
- 821
- 828
- 829
- 856
- 860
- 868
- 884
- 887
- 889
- 892
- 893
- 894
- 896
- 903
- 917
- 930
- 949
- 952
- 964
- 965
- 980
- 990
- 1009
- 1045
- 1047
- 1048
- 1049
- 1057
- 1071
- 1076
- 1105
- 1107
- 1116
- 1118
- 1120
- 1128
- 1144
- 1158
- 1160
- 1166
- 1168
- 1195
- 1199
- 1207
- 1209
- 1214
- 1564
- 1568
- 1599
- 1666
- 1760
- 1865
- 1868
- 1869
- 1871
- 1888
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1910
- 1930
- 1932
- 1935
- 1965
- 1967
- 1968
- 1970
- 1973
- 1976
- 1984
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2009
- 2018
- 2019
- 2035
- 2038
- 2039
- 2057
- 2059
- 2104
- 2105
- 2107
- 2108
- 2113
- 2114
- 2123
- 2130
- 2131
- 2133
- 2134
- 2143
- 2144
- 2146
- 2161
- 2163
- 2173
- 2201
- 2204
- 2213
- 2217
- 2234
- 2235
- 2237
- 2251
- 2255
- 2256
- 2260
- 2274
- 2275
- 2284
- 2285
- 2307
- 2335
- 2349
- 2350
- 2351
- 2352
- 2353
- 2402
- 2420
- 2465
- 2489
- 2569
- 2636
- 2638
- 2640
- 2646
- 2652
- 2668
- 2687
- 2693
- 2701
- 2719
- 2743
- 2757
- 2761
- 2764
- 2814
- 2817
- 2820
- 2843
- 2849
- 2850
- 2851
- 2855
- 2873
- 2888
- 2892
- 2906
- 2927
- 2961
- 2965
- 2999
- 3000
- 3011
- 3012
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3039
- 3040
- 3041
- 3042
- 3044
- 3047
- 3048
- 3050
- 3058
- 3059
- 3069
- 3073
- 3074
- 3076
- 3077
- 3082
- 3086
- 3088
- 3093
- 3094
- 3095
- 3097
- 3098
- 3101
- 3125
- 3177
- 3205
- 3206
- 3207
- 3208
- 3231
- 3251
- 3281
- 3286
- 3320
- 3336
- 3337
- 3385
- 3386
- 3394
- 3396
- 3406
- 3407
- 3408
- 3409
- 3410
- 3411
- 3412
- 3413
- 3428
- 3458
- 3465
- 3470
- 3477
- 3498
- 3499
- 3508
- 3513
- 3529
- 3539
- 3616
- 3622
- 3636
- 3660
- 3667
- 3677
- 3680
- 3707
- 3711
- 3712
- 3713
- 3721
- 3749
- 3947
- 3971
- 4037
- 4039
- 4040
- 4052
- 4053
- 4055
- 4056
- 4057
- 4058
- 4059
- 4060
- 4070
- 4090
- 4092
- 4097
- 4101
- 4102
- 4143
- 4144
- 4147
- 4206
- 4219
- 4248
- 4249
- 4312
- 4338
- 4342
- 4347
- 4410
- 4411
- 4412
- 4413
- 4414
-
最近活动
- C2027届数据库结构&STL-二分查找和二分答案 作业
- C2027届数据库结构&STL-链表 作业
- C2027届数据库结构&STL-进制转换 作业
- C2027届数据库结构&STL-贪心和递推 作业
- C2027届数据库结构&STL-前缀和与差分 作业
- C2027届2025年12月模拟枚举高精度练习 OI
- C2027届语法高级&基础算法-素数筛&质因数分解 作业
- C2027届语法高级&基础算法-位运算&快速幂 作业
- C2026届高精度、结构体排序、质数筛、二分 作业
- C2027届语法高级&基础算法-高精度算法 作业
- C2027届语法高级&基础算法-枚举和模拟 作业
- C2027届语法高级练习 作业
- C2027届2025年暑期知识巩固赛 OI
- C2026届图论基础 作业
- C2026届DFS&BFS 作业
- C2027届语法高级&基础算法-结构体 作业
- C2027届语法高级&基础算法-字符串 作业
- C2027届语法高级&基础算法-递归及其应用 作业
- C2027届语法高级&基础算法-函数及其应用 作业
- C2027届语法高级&基础算法-二维数组进阶 作业
- C2027届语法高级&基础算法-数值排序 作业
- C2027届语法高级&基础算法-文件重定向和对拍 作业
- C2027届基础语法-循环和一维数组综合练习 作业
- C2027届基础语法-一维数组进阶 作业
- C2026届广度优先搜索(BFS) 作业
- C2027届基础语法-循环结构实例练习 作业
- C2027届基础语法-循环嵌套练习题 作业
- 2025年4月29日C2026届课堂测试 乐多
- C2027届基础语法-while循环结构练题 作业
- C2027届基础语法-for循环结构练题 作业
- C2026届(高级数据结构:STL与线性结构练题) 作业
- C2026届(高级数据结构:STL容器) 作业
- C2027届基础语法-选择结构练题 作业
- C2027届基础语法-选择结构基础 作业
- C2027届基础语法-顺序结构进阶 作业
- 2025年2月9日C2026届新春赛 OI
- C2027届基础语法-顺序结构基础 作业
- C2026届二阶(中)2024年12月练习 作业
- C2026届二阶(中)2024年9-11月练习 作业
- 2024年国庆C2025&G2027届赛前训练 IOI
- 2024年国庆C2025&G2027届常规训练 IOI
- 2024年国庆C2026届常规训练 OI
- 2024年8月31日月末测试(C2025届&C2026届) OI
- 2024年8月29日下午C2026届训练 OI
- C2026届2024年8月初赛模拟题 作业
- C2024&C2025届2024年暑假知识巩固赛 乐多
- 2024年暑假集训测试(20240721) OI
- C2026届初赛知识点测试 OI
- C2025届-温故而知新 作业
- 2024年7月3日C2025届周末测试 乐多
- 2024年6月16日初三复血赛 乐多
- 2024年6月5日~初二~为高考加油哦 乐多
- 2024年6月5日~初一~为高考加油哦 乐多
- 教师基础语法练习 作业
- 2024年4月30日~假期快乐~clone 作业
- 2024年5月2日~主打一个随心 IOI
- 图论基础 作业
- 搜索剪枝 作业
- 搜索基础 作业
- C2026届2024年3月8日练习赛 乐多
- C2025届2024年3月8日练习赛 乐多
- C2025届2024年3月2日开学赛 乐多
- C2025届2024年2月8日新春赛 乐多
- C2025届2024年2月4日立春赛 OI
- C2025届2024年1月27日-寒假集训 作业
- C2026届2023年12月31日元旦跨年赛 OI
- C2025届2023年12月31日元旦跨年赛 OI
- C2026届2023年12月分支结构练习 作业
- 6.栈_队列 作业
- 5.二分 作业
- C2025届2023年11-12月练习 作业
- C2025届2023年11月18日练习_排序 作业
- 教师练题之二维数组 作业
- 教师练题之一维数组 作业
- C2025届2023年10月20日练习_STL 作业
- C2025届2023年国庆练习(20231003) IOI
- C2025届2023年国庆练习(20231005) OI
- 2023年初赛知识练习(20230915) OI
题目标签
- 基础语法
- 172
- 顺序
- 55
- 搜索
- 38
- 循环
- 35
- 其他
- 27
- 动态规划
- 27
- dp
- 27
- noip
- 27
- 递归
- 26
- 分支问题
- 26
- 模拟
- 26
- 字符串
- 25
- dfs
- 25
- ABC
- 25
- AtCoder
- 25
- bfs
- 22
- 基础问题
- 20
- 简单循环
- 20
- 普及组
- 20
- 枚举
- 20