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

阿里云服务器做盗版视频网站吗永久免费搭建网站

阿里云服务器做盗版视频网站吗,永久免费搭建网站,本溪网站建设,外国网站免费空间申请题目内容 原题链接 给定 n n n 个箱子#xff0c;问是否存在一个箱子 x x x 是否可以放到另一个箱子 y y y 里。 需要满足 h x h y , w x w y , d x d y h_xh_y,w_xw_y,d_xd_y hx​hy​,wx​wy​,dx​dy​。 箱子可以随意翻转。 …题目内容 原题链接 给定 n n n 个箱子问是否存在一个箱子 x x x 是否可以放到另一个箱子 y y y 里。 需要满足 h x h y , w x w y , d x d y h_xh_y,w_xw_y,d_xd_y hx​hy​,wx​wy​,dx​dy​。 箱子可以随意翻转。 数据范围 1 ≤ n ≤ 2 ⋅ 1 0 5 1\leq n\leq 2\cdot 10^5 1≤n≤2⋅105 1 ≤ h i , w i , d i ≤ 1 0 9 1\leq h_i,w_i,d_i\leq 10^9 1≤hi​,wi​,di​≤109 题解 首先按从小到大对 h , w , d h,w,d h,w,d 进行排序。 这里假设对所有的箱子排序后都有 h ≤ w ≤ d h\leq w\leq d h≤w≤d 那么我们再按照 h h h 为第一关键字 w w w 为第二关键字 d d d 为第三关键字对箱子进行从小到大的排序。 然后我们从按 h h h 从小到大枚举每次将所有 h h h 相同的箱子一起枚举。 这样我们就可以对剩下的 w w w 和 d d d 构建树状数组了。 对于箱子 i i i 找到 h j h i h_jh_i hj​hi​ 的 j j j 且 w j w i w_jw_i wj​wi​ 的最小的 d j d_j dj​ 。判断 d j d i d_j d_i dj​di​ 是否成立即可。 然后在判断完后将所有值为 h i h_i hi​ 的箱子都加入到树状数组中。 如 q u e r y ( p ) query(p) query(p) 其实是在求 w ≤ p w\leq p w≤p 的最小的 d d d 。 这个问题又叫三维偏序。 时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn) 代码 #include bits/stdc.h using namespace std;const int INF 0x3f3f3f3f;struct Node {int a[3]; };int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n;cin n;vectorNode vec(n);for (int i 0; i n; i) {for (int j 0; j 3; j) cin vec[i].a[j];sort(vec[i].a, vec[i].a 3);}sort(vec.begin(), vec.end(), [](const Node A, const Node B) {return A.a[0] B.a[0];});vectorint b;for (int i 0; i n; i) b.push_back(vec[i].a[1]);sort(b.begin(), b.end());b.erase(unique(b.begin(), b.end()), b.end());auto get [](int x) {return int(lower_bound(b.begin(), b.end(), x) - b.begin() 1);};for (int i 0; i n; i) vec[i].a[1] get(vec[i].a[1]);int m int(b.size());vectorint tr(m 1, INF);auto update [](int p, int x) {while (p m) {tr[p] min(tr[p], x);p (p -p);}};auto query [](int p) {int res INF;while (p 1) {res min(res, tr[p]);p - (p -p);}return res;};bool ok false;for (int i 0; i n; i) {int j i 1;while (j n vec[j].a[0] vec[i].a[0]) j 1;// 找到是否存在这么一个即可for (int k i; k j; k) {if (query(vec[k].a[1] - 1) vec[k].a[2]) {ok true;break;}}if (ok) break;// 把当前的部分全部添加进去for (int k i; k j; k) {update(vec[k].a[1], vec[k].a[2]);}i j - 1;}if (ok) cout Yes\n;else cout No\n;return 0; }
http://www.zqtcl.cn/news/228155/

相关文章:

  • 申请网站就是做网站吗怎样凡科建设网站
  • 怎样做吓人网站网页制作成品图
  • 前端的网站重构怎么做做网站用的编程语言
  • 长沙网站设计多少钱一个月百度网盘app下载安装电脑版
  • 你好南京网站网站开发 seo
  • wordpress 文章延时加载seo软件系统
  • 网站建设与运营答案新浪网站首页
  • 网站怎么做关键词库如何建免费的企业网站
  • 跟老外做网站网络系统管理与维护机考
  • 网站推广方案范例江西南昌小程序开发
  • 烘焙类网站开发时代背景ppt素材模板免费下载
  • 如何制作多网页网站广州品牌seo推广
  • 域名怎么解析到网站什么是asp网站
  • 网站开发的税率做网站文案
  • 网站模板上传工具如何介绍自己设计的网页
  • 河北网站建设价格低国内做外单的网站有哪些
  • wordpress Apache升级优化营商环境的意义
  • 单页式网站系统wordpress自定义字段怎么用
  • 南宁网站设计要多少钱修改wordpress中的 功能 小工具
  • 南昌高端网站开发费用表域名价格排行
  • 怎么接网站开发外包中国观鸟记录的网站架构
  • 青海省住房和城乡建设厅的官方网站网站举报能不能查到举报人
  • dw做的网站如何上传云服务器网址生成app一键生成器
  • 山西建设厅网站密钥房山营销型网站建设
  • 网站空间多少钱哪里接单做网站
  • 建设部网站资质人员查询页面设计的对称方法包括哪几种形式
  • 滁州网站建设哪个好点iis发布网站无法访问
  • 网站项目建设的定义百度站长平台清退
  • ip开源网站FPGA可以做点什么建设网站的工作职责
  • 重庆微信网站开发公司建设网站技术标准