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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

大暴搜 chess

發布時間:2023/12/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大暴搜 chess 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.




仔細讀題,會發現吃掉敵人點對方案數的貢獻很神奇。如果走的空格相同,而走的敵人點不同,對答案無貢獻,而對于走的空格相同,但一種走了敵人點,另一種沒走,算兩個方案。。。。sb出題人語文簡直是和我學的。。。。
可見對于能相互到達的敵人點我們該縮點。也就是說,我們對與這一坨敵人點相連的空格互相連上雙向邊。(可以互相到達),并把每兩個互相到達的空格連上邊。
然后跑spfa,加一個當dis[i]==dis[j]+1時,ans[i]+=ans[j],就行了。
注意,邊不要建多。
ans不用開ll

#include<cstring> #include<cstdlib> #include<cstdio> #include<algorithm> #include<iostream> #include<queue> #define ll long long using namespace std; inline int read() {int sum=0;char x=getchar();while(x<'0'||x>'9')x=getchar();while(x>='0'&&x<='9'){sum=(sum<<1)+(sum<<3)+x-'0';x=getchar();}return sum; } struct node{int x,y;}S,T; struct road{int v,next;}lu[10000*8]; queue<node> q;queue<int> Q; int n,m,tot,cnt,e; int dis[55*55],v[55*55],adj[55*55],al[55*55][55*55]; int vis[55][55],a[55][55],id[55][55],hh[55][55]; ll ans[55*55]; int wz[10][2]={2,1,2,-1,-2,1,-2,-1,1,2,1,-2,-1,2,-1,-2}; inline bool check(int x,int y){if(x<=0||y<=0||x>n||y>m||a[x][y]==2)return 0;return 1;} inline void add(int u,int v){lu[++e]=(road){v,adj[u]};adj[u]=e;} void get(node aaa) {q.push(aaa);cnt=0;memset(hh,0,sizeof(hh));while(!q.empty()){node x=q.front();q.pop();for(int i=0;i<8;i++){node to;to.x=x.x+wz[i][0],to.y=x.y+wz[i][1];if(!check(to.x,to.y))continue;if(a[to.x][to.y]==1&&!vis[to.x][to.y]){q.push(to);vis[to.x][to.y]=1;}if(a[to.x][to.y]==0&&!hh[to.x][to.y]){v[++cnt]=id[to.x][to.y];hh[to.x][to.y]=1;}}}for(int i=1;i<=cnt;i++)for(int j=i+1;j<=cnt;j++)if(!al[v[i]][v[j]])add(v[i],v[j]),add(v[j],v[i]),al[v[i]][v[j]]=al[v[j]][v[i]]=1; } void init() {for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)id[i][j]=++tot;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(!a[i][j])for(int k=0;k<8;k++){int x=i+wz[k][0],y=j+wz[k][1];if(!check(x,y)||a[x][y]!=0)continue;add(id[i][j],id[x][y]);//add(id[x][y],id[i][j]);}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(a[i][j]==1&&!vis[i][j]){vis[i][j]=1;node x;x.x=i,x.y=j;get(x);} } bool spfa() {int vis[55*55];memset(vis,0,sizeof(vis));memset(dis,40,sizeof(dis));Q.push(id[S.x][S.y]);dis[id[S.x][S.y]]=0;ans[id[S.x][S.y]]=vis[id[S.x][S.y]]=1;while(!Q.empty()){int x=Q.front();Q.pop();vis[x]=0;for(int i=adj[x];i;i=lu[i].next){int to=lu[i].v;if(dis[to]>dis[x]+1){dis[to]=dis[x]+1;ans[to]=ans[x];if(!vis[to]){vis[to]=1;Q.push(to);}}else if(dis[to]==dis[x]+1){ans[to]+=ans[x];if(!vis[to]){vis[to]=1;Q.push(to);}}}}return dis[id[T.x][T.y]]<100000; } int main() {n=read();m=read();for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){a[i][j]=read();if(a[i][j]==3)S.x=i,S.y=j,a[i][j]=0;if(a[i][j]==4)T.x=i,T.y=j,a[i][j]=0;}init();if(!spfa()){cout<<-1;return 0;}cout<<dis[id[T.x][T.y]]-1<<endl<<ans[id[T.x][T.y]]; }

轉載于:https://www.cnblogs.com/QTY2001/p/7632669.html

總結

以上是生活随笔為你收集整理的大暴搜 chess的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产性猛交╳xxx乱大交 | 久久中文字幕人妻熟av女蜜柚m | 99蜜桃臀久久久欧美精品网站 | 天天躁日日躁aaaaxxxx | 少妇不卡视频 | 国产国语亲子伦亲子 | 日韩欧美成人一区 | 国产第四页 | 国产成人精品a视频一区 | 粉嫩精品久久99综合一区 | 一区二区三区中文视频 | 一本色道久久88综合日韩精品 | 自拍偷拍亚洲欧洲 | 国产中文字字幕乱码无限 | 中文字幕免费在线 | 黄色在线资源 | 特级淫片裸体免费看冫 | 无码人妻久久一区二区三区 | 夜夜涩 | 成人免费视频网 | av中出在线 | 插我舔内射18免费视频 | 在线观看av的网站 | 婷婷开心激情网 | 免费国产在线观看 | 中文字幕无线精品亚洲乱码一区 | 日产欧产va高清 | 一本色道无码道dvd在线观看 | 国产在线免费 | 18视频在线观看网站 | 国产第一页av | 日韩一区二区三区免费 | 精品国产三级a∨在线 | 日本www在线观看 | 神马午夜在线观看 | 亚洲免费观看高清完整 | 日韩亚洲在线 | 九九涩| 久久久久久久亚洲 | 尤物国产精品 | 黄瓜视频在线免费观看 | 人体内射精一区二区三区 | 中国老熟女重囗味hdxx | 亚洲一二区在线 | av在线一区二区 | 国产呦小j女精品视频 | 亚洲国产aⅴ精品一区二区的游戏 | 亚洲s码欧洲m码国产av | 国产乱码久久久久 | 日韩a在线观看 | 国产无套免费网站69 | 久久久毛片 | 日韩熟女一区二区 | 老色批影院 | 青青青在线视频免费观看 | 色无极亚洲影院 | 18色av | 国产成人一区在线观看 | 日韩久久成人 | 欧美揉bbbbb揉bbbbb | 91欧美激情一区二区三区 | 三区在线 | eeuss鲁片一区二区三区在线观看 | 国产中文字幕一区二区三区 | 91久久久久久 | 极品美女啪啪 | 黄色avav| 大尺度叫床戏做爰视频 | 激情五月综合网 | 成人一区二区三区 | 凸凹人妻人人澡人人添 | 91在线看视频 | www.呦呦 | 一区二区三区国产av | 欧美激情69 | 亚洲交性网 | 空姐吹箫视频大全 | 欧美性猛交ⅹxx乱大交 | 97视频入口 | 性色国产成人久久久精品 | 国产精品永久在线观看 | 大肉大捧一进一出好爽 | 国产av无码专区亚洲精品 | 欧美专区第二页 | 久热中文字幕在线 | 国产激情在线看 | 涩涩网站视频 | 国产午夜精品福利视频 | 国产精品国产三级国产aⅴ浪潮 | 国产毛片一区 | 中文字幕有码av | 麻豆视频免费 | 国内自拍亚洲 | 三及毛片 | 茄子视频色 | 欧美一卡二卡在线 | 午夜嘿嘿嘿 | 欧美国产二区 | 婷婷资源网 |