施工中(8/13)
题目链接:http://codeforces.com/gym/101981
A.Adrien and Austin
队友写的,没看题
代码:
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e6+5;
int n,k;
void solve()
{
int flag=1;
if(n==0)
flag=0;
if(k==1&&n%2==0)
flag=0;
if(flag)
{
printf("Adrien\n");
}
else
{
printf("Austin\n");
}
}
int main()
{
while(~scanf("%d%d",&n,&k))
{
solve();
}
return 0;
}
D.Country Meow
最小球覆盖板题
代码:
#include<bits/stdc++.h>
const int MAXN=105;
const double eps=1e-8;
struct Tpoint
{
double x,y,z;
};
int npoint,nouter;
Tpoint pt[MAXN],outer[4],res;
double radius,tmp;
inline double dist(Tpoint p1,Tpoint p2)
{
double dx=p1.x-p2.x,dy=p1.y-p2.y,dz=p1.z-p2.z;
return (dx*dx+dy*dy+dz*dz);
}
inline double dot(Tpoint p1,Tpoint p2)
{
return p1.x*p2.x+p1.y*p2.y+p1.z*p2.z;
}
void ball()
{
Tpoint q[3];double m[3][3],sol[3],L[3],det;
res.x=res.y=res.z=radius=0;
switch(nouter)
{
case 1: res=outer[0];break;
case 2:
res.x=(outer[0].x+outer[1].x)/2;
res.y=(outer[0].y+outer[1].y)/2;
res.z=(outer[0].z+outer[1].z)/2;
radius=dist(res,outer[0]);
break;
case 3:
for(int i=0;i<2;i++)
{
q[i].x=outer[i+1].x-outer[0].x;
q[i].y=outer[i+1].y-outer[0].y;
q[i].z=outer[i+1].z-outer[0].z;
}
for(int i=0;i<2;i++)
{
for(int j=0;j<2;j++)
{
m[i][j]=dot(q[i],q[j])*2;
}
}
for(int i=0;i<2;i++)
{
sol[i]=dot(q[i],q[i]);
}
if(fabs(det=m[0][0]*m[1][1]-m[0][1]*m[1][0])<eps)
return ;
L[0]=(sol[0]*m[1][1]-sol[1]*m[0][1])/det;
L[1]=(sol[1]*m[0][0]-sol[0]*m[1][0])/det;
res.x=outer[0].x+q[0].x*L[0]+q[1].x*L[1];
res.y=outer[0].y+q[0].y*L[0]+q[1].y*L[1];
res.z=outer[0].z+q[0].z*L[0]+q[1].z*L[1];
radius=dist(res,outer[0]);
break;
case 4:
for(int i=0;i<3;i++)
{
q[i].x=outer[i+1].x-outer[0].x;
q[i].y=outer[i+1].y-outer[0].y;
q[i].z=outer[i+1].z-outer[0].z;
sol[i]=dot(q[i],q[i]);
}
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
m[i][j]=dot(q[i],q[j])*2;
}
}
det=m[0][0]*m[1][1]*m[2][2]
+m[0][1]*m[1][2]*m[2][0]
+m[0][2]*m[2][1]*m[1][0]
-m[0][2]*m[1][1]*m[2][0]
-m[0][1]*m[1][0]*m[2][2]
-m[0][0]*m[1][2]*m[2][1];
if(fabs(det)<eps) return ;
for(int j=0;j<3;j++)
{