大意: 给定$n$个凸多边形, $q$个询问, 求$[l,r]$内闵可夫斯基区间和的顶点数.

要用到一个结论, 闵可夫斯基和凸包上的点等于向量种类数.

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <queue>
#include <map>
#define REP(i,a,n) for(int i=a;i<=n;++i)
#define pb push_back
using namespace std;
typedef pair<int,int> pii;
const int N = 1e6+10;
int n, q, cnt, x[N], y[N], c[N];
int L[N], R[N], ans[N];
struct _ {int l,r;} b[N];
vector<int> g[N];
pii a[N];
map<pii,int> pre;int gcd(int a,int b) {return b?gcd(b,a%b):a;}
pii reduce(int x, int y) {int g = gcd(abs(x),abs(y));if (g) x/=g,y/=g;return pii(x,y);
}
void add(int x, int v) {for (; x<=cnt; x+=x&-x) c[x]+=v;
}
int query(int x) {int r = 0;for (; x; x^=x&-x) r+=c[x];return r;
}int main() {scanf("%d", &n);REP(i,1,n) {int k;scanf("%d", &k);REP(j,0,k-1) scanf("%d%d",x+j,y+j);L[i] = cnt+1;REP(j,0,k-1) a[++cnt] = reduce(x[j]-x[(j+1)%k],y[j]-y[(j+1)%k]);R[i] = cnt;}scanf("%d", &q);REP(i,1,q) {int l, r;scanf("%d%d", &l, &r);b[i].l = L[l];b[i].r = R[r];g[b[i].r].pb(i);}int now = 1;REP(i,1,cnt) {if (pre[a[i]]) add(pre[a[i]],-1);pre[a[i]] = i;add(i,1);for (int j:g[i]) ans[j] = query(b[j].r)-query(b[j].l-1);}REP(i,1,q) printf("%d\n", ans[i]);
}

转载于:https://www.cnblogs.com/uid001/p/11205919.html

Geometers Anonymous Club CodeForces - 1195F (闵可夫斯基和)相关推荐

  1. Codeforces Round #574 (Div. 2) F. Geometers Anonymous Club (闵可夫斯基求和)

    题目链接:http://codeforces.com/contest/1195/problem/F 题意:现在有nnn个凸包,标号分别为1−n1-n1−n给出所有的顶点坐标,有qqq次询问,每次询问给 ...

  2. Codeforces - Delivery Club

    题目链接:Codeforces - Delivery Club 首先二分最长距离. 然后按照任务顺序,加入点到set当中. 对于当前点,排序无用的点,也就是距离a[i]大于mid 的点.如果某一时刻s ...

  3. Codeforces Round #309 (Div. 2) A. Kyoya and Photobooks 字符串水题

    A. Kyoya and Photobooks Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...

  4. Codeforces Round #114 (Div. 1) A. Wizards and Trolleybuses 物理题

    A. Wizards and Trolleybuses Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/conte ...

  5. 【CodeForces 1253C --- Sweets Eating】DP

    [CodeForces 1253C --- Sweets Eating]DP Description Tsumugi brought n delicious sweets to the Light M ...

  6. Error:warning: Ignoring InnerClasses attribute for an anonymous inner class

    最近安装项目到自己oppo手机上提示Error:warning: Ignoring InnerClasses attribute for an anonymous inner class,但是在模拟机 ...

  7. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  8. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  9. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

最新文章

  1. wmp流代理服务器设置为空,wmp服务器运行失败
  2. Jenkins Android gradle只能打包app-release-unsigned.apk
  3. Keil编译产生的RO,RW和ZI是什么
  4. 关闭swap的危害——一旦内存耗尽,由于没有SWAP的缓冲,系统会立即开始OOM
  5. Linux学习:gcc 编译工作流程
  6. Linux的unlink
  7. c语言竖等于意思,C语言竖式问题
  8. android 删除模拟器,android – 如何从avd设备中删除脱机模拟器?
  9. 用python画椭圆解释_怎么用python画椭圆?
  10. 欢庆博客达到V5级别,感恩所有程序员
  11. Python 输入整数进行排序
  12. iDrac6 虚拟控制台 连接失败
  13. 超详细!Jmeter性能测试(一)
  14. 《滕王阁序》本周部分GAN论文(0113-0117)
  15. 计算机的码片是指什么作用,码片速率
  16. 短信验证(吉信通),邮箱验证
  17. 计算机信息系统集成一级和二级资质认证通过企业名单
  18. 用JavaScript实现图片上传并预览
  19. 深度盘点:整理了32个Python图形化界面
  20. c 语言 pthread_create_【励达外语】第八篇 语言学习的5个关键期(上)

热门文章

  1. c++ 动态规划(数塔)
  2. BZOJ1452 [JSOI2009]Count 树状数组
  3. 开发者必备的12个JavaScript库
  4. 必须去收藏14个响应式布局的前端开发框架
  5. SQL改變字符串標識符
  6. 某程序的bug是什么意思?
  7. Python 3 利用机器学习模型 进行手写体数字检测
  8. 2017-2018-2 20155327 《信息安全系统设计基础》第2周学习总结
  9. css中那些容易被我们程序猿所忽略的选择器
  10. 被问概率达99%的面试问题