Minimum Distance in a Star Graph BFS/康托展开 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
来源:互联网 发布:mysql全套视频百度云 编辑:程序博客网 时间:2024/05/22 12:32
题目链接
模拟+BFS+康拓展开,此题的数据比较水,如果n为9就GG了
#include<bits/stdc++.h>using namespace std;typedef long long ll;vector<int> mm[500005];int vis[500005];int n;ll sum =0;int a[11];int b[11];int fac[] = {1,1,2,6,24,120,720,5040,40320}; //i的阶乘为fac[i]// 康托展开-> 表示数字a是 a的全排列中从小到大排,排第几// n表示1~n个数 a数组表示数字。int kangtuo(){ int i,j,t,sum; sum=0; for( i=0; i<n ;++i) { t=0; for(j=i+1;j<n;++j) if( a[i]>a[j] ) ++t; sum+=t*fac[n-i-1]; } return sum+1;}struct NODE{ int x; int step;};int bfs(int ss,int tt){ queue <NODE> que; memset(vis,0,sizeof(vis)); NODE cur,next; cur.x = ss; cur.step = 0; vis[cur.x] = 1; que.push(cur); while(!que.empty()) { cur = que.front(); que.pop(); if(cur.x==tt) { return cur.step; } for(int i=0;i<mm[cur.x].size();i++) { if(vis[ mm[cur.x][i]]) continue; next = cur; next.x = mm[cur.x][i]; next.step +=1; vis[next.x] = 1; que.push(next); } }}int main(){// freopen("data.txt","r",stdin); scanf("%d",&n); for(int i=0;i<n;i++) { a[i] = b[i] = i+1; } sum = 1; for(int i=1;i<=n;i++) { sum *= i; } for(int i=1;i<=sum;i++) { for(int j=0;j<n;j++) { a[j] = b[j]; } for(int j=1;j<n;j++) { swap(a[0],a[j]); ll to = kangtuo(); mm[i].push_back(to); mm[to].push_back(i); swap(a[0],a[j]); } next_permutation(b,b+n); } ll s,t; for(int i=0;i<5;i++) { scanf("%lld%lld",&s,&t); int dig=n-1; while(s) { a[dig--] = s%10; s/=10; } s= kangtuo(); dig=n-1; while(t) { a[dig--] = t%10; t/=10; } t= kangtuo(); printf("%d\n",bfs(s,t)); } return 0;}
阅读全文
0 0
- Minimum Distance in a Star Graph BFS/康托展开 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 Minimum Distance in a Star Graph
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛(J.Minimum Distance in a Star Graph)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛- J. Minimum Distance in a Star Graph
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 J. Minimum Distance in a Star Graph
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 J Minimum Distance in a Star Graph 广度优先搜索
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 J.Minimum Distance in a Star Graph
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 J. Minimum Distance in a Star Graph(bfs+状态保存)
- 2017 ACM-ICPC南宁网络赛: J. Minimum Distance in a Star Graph(BFS)
- 2017 icpc 南宁赛区 J. Minimum Distance in a Star Graph(bfs)
- 计蒜客 Minimum Distance in a Star Graph 2017icpc南宁赛区 字符串bfs
- Minimum Distance in a Star Graph(南宁网络赛)
- 2017南宁网络赛J.Minimum Distance in a Star Graph(bfs求最短路)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
- 2017ACM-ICPC南宁网络赛Frequent Subsets Problem(康托展开+bfs)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 A. Weather Patterns(阅读题)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 A. Weather Patterns
- android的JNI配置
- Spark安装及环境配置
- ACM-9月24日周日周末训练心得
- 论文笔记:session-based recommendations with recurrent neural networks
- rpm命令详解
- Minimum Distance in a Star Graph BFS/康托展开 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
- Yii2.0 发送邮件
- MIL/SIL/PIL/HIL定义梳理
- javaEE的13中核心技术
- 产品问题处理的一些经验
- 循环单链表的简单初始化
- Java中的StringBuilder
- 单片机学习提纲
- 干货 String、StringBuffer、StringBuilder的用法与区别