首页 > 其他分享 >D. Searchlights 思维 偏序

D. Searchlights 思维 偏序

时间:2023-09-14 23:14:51浏览次数:41  
标签:偏序 思维 int 元素 lt pair 我们 se Searchlights

 Problem - D - Codeforces

 题意:分别给你一个n个pair<a,b>和m个pair<c,d>,问最少操作数,可以使得对于所有的<a,b>,对于任意的<c,d>,都有(a>c)或(b>d)。两个条件满足其一即可。

  操作的定义是,在一次操作中,你可以选a或b,然后对于所有的你选定的,都加1

解法:对于每一个m,我们遍历n来求要满足上述条件的pair,经过m*n次操作,我们得到了一个数组,然后对其以sort,并且删去b元素小于等于最后一个元素不相交的,并不断更新这个值。看图更好理解

我们要删掉图中蓝色和紫的,而保留这个绿色的,因为我们要满足这个绿色时候,一定能满足蓝色和紫色的需求。

然后我们的到了类似于上图这样的pair数组,数字上小下大,我们发现当我们取紫色元素的b时,大家都能被覆盖,当我们取橙色的a时同理。我们发现当我们取一个a后,小于其a的就都不用考虑了,而且b的大小顺序是相反的,所以我们再取一个b,能覆盖剩下的元素就ok了,那么根据贪心,我们肯定取最小的b,而且如果a时按照升序排列的,则b一定按照降序排列,因为要相交。所以我们就取下一个b元素即可。扫一遍取min然后特判两个端点即可

void solve(){
    int n,m;cin>>n>>m;
    vector<pii>a(n+1);
    for(int i=1;i<=n;i++)cin>>a[i].fi>>a[i].se;
    vector<pii>b;
    for(int i=1;i<=m;i++){
        int x,y;cin>>x>>y;
        for(int i=1;i<=n;i++){
            if(x<a[i].fi||y<a[i].se)continue;
            b.push_back({x-a[i].fi+1ll,y-a[i].se+1ll});
        }
    }
    if(b.size()==0){
        cout<<0<<"\n";return ;
    }
    sort(b.begin(),b.end());
    //for(auto &i:b)cout<<i.fi<<" "<<i.se<<"\n";
    vector<pii>c;
    c.push_back(*(b.end()-1));
    int lt=(b.end()-1)->se;
    for(int i=(int)b.size()-2;i>=0;i--)if(b[i].se>lt){lt=b[i].se;c.push_back(b[i]);}
    n=c.size();
    //for(auto i:c)cout<<i.fi<<" "<<i.se<<"\n";
    int ans=min(c[0].fi,c[n-1].se);
    for(int i=1;i<n;i++){
        ans=min(ans,c[i].fi+c[i-1].se);
    }
    cout<<ans<<"\n";
}

 

标签:偏序,思维,int,元素,lt,pair,我们,se,Searchlights
From: https://www.cnblogs.com/shi5/p/17703759.html

相关文章

  • 【标签】思维题
    edit文章题目折半-鸽巢原理......
  • 洛谷OJ [P5018 对称二叉树] (深度优先搜索、二叉树、思维)
    P5018[NOIP2018普及组]对称二叉树题意:给定一棵树,树上的每个结点有一个权值,问你这棵树的子树中节点数最多的对称二叉树的节点数是多少?对称二叉树的定义如下:对于树中的每一个结点,要么没有子节点,要么既有左儿子,又有右节点,且对称位置的结点点权相等。输入格式:第一行......
  • 计算机网络HTTP与TCP常见知识点思维导图
    本篇思维导图主要介绍了HTTP与TCP常见知识点,广度与深度兼具,希望对大家有帮助,需要xmind格式联系我,转发请备注来源,谢谢! ......
  • 如何把MarkDown文件转换为思维导图
    最近计划报名软考,想着第一轮复习先把教程看一遍,记记笔记。我一般记笔记的时候都是喜欢写成提纲和列表的形式,想着后期整理成思维导图记忆起来更加直观。那么除了手画一遍之外,有没有更便捷的方法呢?试了一下,可以用VSCode结合插件MarkMap实现。操作步骤如下:VSCode安装MarkMap插......
  • OSCAR开源专访 | 企业内源最大的挑战在于改变封闭思维和竞争观念——智网创新中心张东
    开源作为一种开放的、无边界的新型协作模式,是数字经济创新、开放、共享、可持续发展的源头活水。开源的大获成功也启发不少企业将开源软件开发的经验教训应用到组织内部中来,是谓内源。当前内源建设已成为企业提升研发效率、释放产业效能的重要手段,在通信行业亦是如此,同时各项能力建......
  • 【校招VIP】产品思维考察之用户体验
    考点介绍:在设计产品的功能点时,我们需要设想我们的用户到底是谁?他的需求是什么?为此我们需要做用户分析,从而得出我们的用户画像,提供解决方案。用户调研是用户分析的一种方法,用户画像是结果,提供解决方案(需求)是用户分析的目的。产品思维考察之用户体验-相关题目及解析内容可点击文章......
  • AtCoder Beginner Contest 044 C (背包DP、思维、*1583)
    C-TakandCards题意:给定$N$个正整数$x_1,x_2,\cdot\cdot\cdot,x_n$和一个正整数$A$,问从中选择$k$个数\((k>0)\),满足:这$k$个数的平均值是$A$的方案总数是多少?思路:......
  • 数据结构思维导图
    思维导图......
  • 计算机网络思维导图
    思维导图:......
  • 【学习笔记】【自学】三维偏序 (CDQ)
    [P3810【模板】三维偏序(陌上花开)](https://www.luogu.com.cn/problem/P3810)题目描述:有$n$个元素,第$i$个元素有$a_i,b_i,c_i$三个属性,设$f(i)$表示满足$a_j\leqa_i$且$b_j\leqb_i$且$c_j\leqc_i$且$j\nei$的$j$的数量。对于$d\in......