设为首页 加入收藏

TOP

130831组队赛-Regionals 2011, Asia - Kuala Lumpur(三)
2014-11-23 21:46:34 来源: 作者: 【 】 浏览:13
Tags:130831 组队 -Regionals 2011 Asia Kuala Lumpur
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(a,b,sizeof(a))
#define FOR(a,b,i) for(i=a;i<=b;++i)
#define For(a,b,i) for(i=a;i
using namespace std;
inline void RD(int &ret)
{
char c;
do
{
c=getchar();
}
while(c<'0'||c>'9');
ret=c-'0';
while((c=getchar())>='0'&&c<='9')
{
ret=ret*10+(c-'0');
}
}
inline void OT(int a)
{
if(a>=10)
{
OT(a/10);
}
putchar(a%10+'0');
}
struct xl
{
double x,y;
}v[1001];
double dis(int i, int j)
{
return sqrt((v[i].x-v[j].x)*(v[i].x-v[j].x)+(v[i].y-v[j].y)*(v[i].y-v[j].y));
}
int main()
{
int t,n,s,tmp,i,id[1001],l[1001],w,res;
double p,q;
RD(t);
while(t--)
{
scanf("%d%d%d%lf%lf",&n,&s,&tmp,&p,&q);
p+=q;
FOR(1,n,i)
{
scanf("%lf%lf",&v[i].x,&v[i].y);
id[i]=-1;
}
id[s]=0;
l[0]=s;
w=1;
res=0;
while(res
{
s=l[res];
FOR(1,n,i)
{
if(id[i]<0&&dis(s,i)
{
id[i]=id[s]+1;
l[w++]=i;
if(i==tmp)
{
break;
}
}
}
res++;
}
if(id[tmp]>=0)
{
printf("%d\n",id[tmp]);
}
else
{
printf("Impossible\n");
}
}
return 0;
}
I.Shortest Leash
应该是一道dp题,它要求狗可以选择多个向量的正负方向走,问最远能与远点的距离为多少。。。
我是用随机算法过的,目的在于将所有的向量打乱,使其在加上向量时,能够会在一次中找到正解。
[cpp]
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(a,b,sizeof(a))
#define FOR(a,b,i) for(i=a;i<=b;++i)
#define For(a,b,i) for(i=a;i
using namespace std;
struct xl
{
double x,y;
} p[101],q,l,r;
double dis(xl a)
{
return sqrt(a.x*a.x+a.y*a.y);
}
int main()
{
int t,i,j,z[101];
double ans;
while(scanf("%d",&t))
{
if(t==0)
{
break;
}
for(i=0; i
{
scanf("%lf%lf",&p[i].x,&p[i].y);
}
ans=0;
for(j=0;j<=10000;++j)
{
random_shuffle(p,p+t);//随机打乱数组
q.x=0;
q.y=0;
for(i=0; i
{
l=q;
r=q;
l.x+=p[i].x;
l.y+=p[i].y;
r.x-=p[i].x;
r.y-=p[i].y;
if(dis(l)>dis(r))
{
q=l;
}
else
{
q=r;
}
ans=max(ans,dis(q));
}
}
printf("%.3f\n",ans);
}
首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++中的引用和移动语义 下一篇(step8.2.6)hdu 1848(Fibonacci a..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Linux 系统监控 的完 (2025-12-27 08:52:29)
·一口气总结,25 个 L (2025-12-27 08:52:27)
·【总结】100个最常用 (2025-12-27 08:52:22)
·有没有哪些高效的c++ (2025-12-27 08:20:57)
·Socket 编程时 Accep (2025-12-27 08:20:54)