2013_HangZhou_Online
来源:互联网 发布:nba2k15捏樱木花道数据 编辑:程序博客网 时间:2024/05/18 02:18
这个专题充分暴露了不认真思考的缺点,总是感觉差不多就下手。
对于A题目,以为是强连通分量缩点。但实际上是求桥。
并考虑:1.重边 2.权重为0则初始值不能赋值为0,当选取权重为0的边答案为1 3.没有答案。
对于B题目,起初想得很复杂,以为是动态规划,一直在思考转移方程。但其实DFS就可以,但漏掉了形成正方形的另一个条件,底边平行。
对于C题目,这里又出现了漏洞(直接DFS不用考虑这些)就是停止的情况用循环写要格外考虑。可我却模拟做,用循环来写。
这里还自己编了点数据。
/*40 3 10 0 340 2 10 3 040 3 30 0 340 3 30 0 0 40 3 31 3 140 0 00 3 1*/#include <iostream>#include <cstdio>#include <vector>#include <string>#define maxn 1005using namespace std;int N,M;int lr,lc,ld,tr,tc,td;int direct[4][2]={0,1, 1,0, 0,-1, -1,0};struct point{ int lt,tt;}P[maxn][maxn];int main(){ int i,j,k; int flag; while(scanf("%d",&N)) { if(N==0) break; scanf("%d%d%d%d%d%d",&lr,&lc,&ld,&tr,&tc,&td); if(lr==tr&&lc==tc) { printf("%d %d\n",lr,lc); continue; } memset(P,-1,sizeof(P)); k=1; P[lr][lc].lt=k++; while(1) { while(1) { if(lr+direct[ld][0]<0 || lr+direct[ld][0]>=N || lc+direct[ld][1]<0 || lc+direct[ld][1]>=N || P[ lr+direct[ld][0] ][ lc+direct[ld][1] ].lt!=-1) break; lr+=direct[ld][0];lc+=direct[ld][1]; P[lr][lc].lt=k++; } ld++; ld%=4; if(lr+direct[ld][0]<0 || lr+direct[ld][0]>=N || lc+direct[ld][1]<0 || lc+direct[ld][1]>=N || P[ lr+direct[ld][0] ][ lc+direct[ld][1] ].lt!=-1) break; } /*for(i=0;i<N;i++) {for(j=0;j<N;j++) printf("%2d ",P[i][j].lt); printf("\n");}*/ j=1;P[tr][tc].tt=j++; flag=0; while(1) { while(1) { if(tr+direct[td][0]<0 || tr+direct[td][0]>=N || tc+direct[td][1]<0 || tc+direct[td][1]>=N || P[ tr+direct[td][0] ][ tc+direct[td][1] ].tt!=-1) break; tr+=direct[td][0];tc+=direct[td][1]; P[tr][tc].tt=j++; if(P[tr][tc].lt==P[tr][tc].tt || (P[lr][lc].lt<P[lr][lc].tt)) { flag=1;break; }//if(j>=k)break; }//if(j>=k)break; if(flag==1) break; td+=3; td%=4; if(tr+direct[td][0]<0 || tr+direct[td][0]>=N || tc+direct[td][1]<0 || tc+direct[td][1]>=N || P[ tr+direct[td][0] ][ tc+direct[td][1] ].tt!=-1) break; }if(P[tr][tc].lt>=P[tr][tc].tt)printf("%d %d\n",tr,tc); else if(flag==0) printf("-1\n"); else printf("%d %d\n",tr,tc); } return 0;}
ALL in all,下次写题目先把情况考虑周全。问题建模正确再开始。特殊数据自己要先构建出来。
尤其是为0,重点,等
0 0
- 2013_HangZhou_Online
- 2013_hangzhou_online
- 2013
- 2013
- 2013!
- 2013
- 2013
- 2013
- 2013
- 2013
- 2013
- 2013
- 2013
- 2013
- 2013
- 2013
- 2013
- 2013: Sum
- Android中IntentService的原理及使用
- 理解闭包
- js document.all的用法
- layouSubviews调用时机
- 关注智能手机的一些杂事
- 2013_HangZhou_Online
- AFNetworking2.0源码解析
- 在Ubuntu上的传感器
- ROS-Industrial
- 基于Video4Linux的视频采集模块开发
- UML类图几种关系的总结
- 树莓派开发系列教程7——树莓派做web服务器(nginx、Apache)
- onActivityResult传值的使用
- 树莓派的简单配置