日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

loj2090. 「ZJOI2016」旅行者

發布時間:2023/12/2 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 loj2090. 「ZJOI2016」旅行者 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

loj2090. 「ZJOI2016」旅行者

鏈接

loj

思路

\((l,mid)(mid+1,r)\).考慮跨過mid的貢獻。

假設選的中間那條線的點為gzy,貢獻為\(dis(x,gzy)+dis(gzy,y)\)

那就計算n遍最短路,一次分治為\(n^2mlog{nm}\)

設S=n*m.矩陣的長度是不定的,每次取最長的邊進行分治是最好的,n最壞為\(\sqrt{n}\)

\(f(n)=2*f(\frac{n}{2})+S\sqrt{S}logS。所以總的復雜度就是\)\(S\sqrt{S}logS\)

都在同側的也需要跨一跨
代碼

#include <bits/stdc++.h> #define FOR(i,a,b) for(int i=a;i<=b;++i) using namespace std; const int _=1e5+7,INF=0x3f3f3f3f; int read() {int x=0,f=1;char s=getchar();for(;s>'9'||s<'0';s=getchar()) if(s=='-') f=-1;for(;s>='0'&&s<='9';s=getchar()) x=x*10+s-'0';return x*f; } int n,m,q,ans[_],vis[_]; struct node {int x,y,X,Y,u,v,id; }Q[_],tmp[_]; bool cmp(node a,node b) {return a.id<b.id;} struct edge {int v,nxt,q;}e[_]; int head[_],tot; void add(int u,int v,int q) {e[++tot].v=v;e[tot].q=q;e[tot].nxt=head[u];head[u]=tot; } int id(int x,int y) {return (x-1)*m+y;} struct T_T {int u,val;T_T(int a=0,int b=0) {u=a,val=b;}bool operator < (const T_T &b) const {return val>b.val;} }; int dis[_]; void dij(int S) {dis[S]=0;priority_queue<T_T> q;q.push(T_T(S,0));while(!q.empty()) {T_T u=q.top();q.pop();if(dis[u.u]!=u.val) continue;for(int i=head[u.u];i;i=e[i].nxt) {int v=e[i].v;if(vis[v]&&dis[v]>u.val+e[i].q) {dis[v]=u.val+e[i].q;q.push(T_T(v,dis[v]));}}} } void solve(int x,int y,int X,int Y,int l,int r) {if(l>r) return;if(x==X&&y==Y) {for(int i=l;i<=r;++i) ans[Q[i].id]=0;return;}if(Y-y>X-x) {int mid=(Y+y)>>1;FOR(i,x,X) {FOR(j,x,X) FOR(k,y,Y) dis[id(j,k)]=INF;dij(id(i,mid));FOR(j,l,r)ans[Q[j].id]=min(dis[Q[j].u]+dis[Q[j].v],ans[Q[j].id]);}FOR(i,x,X) vis[id(i,mid)]=0;int p=l,q=r;FOR(i,l,r) {if(max(Q[i].y,Q[i].Y)<=mid) tmp[p++]=Q[i];if(min(Q[i].y,Q[i].Y)>mid) tmp[q--]=Q[i];}FOR(i,l,r) Q[i]=tmp[i];solve(x,y,X,mid,l,p-1);solve(x,mid+1,X,Y,q+1,r);} else {int mid=(X+x)>>1;FOR(i,y,Y) {FOR(j,x,X) FOR(k,y,Y) dis[id(j,k)]=INF;dij(id(mid,i));FOR(j,l,r)ans[Q[j].id]=min(dis[Q[j].u]+dis[Q[j].v],ans[Q[j].id]);}FOR(i,y,Y) vis[id(mid,i)]=0;int p=l,q=r;FOR(i,l,r) {if(max(Q[i].x,Q[i].X)<=mid) tmp[p++]=Q[i];if(min(Q[i].x,Q[i].X)>mid) tmp[q--]=Q[i];}FOR(i,l,r) Q[i]=tmp[i];solve(x,y,mid,Y,l,p-1);solve(mid+1,y,X,Y,q+1,r);} } int main() {n=read(),m=read();FOR(i,1,n) FOR(j,1,m-1) {int val=read();add(id(i,j),id(i,j+1),val);add(id(i,j+1),id(i,j),val);}FOR(i,1,n-1) FOR(j,1,m) {int val=read();add(id(i,j),id(i+1,j),val);add(id(i+1,j),id(i,j),val);}FOR(i,1,n) FOR(j,1,m) vis[id(i,j)]=1;q=read();FOR(i,1,q) {Q[i].x=read(),Q[i].y=read(),Q[i].u=id(Q[i].x,Q[i].y);Q[i].X=read(),Q[i].Y=read(),Q[i].v=id(Q[i].X,Q[i].Y);Q[i].id=i,ans[i]=INF;}solve(1,1,n,m,1,q);FOR(i,1,q) printf("%d\n",ans[i]);return 0; }

轉載于:https://www.cnblogs.com/dsrdsr/p/11405996.html

總結

以上是生活随笔為你收集整理的loj2090. 「ZJOI2016」旅行者的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本少妇xxxx软件 | 神马午夜视频 | 麻豆久久久9性大片 | 在线日本中文字幕 | 亚洲最大的黄色网 | 婷婷深爱五月 | 日日操操 | 久久国产精品无码网站 | 亚洲a视频在线 | 日日夜夜操操 | 婷婷av一区二区三区 | 高清一区二区三区 | 国产性生活 | 国产一区不卡视频 | 插女生下面 | 国产综合在线观看 | 国产尤物在线视频 | 亚洲精品久久久久久久久久 | 亚洲拍拍 | 99热只有这里有精品 | 午夜国产一区二区三区 | 久久久com | 永久黄网站色视频免费观看w | 久久国产人妻一区二区免色戒电影 | 一区二区视频 | 久久av网址| 国产精品夫妻 | 五月婷婷激情综合 | 亚洲精品欧洲精品 | 国内精品小视频 | 日本人的性生活视频 | 一级片毛片 | 国产特黄大片aaaa毛片 | а√天堂8资源中文在线 | www.污污| 情五月| 亚洲成人第一页 | 亚洲黄色一级大片 | 九九在线观看视频 | 二男一女一级一片 | 欧美性受xxxxxx黑人xyx性爽 | 黄色亚洲精品 | 国产又粗又深又猛又爽又在线观看 | 日日干夜夜干 | 老汉av网站| 免费一级欧美片在线播放 | 成人网色 | 精品一区二区三区在线免费观看 | 日本h视频在线观看 | 俺去操| 最新国产毛片 | 日韩av中文字幕在线播放 | 一本—道久久a久久精品蜜桃 | 一级做a爱片久久毛片 | 国产精品国产三级国产aⅴ9色 | 91大片在线观看 | 亚洲青青操 | 偷拍第一页 | 日韩精品中文字幕一区二区 | 亚洲色成人网站www永久四虎 | 蜜桃视频一区二区三区在线观看 | 欧美色视频在线 | 久久在线视频 | 亚洲自拍天堂 | 欧美乱妇高清无乱码 | 福利小视频 | 久久狠狠高潮亚洲精品 | 午夜精品网 | 韩日欧美| 亚洲AV无码AV吞精久久中文版 | av无码精品一区二区三区 | 久久国产精品综合 | 色哟哟在线免费观看 | 毛片免 | 啊v视频在线 | 久久久精品在线 | 人人妻人人爽人人澡人人精品 | 国产精品第72页 | 女人特黄大aaaaaa大片 | 在线观看岛国av | 一级视频免费观看 | 国产成人在线免费 | 日日噜噜夜夜狠狠久久丁香五月 | 午夜精品福利一区二区三区蜜桃 | 在线尤物 | 亚洲视频在线播放 | 天天干天天摸天天操 | 色不卡| 一级特黄视频 | 免费亚洲一区 | 无码国产色欲xxxxx视频 | 国产污视频在线 | 茄子视频A | 高清免费av | 第一色综合| 日本三级456 | 欧美精品一区二区性色a+v | 国产亚洲色婷婷久久99精品 | 欧美精品乱码视频一二专区 |