zoukankan      html  css  js  c++  java
  • poj1925Spiderman(dp)

    链接

    确实是破题 按复杂度估计怎么着也不能按坐标D 啊

    网上的代码交上去还TLE 无语了  多次TLE之后终于看到一次WA。。好高兴

    以横坐标进行DP dp[j] = min(dp[j],dp[2*x[i]-j]+1) 这个2*x[i]-j其实是 j+2*(x[i]-j]) 由当前坐标可以由没跳这个个建筑物i之前的坐标推来

    限制条件为 (j-x[i])*(j-x[i])+(y[i]-y[1])*(y[i]-y[1])>y[i]*y[i];

     1 #include <iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<cstring>
     6 #include<stdlib.h>
     7 using namespace std;
     8 #define N 5010
     9 #define M 2000010
    10 #define INF 0xfffffff
    11 #define LL long long
    12 int dp[M];
    13 LL x[N],y[N];
    14 int main()
    15 {
    16     int i,j,k,n;
    17     scanf("%d",&k);
    18     while(k--)
    19     {
    20         scanf("%d",&n);
    21         for(i = 1; i <= n ; i++)
    22         scanf("%lld%lld",&x[i],&y[i]);
    23         for(i = 0; i <= M ; i++)
    24         dp[i] = INF;
    25         dp[x[1]] = 0;
    26         int ans = INF;
    27         for(i = 2 ; i <= n ; i++)
    28         {
    29             LL s1 = (y[i]-y[1])*(y[i]-y[1]);
    30             for(j = x[i] ; ; j++)
    31             {
    32                 LL s2 = (j-x[i])*(j-x[i]);
    33                 if(s2+s1>y[i]*y[i])
    34                 {
    35                     break;
    36                 }
    37                 if(2*x[i]-j>=x[1])
    38                 dp[j] = min(dp[2*x[i]-j]+1,dp[j]);
    39                 else
    40                 break;
    41                 if(j>=x[n])
    42                 ans = min(ans,dp[j]);
    43             }
    44         }
    45         if(ans==INF)
    46         printf("-1
    ");
    47         else
    48         printf("%d
    ",ans);
    49     }
    50     return 0;
    51 }
    View Code
  • 相关阅读:
    出差兰州
    出差乌鲁木齐(3)
    依赖倒置原则
    .NET 打印界面
    出差乌鲁木齐2
    出差乌鲁木齐(2)
    出差乌鲁木齐3
    IStyleGallery.AddItem、UpdateItem、RemoveItem用法
    Shapefile记录检索
    c#利用最小二乘法拟合任意次函数曲线(转)
  • 原文地址:https://www.cnblogs.com/shangyu/p/3325218.html
Copyright © 2011-2022 走看看