vijos1089——小胖抗日
来源:互联网 发布:派发优惠券软件 编辑:程序博客网 时间:2024/06/05 09:00
第一版的高分题啊 好水啊。。。。。
二维标记bfs直接过。。。要特判k=0,否则%k会RE
#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#include<queue>#include<string>#include<map>#include<cstring>#include<vector>#define inf 1e9#define ll long long#define For(i,j,k) for(int i=j;i<=k;i++)#define Dow(i,j,k) for(int i=k;i>=j;i--)using namespace std;int n,m,k,l,r,mp[101][101][11],q[1001],tim[1001];bool vis[101][11];int main(){ scanf("%d%d",&n,&m); For(i,1,m) { int x,y; scanf("%d%d",&x,&y); mp[x][y][0]=mp[y][x][0]=1; } scanf("%d",&k); For(i,1,n) mp[i][i][0]=1; For(i,1,k) For(j,1,n) For(t,1,n) mp[j][t][i]=mp[j][t][0]; if(k!=0) For(i,0,k-1) { int x=1,y=1; while(1) { scanf("%d%d",&x,&y); if(x==0&&y==0) break; mp[x][y][i]=mp[y][x][i]=0; } } q[1]=1;tim[1]=0; vis[1][0]=1; l=1;r=1; while(l<=r) { int t=q[l]; if(t==n) { printf("%d",tim[l]); return 0; } For(i,1,n) if(k!=0) { if(mp[t][i][tim[l]%k]&&!vis[i][(tim[l]+1)%k]) q[++r]=i,tim[r]=tim[l]+1,vis[i][(tim[l]+1)%k]=1; }else { if(mp[t][i][0]&&!vis[i][0]) q[++r]=i,tim[r]=tim[l]+1,vis[i][0]=1; } l++; } printf("No solution.\n");}
1 0
- vijos1089——小胖抗日
- spfa——vijos1089小胖抗日
- 抗日英雄——张有仁
- 天啊,这样的抗日遗物你见过么?——罗衍宗
- 张绍勋——一个叱咤疆场的抗日英雄之死
- 抗日英雄
- 抗日情绪!!爱国热情??
- 抗日-----南京大屠杀
- 抗日游行场面
- 四月抗日专题
- 我想去抗日!
- 吉祥三宝抗日宣言
- 抗日:血战FIFA
- 到底谁在抗日
- 抗日影视搜集
- 大家一起重新抗日
- 怀恋抗日的英雄
- 【抗日转贴】 number 1
- Linux 系统常用命令
- Android高效内存:让图片占用尽可能少的内存
- 利用vue-cli创建Vue项目
- 04-Ubuntu-小技巧
- 浅析Mysql InnoDB存储引擎事务原理
- vijos1089——小胖抗日
- python--selenium多线程执行用例实例/执行多个用例
- Python版Raytracer
- MVC、MVP和MVVM
- dijkstra(优先队列) HDU 1874
- 解决Caffe训练过程中loss不变问题
- hover鼠标悬停事件
- Java8使用Streams处理数据
- ios 设备信息