这几天终于把topcoder摸熟了。。。。。。。。。。
编码速度和反应速度还是太慢,不然的话,这样水题应该在最多30分钟A掉的。。。。。。。。。
读代码能力太菜,别人的很多可以chan 的代码,多没读懂。。。。。。。。。
#include<iostream>
#include<vector>
#include<string.h>
using namespace std;
int p[402][402]={0};
bool v[402][402]={0};
class CandyShop
{
public:
int countProbablePlaces(vector <int> X, vector <int> Y, vector <int> R)
{
int len=X.size();
for(int i=0;i<len;i++)
{
//cin>>X[i]>>Y[i]>>R[i];
X[i]+=200;
Y[i]+=200;
}
for(int i=0;i<len;i++)
{
memset(v,0,sizeof(v));
for(int j=0;j<=R[i];j++)
{
for(int k=0;k<=j;k++)
for(int u=0;u<=j;u++)
if(u+k==j)
{
if(v[X[i]-u][Y[i]+k]==0){p[X[i]-u][Y[i]+k]++;v[X[i]-u][Y[i]+k]=1;}
if(v[X[i]+u][Y[i]-k]==0){p[X[i]+u][Y[i]-k]++;v[X[i]+u][Y[i]-k]=1;}
if(v[X[i]+u][Y[i]+k]==0){p[X[i]+u][Y[i]+k]++;v[X[i]+u][Y[i]+k]=1;}
if(v[X[i]-u][Y[i]-k]==0){p[X[i]-u][Y[i]-k]++;v[X[i]-u][Y[i]-k]=1;}
if(v[X[i]-k][Y[i]+u]==0){p[X[i]-k][Y[i]+u]++;v[X[i]-k][Y[i]+u]=1;}
if(v[X[i]+k][Y[i]-u]==0){p[X[i]+k][Y[i]-u]++;v[X[i]+k][Y[i]-u]=1;}
if(v[X[i]+k][Y[i]+u]==0){ p[X[i]+k][Y[i]+u]++;v[X[i]+k][Y[i]+u]=1;}
if(v[X[i]-k][Y[i]-u]==0){p[X[i]-k][Y[i]-u]++;v[X[i]-k][Y[i]-u]=1;}
}
}
}
int ans=0;
for(int i=0;i<402;i++)
for(int j=0;j<402;j++)
{
if(p[i][j]==len)
{
// printf("%d***%d/n",i,j);
ans++;
}
}
//cout<<ans<<endl;
return ans;
}
};