链接

确实是破题 按复杂度估计怎么着也不能按坐标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];

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstring>
#include<stdlib.h>
using namespace std;
#define N 5010
#define M 2000010
#define INF 0xfffffff
#define LL long long
int dp[M];
LL x[N],y[N];
int main()
{
int i,j,k,n;
scanf("%d",&k);
while(k--)
{
scanf("%d",&n);
for(i = ; i <= n ; i++)
scanf("%lld%lld",&x[i],&y[i]);
for(i = ; i <= M ; i++)
dp[i] = INF;
dp[x[]] = ;
int ans = INF;
for(i = ; i <= n ; i++)
{
LL s1 = (y[i]-y[])*(y[i]-y[]);
for(j = x[i] ; ; j++)
{
LL s2 = (j-x[i])*(j-x[i]);
if(s2+s1>y[i]*y[i])
{
break;
}
if(*x[i]-j>=x[])
dp[j] = min(dp[*x[i]-j]+,dp[j]);
else
break;
if(j>=x[n])
ans = min(ans,dp[j]);
}
}
if(ans==INF)
printf("-1\n");
else
printf("%d\n",ans);
}
return ;
}

最新文章

  1. EF-DbUpdateException--实体类和数据库列不对应的解决方案
  2. Xshell远程管理Linux
  3. 27-React Lists and Keys
  4. mysql字符串截取
  5. 最流行的编程语言JavaScript能做什么?
  6. iOS图片处理
  7. sql - 修改结构
  8. Net Core- 配置组件
  9. 巧用ajax请求服务器加载数据列表时提示loading
  10. 补习系列(14)-springboot redis 整合-数据读写
  11. es6中的模块化
  12. js把某个div或其他元素用图片的形式导出或下载
  13. mysql 地理位置定位
  14. ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-WebApi与Unity注入
  15. Delphi编程中动态菜单要点归纳
  16. webapi返回泛型给easyui
  17. centos服务器删除/usr目录怎么办
  18. Hadoop概念学习系列之Hadoop新手学习指导之入门需知(二十)
  19. Android 心跳动画
  20. 从零开始写一个武侠冒险游戏-0-开发框架Codea简介

热门文章

  1. php中类的声明与使用
  2. 最简便的清空memcache的方法
  3. .NET基础之深度复制和浅度复制
  4. 解决 ListView 水平滚动条不出现的问题(转载)
  5. showModalDialog 超过问题
  6. IOS成长之路-调用照相机和相册功能(转)
  7. 通过物理模型生成Java代码
  8. js注册登录审核
  9. 快速配置Ehcache
  10. 关于ref与out的区别