tc终于变绿了。。。

Post by zerob13

今天做了一场topcoder,终于让我的万年灰号变成绿色的了。。。

虽然么有cha人代码,呵呵

今天的题目不是很难,所以比较轻松的解决了前两个水题

第一题ImportantTasks是给你两堆数字,让你找出上一堆比下一堆小的数最多有几对,要一一对应。。。

排序,然后直接水过…

include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define PB push_back #define MP make_pair #define REP(i,n) for(i=0;i=(l);--i) typedef vector VI; typedef vector VS; typedef vector VD; typedef long long LL; typedef pair PII; class ImportantTasks { public: int maximalCost(vector complexity, vector computers) { bool hashh[100]={0}; int i,j,k=0,l; sort(complexity.begin(),complexity.end()); sort(computers.begin(),computers.end()); for(i=complexity.size()-1;i>=0;i--) { l=complexity[i]; for(j=0;j<computers.size break="" hashh="" if="" k="" return="">第二题KnightsTour就是骑士走棋盘,不过有些点不能走,而且每个点要动态更新权值。。。暴力+模拟。。。水过

include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define PB push_back #define MP make_pair #define REP(i,n) for(i=0;i=(l);--i) typedef vector VI; typedef vector VS; typedef vector VD; typedef long long LL; typedef pair PII; int as[9][9]; int dir[8][2]={{2,1},{-2,1},{2,-1},{-2,-1},{1,2},{1,-2},{-1,2},{-1,-2}}; class KnightsTour { public: int visitedPositions(vector board) { int k,i,j; struct knight{ int x,y; int t; bool ha[9][9]; bool move(vector bo) { int i,j,k,si,sj,ax=-1,ay=-1,ass=-1; for(i=0;i=8||sj>=8) continue; if(ha[si][sj]) continue; if(bo[si][sj]'*') continue; if(ax-1||(ass>as[si][sj])||(assas[si][sj]&&ax>si)||(assas[si][sj]&&ax==si&&ay>sj)) { ax=si; ay=sj; ass=as[si][sj]; } } if(ax!=-1) { ha[ax][ay]=1; x=ax; y=ay; t++; memset(as,0,sizeof(as)); for(i=0;i<bo.size for="" if="" si="i+dir[k][0];" sj="j+dir[k][1];">=8||sj>=8) continue; if(bo[si][sj]!=''&&!ha[si][sj]) as[i][j]++; } } } } return 1; }else return 0; } }; knight head; memset(as,0,sizeof(as)); for(i=0;i<board.size break="" for="" head.ha="" head.t="1;" head.x="i;" head.y="j;" if="" int="" memset="" si="i+dir[k][0];" sj="j+dir[k][1];">=8||sj>=8) continue; if(board[si][sj]!=''&&!head.ha[si][sj]) as[i][j]++; } } } while(head.move(board)); return head.t; } </board.size></bo.size>

第三题没能看完,因为临时有事情出去了。。。回来一看,自己的号终于变绿了。。。

话说今天这一场是facebook赞助的。。。

</computers.size>