做国际贸易哪个网站比较好,给网站做选题,05网全部答案数学,个人博客网站设计模板题意#xff1a;从原点出发#xff0c;沿着8个方向走#xff0c;每次走1个点格或者根号2个点格的距离#xff0c;最终回到原点#xff0c;求围住的多边形面积。分析#xff1a;直接记录所经过的点#xff0c;然后计算多边形面积。注意#xff0c;不用先保存所有的点从原点出发沿着8个方向走每次走1个点格或者根号2个点格的距离最终回到原点求围住的多边形面积。 分析直接记录所经过的点然后计算多边形面积。注意不用先保存所有的点然后计算面积边走变算不然会超内存。最多有1000000个点。 注意精度问题使用long long /__int64直接使用double不准确。方向的处理使用数组。 // Time 94ms; Memory 1036K
#includeiostream
#includecstring
#define maxn 1000010using namespace std;char s[maxn];
long long dx[]{-1,0,1,-1,0,1,-1,0,1},dy[]{-1,-1,-1,0,0,0,1,1,1};struct point
{long long x,y;point(long long xx0,long long yy0):x(xx),y(yy){}
}a,b;long long cross()
{return a.x*b.y-a.y*b.x;
}
int main()
{int i,t,l;long long are;cint;while(t--){cins;lstrlen(s);if(l2){cout0endl;continue;}apoint(dx[s[0]-49],dy[s[0]-49]);bpoint(a.xdx[s[1]-49],a.ydy[s[1]-49]);arecross();for(i2;s[i];i){ab;bpoint(a.xdx[s[i]-49],a.ydy[s[i]-49]);arecross();}if(are0) are-are;coutare/2;if(are%2) cout.5;coutendl;}return 0;
}转载于:https://www.cnblogs.com/java20130726/p/3218170.html