首页 > 代码库 > HDU 4941 Magical Forest
HDU 4941 Magical Forest
用map存信息,各种标记,各种。。。写的很乱,表在意。。。
1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include <map> 5 using namespace std; 6 7 map <int,int> mm[100005]; 8 map <int,int> c; 9 map <int,int> r;10 map <int,int> ys;11 int main (){12 int n,m,k;13 int w;14 scanf ("%d",&w);15 for (int kase=1;kase<=w;kase++){16 c.clear();17 r.clear();18 ys.clear() ;19 scanf ("%d%d%d",&n,&m,&k);//n>>m>>k;20 for (int i=0;i<=k;i++)21 mm[i].clear() ;22 for (int i=1;i<=k;i++){23 int x,y,p;24 scanf ("%d%d%d",&x,&y,&p);25 //cin>>x>>y>>p;26 x++;y++;27 r[x]=x;c[y]=y;28 //mm[z]=c;29 if (ys[x]==0)30 ys[x]=i;31 mm[ys[x]][y]=p;32 }33 int t;34 scanf ("%d",&t);35 //cin>>t;36 printf ("Case #%d:\n",kase);37 //cout<<"Case #"<<kase<<":"<<endl;38 while (t--){39 int q,a,b;40 int temp;41 scanf ("%d%d%d",&q,&a,&b);42 //cin>>q>>a>>b;43 a++;b++;44 if (q==1){45 if (r[a]&&r[b])46 temp=r[a];r[a]=r[b];r[b]=temp;47 }48 else if (q==2){49 if (c[a]&&c[b])50 temp=c[a];c[a]=c[b];c[b]=temp;51 }52 else {53 if (r[a]&&c[b])54 printf ("%d\n",mm[ys[r[a]]][c[b]]);55 else printf ("0\n");56 }57 }58 }59 return 0;60 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。