Topcoder SRM 637 (Div.2)
2014-10-24 20:50
218 查看
A.GreaterGameDiv2
不能更水
View Code
==================================
第一次用,TC客户端的插件,怎么说呢,相当方便。省去了每次粘类名的麻烦,它都给自动生成,而且测试也简单的多。
总之这次比赛还算满意的,虽然比赛后仍是灰名,但rating涨了104,也是醉了,还没有绿名。
这次写了两道题,第三道因为写的略微麻烦没有写完,嘛,反正最后也是参考了别人的代码才得以简化的。
【一点经验】图论题目如果点少的话还是尽量用邻接矩阵,这样也不容易出错,代码写的也快,尤其是对TC这种短时间的比赛
不能更水
#include<cstdio> #include <cstdlib> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> #include<set> #include<map> #include<stack> #include<string> #include <ctime> #include<vector> #include<queue> #include <cctype> #include<sstream> #define eps 0.000001 #define ALL(x) x.begin(),x.end() #define INS(x) inserter(x,x.begin()) #define clr(x,a) memset(x,a,sizeof(x)) #define sz(x) (int)x.size() #define pb push_back #define mp make_pair using namespace std; typedef long long LL; int n,m; class ConnectingGameDiv2 { int dis[260][260],sum[260],start,finish,left,right; vector <string> grid; public: void addedge(int i,int j,int x, int y) { if (x<0||y<0||x>=n||y>=m) return; int a=(int)grid[i][j]; int b=(int)grid[x][y]; dis[a][b]=min(dis[a][b],sum[a]); dis[b][a]=min(dis[b][a],sum[b]); } int getmin(vector <string> board) { grid=board; int i,j,k; n=board.size(); m=board[0].size(); memset(sum,0,sizeof(sum)); for (i=0;i<n;i++) { for (j=0;j<m;j++) { sum[(int)board[i][j]]++; } } for (i=0;i<260;i++) { for (j=0;j<260;j++) { dis[i][j]=100000; } } for (i=0;i<260;i++) dis[i][i]=0; start=0; finish=1; for (i=0;i<n;i++) { left=(int)board[i][0]; right=(int)board[i][m-1]; dis[start][left]=0; dis[right][finish]=sum[right]; } for (i=0;i<n;i++) { for (j=0;j<m;j++) { addedge(i,j,i+1,j); addedge(i,j,i-1,j); addedge(i,j,i,j+1); addedge(i,j,i,j-1); addedge(i,j,i+1,j+1); addedge(i,j,i-1,j-1); addedge(i,j,i+1,j-1); addedge(i,j,i-1,j+1); } } for (k=0;k<260;k++) { for (i=0;i<260;i++) { for (j=0;j<260;j++) { if (i==j||j==k||i==k) continue; dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]); } } } return dis[start][finish]; } };
View Code
==================================
第一次用,TC客户端的插件,怎么说呢,相当方便。省去了每次粘类名的麻烦,它都给自动生成,而且测试也简单的多。
总之这次比赛还算满意的,虽然比赛后仍是灰名,但rating涨了104,也是醉了,还没有绿名。
这次写了两道题,第三道因为写的略微麻烦没有写完,嘛,反正最后也是参考了别人的代码才得以简化的。
【一点经验】图论题目如果点少的话还是尽量用邻接矩阵,这样也不容易出错,代码写的也快,尤其是对TC这种短时间的比赛
相关文章推荐
- Topcoder SRM 565 Div.2
- Topcoder SRM 648 (div.2)
- Topcoder srm 653 div.2 1000 - SingingEasy(区间DP)
- Topcoder SRM 721 Div.2 A. FlightDataRecorder
- topcoder SRM 637 DIV2题解
- Topcoder srm 653 div.2 500 - RockPaperScissorsMagicEasy(DP)
- Topcoder SRM 721 Div.2 B. RememberWordsEasy
- Topcoder SRM 648 Div.2 - A(水), B(枚举),C(DP/构造)
- TopCoder SRM 637 Div2 C
- Topcoder SRM 721 Div.2 C. ApocalypseEasy
- TopCoder SRM 642 Div.2 1000 --二分+BFS
- TopCoder SRM 637 Div2 B
- topcoder SRM 637 div2+div1 250
- TopCoder SRM 637 Div2 A
- TopCoder SRM 639 Div.2 500 AliceGameEasy
- TopCoder SRM 634 Div.2[ABC]
- TopCoder SRM 633 Div.2 500 Jumping
- TopCoder SRM 639 Div.2 500 AliceGameEasy --乱搞
- 【topcoder第一弹】 SRM 144 Div.2 whatTime
- [Topcoder] SRM197