CROC-MBTU 2012, Final Round (Online version, Div. 2)笔记
2012-11-28 20:52
323 查看
感觉这次的题目几乎没有算法,都是实现有点烦的题目,代码能力还有待提高.
D. Building Bridge
题意:
一个平面上有4个点A,B,C,D,A点坐标确定为(0,0),B点坐标为(a,y1),C点坐标为(B,y2),C到D点的距离确定为L,求选取哪个y1和y2的组合可以使总距离最小.
赛时想法:
当时的情况是C题写的有点慢了,D题剩下40分钟不到,不管是不是心急吧,反正图画出来以后没有什么明确的想法...看着10W的M和N,大脑处于基本空白的状态...坚持到还有20分钟的时候就暂时放弃了...想着就算有了思路也不一定有时间实现了,然后去看别人前面的代码,想要hack赚点分...不过hack还是风险太大了,这次才知道在比赛中看别人的代码是不能复制的,所以样例也没法测试,最后也没有hack,所以总结起来就是最后的时间是被我浪费掉了.
正确思路:
结束以后抱着强烈的好奇心就去看别人的解法了...看完第一个人的就傻了...比赛的时候一直想着,由于L是不确定的,所以不能直接算...可是完全没有往枚举y2的方向去想,恍然大悟了...其实就是枚举y2的坐标,然后三分确定y1的坐标.
代码1:
View Code
D. Building Bridge
题意:
一个平面上有4个点A,B,C,D,A点坐标确定为(0,0),B点坐标为(a,y1),C点坐标为(B,y2),C到D点的距离确定为L,求选取哪个y1和y2的组合可以使总距离最小.
赛时想法:
当时的情况是C题写的有点慢了,D题剩下40分钟不到,不管是不是心急吧,反正图画出来以后没有什么明确的想法...看着10W的M和N,大脑处于基本空白的状态...坚持到还有20分钟的时候就暂时放弃了...想着就算有了思路也不一定有时间实现了,然后去看别人前面的代码,想要hack赚点分...不过hack还是风险太大了,这次才知道在比赛中看别人的代码是不能复制的,所以样例也没法测试,最后也没有hack,所以总结起来就是最后的时间是被我浪费掉了.
正确思路:
结束以后抱着强烈的好奇心就去看别人的解法了...看完第一个人的就傻了...比赛的时候一直想着,由于L是不确定的,所以不能直接算...可是完全没有往枚举y2的方向去想,恍然大悟了...其实就是枚举y2的坐标,然后三分确定y1的坐标.
代码1:
View Code
#include<stdio.h> char map[110][10010]; int main() { int n,m,dir,pos,l,r,i,c; __int64 ans; scanf("%d%d",&n,&m); ans=0; for(i=1;i<=n;i++) { scanf("%s",map[i]+1); map[i][0]=map[i][m+1]='#'; } dir=1,pos=1;//记录方向,dir=1代表向右,dir=0代表向左,pos代表当前的位置 for(i=1;i<n;i++) { c=0; l=r=pos;//左右边界一开始等于出发点,然后分别向左右拓展开 while(1) { if(dir) { while(map[i][r+1]=='.'&&map[i+1][r]!='.') r++; ans+=r-pos+1; pos=r; if(map[i+1][r]=='.') { break; } else if(map[i][r+1]=='+') { map[i][r+1]='.'; dir=!dir; c=0;//如果是石头墙,则上次碰到混凝土墙的标记应取消 } else if(!c&&map[i][r+1]=='#') { c=1;//如果碰到混凝土墙则标记 dir=!dir; } else { printf("Never\n");//碰到2次混凝土墙还没有跳出,说明不可能出去了. return 0;//由于CF是分组测试,可以直接retun跳出,免去不必要的标记. } } else { while(map[i][l-1]=='.'&&map[i+1][l]!='.') l--; ans+=pos-l+1; pos=l; if(map[i+1][l]=='.') { break; } else if(map[i][l-1]=='+') { map[i][l-1]='.'; dir=!dir; c=0; } else if(!c&&map[i][l-1]=='#') { c=1; dir=!dir; } else { printf("Never\n"); return 0; } } } } printf("%I64d\n",ans); return 0; }
相关文章推荐
- CROC-MBTU 2012, Final Round (Online version, Div. 2)
- CROC-MBTU 2012, Final Round (Online version, Div. 2)总结
- [CROC-MBTU 2012, Final Round (Online version, Div. 2)]A. Paper Work
- CROC-MBTU 2012, Final Round (Online version, Div. 2)
- CROC-MBTU 2012, Final Round (Online version, Div. 2) (同是坑......待填..............无视之)
- CROC-MBTU 2012, Final Round (Online version, Div. 2) A - Paper Work
- codeforce CROC-MBTU 2012, Final Round (Online version, Div. 2)
- Croc Champ 2013 - Finals (online version, Div. 1)
- CF CROC-MBTU 2012, Final Round div 2
- Croc Champ 2013 - Finals (online version, Div. 1)
- CF Croc Champ 2013 - Finals (online version, Div. 1) C(greedy)
- CROC-MBTU 2012, Elimination Round (ACM-ICPC) H DP题目
- CROC-MBTU 2012, Elimination Round (ACM-ICPC)
- CROC-MBTU 2012, Elimination Round (ACM-ICPC) H. Queries for Number of Palindromes
- CROC-MBTU 2012, Elimination Round (ACM-ICPC) E YY题目
- CROC-MBTU 2012, Elimination Round (ACM-ICPC)
- CROC-MBTU 2012, Elimination Round (ACM-ICPC) D. Restoring Table
- CROC-MBTU 2012, Elimination Round (ACM-ICPC)
- CROC-MBTU 2012, Elimination Round (ACM-ICPC) E. Mishap in Club
- CROC-MBTU 2012, Elimination Round / 245F Log Stream Analysis (日期处理&二分)