bzoj1744 [Usaco2005 oct]Skiing 奶牛滑雪
2017-06-13 16:04
399 查看
其实是很简单的spfa,但是出题人卡精度卡的丧心病狂= =。。
#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #define fo(i,a,b) for(int i=a;i<=b;i++) #define fd(i,a,b) for(int i=a;i>=b;i--) #define inf 1000000000 using namespace std; const int N=1e5+5; int a ; const int M=1e3+5; typedef double db; const db eps=1e-6; int mp[M][M]; bool vis[M][M]; struct node { int x,y; }q ; int ans,v; const int dx[4]={0,1,0,-1}; const int dy[4]={1,0,-1,0}; int n,m; db speed ,dis[M][M]; bool inr(int x,int y) { if (x<=n&&x>=1&&y<=m&&y>=1)return 1; return 0; } unsigned int t,w; inline void add(int x,int y,double z) { if (z<dis[x][y]) { dis[x][y]=z; if (vis[x][y])return; vis[x][y]=1,q[++w].x=x,q[w].y=y; } } int main() { scanf("%d%d%d",&v,&n,&m); fo(i,1,n) { fo(j,1,m)scanf("%d",&mp[i][j]); } speed[100]=1; fo(i,1,100)speed[i+100]=speed[i+99]*2; fd(i,99,1)speed[i]=speed[i+1]/2; fo(i,1,n) fo(j,1,m)dis[i][j]=1e10; add(1,1,0); t=1; while (t!=w+1) { int x=q[t].x,y=q[t++].y; fo(k,0,3) { int x1=x+dx[k]; int y1=y+dy[k]; if (inr(x1,y1)) { add(x1,y1,dis[x][y]+speed[mp[x][y]-mp[1][1]+100]); } } vis[x][y]=0; } /*fo(i,1,n) { fo(j,1,m)printf("%.2lf(%.2lf) ",dis[i][j],speed[i][j]); printf("\n"); }*/ printf("%.2f",1.0*dis [m]/v); }
相关文章推荐
- BZOJ1744: [Usaco2005 oct]Skiing 奶牛滑雪
- bzoj1708 [Usaco2007 Oct]Money奶牛的硬币
- bzoj 1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛
- BZOJ_P1666 [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏(hhhhhh)
- bzoj1684 [Usaco2005 Oct]Close Encounter
- bzoj 1666: [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
- BZOJ 1708: [Usaco2007 Oct]Money奶牛的硬币( dp )
- bzoj1684 [Usaco2005 Oct]Close Encounter
- 【BZOJ】1708: [Usaco2007 Oct]Money奶牛的硬币
- bzoj 1667: [Usaco2006 Oct]Cows on Skates滑旱冰的奶牛(BFS)
- 【BZOJ】1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛 最长上升子序列
- bzoj1666[Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
- bzoj 1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛 暴力
- BZOJ 1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛( LIS )
- 【bzoj 1708】[Usaco2007 Oct]Money奶牛的硬币
- bzoj 1685: [Usaco2005 Oct]Allowance 津贴(贪心)
- BZOJ 1685/Luogu 2376: [Usaco2005 Oct]Allowance 津贴
- bzoj1666[Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
- BZOJ 1666: [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
- bzoj1669 [Usaco2006 Oct]Hungry Cows饥饿的奶牛