当前位置: 首页 > news >正文

如何制作动漫网站模板下载地址网站3d展示怎么做

如何制作动漫网站模板下载地址,网站3d展示怎么做,广西建设领域证书查询官方网站,哪里可以做网站系统UVa11607 Cutting Cakes题目链接题意分析AC 代码题目链接 UVa11607 Cutting Cakes 题意 平面上有n(n≤1 500)个点,其中没有3 点共线。另外有m(m≤700 000)条直线,你的任务是对于每条直线,输出3…

UVa11607 Cutting Cakes

  • 题目链接
  • 题意
  • 分析
  • AC 代码

题目链接

  UVa11607 Cutting Cakes

题意

  平面上有n(n≤1 500)个点,其中没有3 点共线。另外有m(m≤700 000)条直线,你的任务是对于每条直线,输出3 个数p, q, r,其中p 和q 为该直线两侧的点数(p≤q),r 是直线穿过的点数。

分析

  本题限时6s,还是比较宽松的,直接用分块法能通过,比如把 n 个点集分成 8×88\times 88×8 块。
  其次,可以构建四叉树求解。先取 mid=n/2mid = n /2mid=n/2 处的点 p,根据其坐标得到划分轴,再遍历所有点 t 进行划分,t 在坐标轴上则存到当前结点数据中,不在坐标轴上则按照其所在象限存入四棵子树的数据中并递归构建子树。此后只需要从根结点递归查询:先求根结点数据的首个点与直线两端点形成的三角形有向面积 s(s>0s > 0s>0 则 ++p;s=0s = 0s=0 则 ++r;s<0s < 0s<0 则 ++q),其它数据点也都求有向面积后进行 p、q、r 进行统计。然后可以利用首个点的有向面积 s 分类讨论四个子结点的计数:s = 0 时,左上象限子结点内的数据全部统计给 p,右下象限子结点内的数据全部统计给 q,然后左下、右上两个象限的子结点进行递归查询;s > 0 时,左上象限子结点内的数据全部统计给 p,然后左下、右下、右上三个象限的子结点进行递归查询;s < 0 时右下象限子结点内的数据全部统计给 q,然后左下、左上、右上三个象限的子结点进行递归查询。

AC 代码

#include <iostream>
#include <algorithm>
using namespace std;#define M 10000
#define N 1510
#define B 8
int x[N], y[N], u[N], v[N], x1, y1, x2, y2, dx1, dy1, dx2, dy2, vx, vy, a, b, m, n, p, r, kase = 0;int cross(int x1, int y1, int x2, int y2) {return x1*y2 - x2*y1;
}struct {int b[N], bx1, by1, bx2, by2, by4, c;void add(int i) {b[c++] = i;if (c == 1) bx1 = bx2 =x[i], by1 = by2 = y[i];else bx1 = min(bx1, x[i]), bx2 = max(bx2, x[i]), by1 = min(by1, y[i]), by2 = max(by2, y[i]);}void query() {int cc = cross(vx, vy, bx1 - x1, by1 - y1); bool e = cc < 0, f = cc == 0, g = cc > 0;cc = cross(vx, vy, bx2 - x1, by1 - y1); e = e || cc < 0; f = f || cc == 0; g = g || cc > 0;cc = cross(vx, vy, bx1 - x1, by2 - y1); e = e || cc < 0; f = f || cc == 0; g = g || cc > 0;cc = cross(vx, vy, bx2 - x1, by2 - y1); e = e || cc < 0; f = f || cc == 0; g = g || cc > 0;if (f || (e && g)) {for (int i=0; i<c; ++i) {cc = cross(vx, vy, x[b[i]]-x1, y[b[i]]-y1);if (cc > 0) ++p;else if (cc == 0) ++r;}} else if (g) p += c;}
} s[B][B];void query() {x1 = (x1 + dx1) % M; y1 = (y1 + dy1) % M; x2 = (x2 + dx2) % M; y2 = (y2 + dy2) % M;if (x1 == x2 && y1 == y2) y2 = (y1 + 1) % M;p = 0; r = 0; vx = x2 - x1; vy = y2 - y1;for (int i=0; i<B; ++i) for (int j=0; j<B; ++j) s[i][j].query();cout << min(p, n-r-p) << ' ' << max(p, n-r-p) << ' ' << r << endl;
}void solve() {cin >> n;for (int i=0; i<n; ++i) cin >> x[i] >> y[i], u[i] = x[i], v[i] = x[i];sort(u, u+n); sort(v, v+n); a = unique(u, u+n) - u; b = unique(v, v+n) - v;for (int i=0; i<B; ++i) for (int j=0; j<B; ++j) s[i][j].c = 0;for (int i=0, j=(a+B-1)/B, k=(b+B-1)/B; i<n; ++i)s[(lower_bound(u, u+a, x[i]) - u) / j][(lower_bound(v, v+b, y[i]) - v) / k].add(i);cout << "Case #" << ++kase << ':' << endl;cin >> m >> x1 >> y1 >> x2 >> y2 >> dx1 >> dy1 >> dx2 >> dy2;while (m--) query();
}int main() {ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);int t; cin >> t;while (t--) solve();return 0;
}
http://www.dtcms.com/a/502399.html

相关文章:

  • 河北省住房和城乡建设部网站官网首页入口百度
  • 晨光文具店网站建设wordpress首页聚合
  • 成功网站管理系统四川遂宁做网站的公司
  • 奉化网站建设报价大型网站建设济南兴田德润o评价
  • 雄安投资建设集团网站重庆建站网站免费
  • 怎么做买东西的网站个人网站的前途
  • 好利蛋糕店官方网站一个做品牌零食特卖的网站
  • 吉首建设局网站如何规划企业网站
  • 泰安做网站的公司app推广平台排行榜
  • 网站程序系统昆明房地产网站开发
  • dede网站qq类资源源码wordpress引入js插件
  • 怀化优化网站排名凡科快图是免费的吗
  • 网站制作cms中国建筑第八工程局有限公司
  • 关于网站建设的pptwordpress php页面
  • 淡蓝黑色大气企业网站模板本地wordpress卸载
  • dz网站建设wordpress创建页面地址设置
  • 做外贸相关的网站网站一屏的尺寸
  • 百度网站关键词和网址广州现在可以正常出入吗
  • 路飞和女帝做h的网站建设网站 法律责任
  • 陕西省建设网站查询证件相片昆明智能网站推广价格
  • 网站优化一般要怎么做福州定制网站建设
  • 做直播信号网站太原优化排名推广
  • 海外 国内网站建设heritrix做网站
  • 河南省示范校建设专题网站如何创建自己的网址链接?
  • 个人网站备案 流程iis7添加php网站
  • 国外的智慧城市建设网站企业管理培训课程游戏
  • 撰写网站规划书工作网站开发制作
  • 怎么查看网站备案号wap小说网站源码
  • 网站开发使用架构网站备案是先做网站还是做完了备案
  • 合网站 - 百度企业网站百度认证