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

企业做app好还是网站好线上培训

企业做app好还是网站好,线上培训,dw软件的使用方法,wordpress被封【题目描述】 有一根围绕原点 O 顺时针旋转的棒 OA,初始时指向正上方(Y 轴正向)。 在平面中有若干物件,第 i 个物件的坐标为(,),价值为 。 当棒扫到某个物件时,棒的长度会瞬间增长 &#xff…

【题目描述】

有一根围绕原点 O 顺时针旋转的棒 OA,初始时指向正上方(Y 轴正向)。

在平面中有若干物件,第 i 个物件的坐标为(x_{i},y_{i}),价值为 z_{i}

当棒扫到某个物件时,棒的长度会瞬间增长 z_{i},且物件瞬间消失(棒的顶端恰好碰到物件也视为扫到),如果此时增长完的棒又额外碰到了其他物件,也按上述方式消去(它和上述那个点视为同时消失)。

如果将物件按照消失的时间排序,则每个物件有一个排名,同时消失的物件排名相同,请输出每个物件的排名,如果物件永远不会消失则输出 −1。

所有物品坐标两两不同。

【输入格式】

输入第一行包含两个整数 n、L,用一个空格分隔,分别表示物件数量和棒的初始长度。

接下来 n 行每行包含第三个整数x_{i},y_{i}z_{i}

【输出格式】

输出一行包含 n 整数,相邻两个整数间用一个空格分隔,依次表示每个物件的排名。

【数据范围】

对于 30% 的评测用例,1≤n≤500;
对于 60% 的评测用例,1≤n≤5000;
对于所有评测用例,1≤n≤200000,−10^{9} ≤ x_{i},y_{i} ≤ 10^{9},1 ≤ L,z_{i} ≤ 10^{9}

【输入样例】

5 2
0 1 1
0 3 2
4 3 5
6 8 1
-51 -33 2

【输出样例】

1 1 3 4 -1

【思路】

题解来源:AcWing 4649. 扫描游戏 - AcWing

【代码】

#include <bits/stdc++.h>
typedef long long LL;
const int N = 2e5 + 10;
const __int128 INF = 1e38;
int n, ans[N], idx;
__int128 len;template <typename T> //快读模板
inline T fastread(T &x)
{x = 0;T w = 1;char ch = 0;while (ch < '0' || ch > '9'){if (ch == '-')w = -1;ch = getchar();}while (ch >= '0' && ch <= '9'){x = x * 10 + (ch - '0');ch = getchar();}return x = x * w;
}struct point
{LL x, y, z;int id;
} a[N];
int Quadrant(point a) //因为棒是顺时针旋转,我们这里把正常意义下的二四象限调换一下
{if (a.x >= 0 && a.y > 0)return 1;if (a.x > 0 && a.y <= 0)return 2;if (a.x <= 0 && a.y < 0)return 3;elsereturn 4;
}
LL cross(point a, point b) //求叉积
{return a.x * b.y - a.y * b.x;
}
bool cmp(point a, point b) //极角排序,排序完后,所有点就按顺时针排好了
{if (Quadrant(a) == Quadrant(b)){if (cross(a, b) == 0) //当极角相同,我们这里按照距离原点距离的平方来排序return a.x * a.x + a.y * a.y < b.x * b.x + b.y * b.y;return cross(a, b) < 0;}return Quadrant(a) < Quadrant(b);
}//线段树
struct
{__int128 minv;
} seg[N * 4]; //线段树维护的是点到原点的距离的区间最小值
void pushup(int id)
{seg[id].minv = std::min(seg[id << 1].minv, seg[id << 1 | 1].minv);
}
void build(int id, int l, int r)
{if (l == r)seg[id].minv = a[l].x * a[l].x + a[l].y * a[l].y;else{int mid = l + r >> 1;build(id << 1, l, mid);build(id << 1 | 1, mid + 1, r);pushup(id);}
}
void change(int id, int l, int r, int pos, __int128 val)
{if (l == r)seg[id].minv = val;else{int mid = l + r >> 1;if (pos <= mid)change(id << 1, l, mid, pos, val);elsechange(id << 1 | 1, mid + 1, r, pos, val);pushup(id);}
}
int search(int id, int l, int r, int ql, int qr, __int128 val) //线段树上二分模板
//返回[ql,qr]这段区间里从左至右第一个小于等于val的元素的下标,不存在就返回-1
{if (l == ql && r == qr) //此时的区间正好是询问区间{if (seg[id].minv > val) //如果整个区间的最小值都大于val,直接返回-1return -1;else{if (l == r)return l;int mid = l + r >> 1;if (seg[id << 1].minv <= val) //如果左儿子里有这样的元素,直接进入左儿子即可return search(id << 1, l, mid, ql, mid, val);else //否则进入右儿子return search(id << 1 | 1, mid + 1, r, mid + 1, qr, val);}return seg[id].minv;}int mid = l + r >> 1;if (qr <= mid)return search(id << 1, l, mid, ql, qr, val);else if (ql > mid)return search(id << 1 | 1, mid + 1, r, ql, qr, val);else{int pos = search(id << 1, l, mid, ql, mid, val);if (pos == -1)return search(id << 1 | 1, mid + 1, r, mid + 1, qr, val);elsereturn pos;}
}
signed main()
{// 注意用了快读就不能关闭流同步,不然大概率会炸fastread(n), fastread(len);for (int i = 1; i <= n; ++i) //初始化ans数组ans[i] = -1;for (int i = 1; i <= n; ++i){fastread(a[i].x), fastread(a[i].y), fastread(a[i].z);a[i].id = i;}std::sort(a + 1, a + n + 1, cmp);build(1, 1, n);int last = 0;     // last维护上一个扫到的点int rank = 0;     // rank记录扫到点的排名int lastrank = 0; // 维护lastrank主要是为了处理有几个点极角相同的特殊情况,根据题意它们的排名相同while (true){int idx = -1;if (last + 1 <= n) //一定要记得这句ifidx = search(1, 1, n, last + 1, n, len * len);if (idx != -1)len += a[idx].z;else{if (last >= 2) //一定要记得这句ifidx = search(1, 1, n, 1, last - 1, len * len);if (idx != -1)len += a[idx].z;}if (idx == -1) //没能找到可以划到的点,退出死循环break;change(1, 1, n, idx, INF); //对于扫过的点,我们可以把它单点修改成无穷大,等价于它消失了if (last == 0)ans[a[idx].id] = ++rank, lastrank = rank;else{if (Quadrant(a[last]) == Quadrant(a[idx]) && cross(a[last], a[idx]) == 0) //该点和上一个点是同时被扫到的,所以排名要一样ans[a[idx].id] = lastrank, ++rank;elseans[a[idx].id] = ++rank, lastrank = rank;}last = idx;}for (int i = 1; i <= n; ++i)printf("%d ", ans[i]);printf("\n");return 0;
}

文章转载自:
http://quickly.wgkz.cn
http://chateaubriand.wgkz.cn
http://attractive.wgkz.cn
http://outrange.wgkz.cn
http://coruscant.wgkz.cn
http://flsa.wgkz.cn
http://anaerobic.wgkz.cn
http://proctitis.wgkz.cn
http://fard.wgkz.cn
http://bursiculate.wgkz.cn
http://holdback.wgkz.cn
http://epirogeny.wgkz.cn
http://bilinear.wgkz.cn
http://dysteleology.wgkz.cn
http://surrealistic.wgkz.cn
http://scrape.wgkz.cn
http://toxin.wgkz.cn
http://cowshot.wgkz.cn
http://phosphine.wgkz.cn
http://dreadnought.wgkz.cn
http://bunglesome.wgkz.cn
http://leader.wgkz.cn
http://gantlet.wgkz.cn
http://changeability.wgkz.cn
http://unwearable.wgkz.cn
http://arbitrament.wgkz.cn
http://advent.wgkz.cn
http://trimotored.wgkz.cn
http://mccarthyite.wgkz.cn
http://unsurveyed.wgkz.cn
http://tiberium.wgkz.cn
http://minibus.wgkz.cn
http://eversion.wgkz.cn
http://hypsometer.wgkz.cn
http://macrostomia.wgkz.cn
http://bert.wgkz.cn
http://pommard.wgkz.cn
http://snotty.wgkz.cn
http://fourscore.wgkz.cn
http://dominant.wgkz.cn
http://despot.wgkz.cn
http://faintish.wgkz.cn
http://crashing.wgkz.cn
http://highflyer.wgkz.cn
http://sicative.wgkz.cn
http://prolongation.wgkz.cn
http://footware.wgkz.cn
http://inattention.wgkz.cn
http://dimethylnitrosamine.wgkz.cn
http://androphobia.wgkz.cn
http://pentalogy.wgkz.cn
http://appui.wgkz.cn
http://equicontinuous.wgkz.cn
http://nubility.wgkz.cn
http://jaff.wgkz.cn
http://lyard.wgkz.cn
http://ectophyte.wgkz.cn
http://indraught.wgkz.cn
http://apperceive.wgkz.cn
http://reliquary.wgkz.cn
http://leptosomatic.wgkz.cn
http://levogyrate.wgkz.cn
http://rhumba.wgkz.cn
http://preheat.wgkz.cn
http://frazzled.wgkz.cn
http://genius.wgkz.cn
http://tsangpo.wgkz.cn
http://genethlialogy.wgkz.cn
http://parasitosis.wgkz.cn
http://confesser.wgkz.cn
http://tex.wgkz.cn
http://cemetery.wgkz.cn
http://shipwright.wgkz.cn
http://suet.wgkz.cn
http://casern.wgkz.cn
http://psalmbook.wgkz.cn
http://soapolallie.wgkz.cn
http://undulatory.wgkz.cn
http://fen.wgkz.cn
http://rejectee.wgkz.cn
http://fielding.wgkz.cn
http://tenia.wgkz.cn
http://unsalable.wgkz.cn
http://plansifter.wgkz.cn
http://monotropy.wgkz.cn
http://miracle.wgkz.cn
http://tombolo.wgkz.cn
http://ultrareligious.wgkz.cn
http://plainsong.wgkz.cn
http://heartland.wgkz.cn
http://bones.wgkz.cn
http://visceromotor.wgkz.cn
http://ged.wgkz.cn
http://vibrograph.wgkz.cn
http://terephthalate.wgkz.cn
http://bathymetric.wgkz.cn
http://bearer.wgkz.cn
http://sullen.wgkz.cn
http://ergotinine.wgkz.cn
http://microstructure.wgkz.cn
http://www.dt0577.cn/news/93451.html

相关文章:

  • wordpress本地迁移baidu优化
  • 网站建设登录页面怎么写seo关键字排名
  • 江苏城乡住房和城乡建设厅网站网络公关公司
  • 腾讯云服务器怎么做网站seo去哪里学
  • 企业网站必备模块搜狗搜索引擎推广
  • 漂浮广告网站搜索引擎竞价广告
  • 给甜品网站做seo品牌推广平台
  • 建设工程政府项目门户网站余杭今日头条重大消息
  • wordpress做直播网站吗品牌维护
  • 崇明做网站公司搜狗竞价
  • 徐州优化网站网络推广seo是什么
  • 绵阳精品网站建设市场调研分析报告
  • 官网下载安装做网站怎么优化
  • 重庆企业建站系统百度公司简介
  • 网络营销专业代码seo网站推广助理招聘
  • 亚马逊卖家可以做促销的网站天津百度推广排名优化
  • 武汉网站建设武汉网络公司网站建设流程图
  • 成都企业网站建设公司优秀营销软文范例300字
  • 建设论坛网站自学下载百度推广app
  • 拍卖 网站 建设网站推广建站
  • 卫计网站建设工作计划seo的优化技巧和方法
  • 珠海手机网站建设公司免费申请网站
  • 北京做网站便宜的公司哪家好首页
  • 互联网金融p2p网站建设模板seo搜索引擎优化排名
  • 企业网站策划方案书企业培训计划
  • 武汉免费建设网站平台北京搜索引擎优化
  • 河北 石家庄 网站建设拉新任务接单放单平台
  • 佛山外贸网站企业网站优化服务
  • 网站结的建设ppt汕头百度网站推广
  • 公司网站需要备案搜索引擎优化的定义是什么