题目链接:https://www.spoj.com/problems/AMR11B/en/

题目大意就是要你求图形覆盖的格点数,标记每个图形里的未标记格点(包括边界),总标记数就是覆盖的总格点数。

 #include<iostream>
#include<algorithm>
using namespace std;
struct node{
int x;
int y;
};
int t,n,visit[][];
void ri(node &a)//将每个点的横纵坐标加100
{
a.x+=;
a.y+=;
}
int po(node a,node b)//计算向量的点乘
{
return a.x*b.x+a.y*b.y;
}
int main()
{
cin>>t;
while(t--)
{
cin>>n;
getchar();
for(int i=;i<;i++)
for(int j=;j<;j++)
visit[i][j]=;
while(n--)
{
char op[];
cin>>op;
if(op[]=='S')
{
node a;
int l;
cin>>a.x>>a.y>>l;
ri(a);
for(int i=a.x;i<=a.x+l;i++)
for(int j=a.y;j<=a.y+l;j++)
if(!visit[i][j])
visit[i][j]=;
}
else if(op[]=='C')
{
node a;
int r;
cin>>a.x>>a.y>>r;
ri(a);
for(int i=a.x-r;i<=a.x+r;i++)
for(int j=a.y-r;j<=a.y+r;j++)
if(!visit[i][j]&&(abs(a.x-i)*abs(a.x-i)+abs(a.y-j)*abs(a.y-j)<=r*r))
visit[i][j]=;
}
else
{//判断点是否在三角形内用到了斜面坐标系法,参考链接我会发到下面
node A,B,C,AC,AB;
cin>>A.x>>A.y>>B.x>>B.y>>C.x>>C.y;
ri(A);ri(B);ri(C);
int x1,x2,y1,y2;
x1=min(A.x,min(B.x,C.x));x2=max(A.x,max(B.x,C.x));//锁定判断范围
y1=min(A.y,min(B.y,C.y));y2=max(A.y,max(B.y,C.y));
AC.x=C.x-A.x;AC.y=C.y-A.y;AB.x=B.x-A.x;AB.y=B.y-A.y;
for(int i=x1;i<=x2;i++)
for(int j=y1;j<=y2;j++)
if(!visit[i][j])
{
node P,AP;
P.x=i;P.y=j;
AP.x=P.x-A.x;AP.y=P.y-A.y;
int a=po(AP,AC),b=po(AB,AB),c=po(AP,AB),d=po(AC,AB),e=po(AC,AC),ans;
ans=(a*b-c*d)+(c*e-a*d)-(e*b-d*d);
if((a*b-c*d)>=&&(c*e-a*d)>=)
if(ans<=)
{
visit[i][j]=;
}
}
}
}
int ans=;
for(int i=;i<;i++)
for(int j=;j<;j++)
if(visit[i][j])
ans++;
cout<<ans<<endl;
}
return ;
}

判断点是否在三角形内:https://www.cnblogs.com/kyokuhuang/p/4314173.html

SPOJ - AMR11B的更多相关文章

  1. Spring-2-B Save the Students(SPOJ AMR11B)解题报告及测试数据

    Save the Students Time Limit:134MS     Memory Limit:0KB     64bit IO Format:%lld & %llu   Descri ...

  2. SPOJ - AMR11B 判断是否在三角形 正方形 圆形内

    Hogwarts is under attack by the Dark Lord, He-Who-Must-Not-Be-Named. To protect the students, Harry ...

  3. BZOJ 2588: Spoj 10628. Count on a tree [树上主席树]

    2588: Spoj 10628. Count on a tree Time Limit: 12 Sec  Memory Limit: 128 MBSubmit: 5217  Solved: 1233 ...

  4. SPOJ DQUERY D-query(主席树)

    题目 Source http://www.spoj.com/problems/DQUERY/en/ Description Given a sequence of n numbers a1, a2, ...

  5. SPOJ GSS3 Can you answer these queries III[线段树]

    SPOJ - GSS3 Can you answer these queries III Description You are given a sequence A of N (N <= 50 ...

  6. 【填坑向】spoj COT/bzoj2588 Count on a tree

    这题是学主席树的时候就想写的,,, 但是当时没写(懒) 现在来填坑 = =日常调半天lca(考虑以后背板) 主席树还是蛮好写的,但是代码出现重复,不太好,导致调试的时候心里没底(虽然事实证明主席树部分 ...

  7. SPOJ bsubstr

    题目大意:给你一个长度为n的字符串,求出所有不同长度的字符串出现的最大次数. n<=250000 如:abaaa 输出: 4 2 1 1 1 spoj上的时限卡的太严,必须使用O(N)的算法那才 ...

  8. 【SPOJ 7258】Lexicographical Substring Search

    http://www.spoj.com/problems/SUBLEX/ 好难啊. 建出后缀自动机,然后在后缀自动机的每个状态上记录通过这个状态能走到的不同子串的数量.该状态能走到的所有状态的f值的和 ...

  9. 【SPOJ 1812】Longest Common Substring II

    http://www.spoj.com/problems/LCS2/ 这道题想了好久. 做法是对第一个串建后缀自动机,然后用后面的串去匹配它,并在走过的状态上记录走到这个状态时的最长距离.每匹配完一个 ...

随机推荐

  1. Android批量验证渠道、版本号(Linux版)

    功能:可校验单个或目录下所有apk文件的渠道号.版本号(Linux版本)使用说明:1.copy需要校验的apk文件到VerifyChannelVersion目录下2../VerifyChannelVe ...

  2. Kong管理UI -kong-dashboard

    本文仍然是在ubuntu18的环境下进行 https://github.com/PGBI/kong-dashboard kong dashboart如果要正常使用管理UI,前提为kong已经正常run ...

  3. 学习笔记之Problem Solving with Algorithms and Data Structures using Python

    Problem Solving with Algorithms and Data Structures using Python — Problem Solving with Algorithms a ...

  4. Failed to resolve: common Open File 导入项目问题

    Failed to resolve: common Open File  Warning:Configuration 'compile' is obsolete and has been replac ...

  5. 注解:大话AOP与Android的爱恨情仇

    转载:大话AOP与Android的爱恨情仇 1. AOP与OOP的区别 平时我接触多的就是OOP(Object Oriented Programming面向对象).AOP(Aspect Oriente ...

  6. windows下安装Scrapy框架

    一 首先我们通过pycharm安装: 发现不行,会报错. 二 通过命令行再次进行安装: 发现还是会报错: 更新下pip,继续安装,发现还是不行,那怎么办呢? 继续安装Scrapy发下还是不行: 那么我 ...

  7. python TKinter部分记录

    http://blog.shouji-zhushou.com/python-gui-tkinter-grid%E7%BD%91%E6%A0%BC%E5%87%A0%E4%BD%95%E5%B8%83% ...

  8. swift便利构造函数

    class Person: NSObject { var name: String? var age: Int = 0 //1便利构造函数,允许返回nil //2本身不负责对象的创建 //3需要在调用 ...

  9. git自定义项目钩子和全局钩子

    钩子介绍 自定义钩子分为:项目钩子和全局钩子 自定义全局钩子: 全局钩子目录结构: (注意:excludes目录结构是我们自定义的目录,规则逻辑在update.d/update.py脚本里实现的,非g ...

  10. 纯Java——简易高并发框架

    转自:https://blog.csdn.net/MonkeyDCoding/article/details/81369610 0.源代码github-简易高并发框架 注:本篇博客知识来自于网课. 1 ...