https://codeforces.com/contest/1132/problem/C

枚举 + 差分前缀和

题意

有一段[1,n]的线段,有q个区间,选择其中q-2个区间,使得覆盖线段上的点最多为多少?

题解

  • 一开始用贪心搞,搞到一半发现需要枚举的情况太多
  • 只能用暴力搞,即枚举被去掉的两个区间,那么如何判断去掉哪两个区间比较好?
  • 维护去掉后剩下的点数即答案

代码

#include<bits/stdc++.h>

using namespace std;
int n,q,i,j,l[5005],r[5005],a[5005],sum[5005][5],L,R,ql,qr,ans,cnt;
int main(){
cin>>n>>q;
for(i=1;i<=q;i++){
cin>>l[i]>>r[i];
a[l[i]]++;a[r[i]+1]--;
}
for(i=1;i<=n;i++){
a[i]=a[i-1]+a[i];
if(a[i])cnt++;
for(j=0;j<3;j++)sum[i][j]=sum[i-1][j];
if(a[i]==1)sum[i][1]++;
if(a[i]==2)sum[i][2]++;
}
for(i=1;i<=q;i++){
for(j=i+1;j<=q;j++){
L=max(l[i],l[j]);R=min(r[i],r[j]);
if(L>R)
ans=max(ans,cnt-(sum[r[i]][1]-sum[l[i]-1][1]+sum[r[j]][1]-sum[l[j]-1][1]));
else{
ql=min(l[i],l[j]);qr=max(r[i],r[j]);
ans=max(ans,
cnt-(sum[L-1][1]-sum[ql-1][1]+
sum[qr][1]-sum[R][1]+
sum[R][2]-sum[L-1][2]));
}
}
}
cout<<ans;
}

Educational Codeforces Round 61 C 枚举 + 差分前缀和的更多相关文章

  1. Educational Codeforces Round 61

    Educational Codeforces Round 61 今早刚刚说我适合打pikmike出的EDU 然后我就挂了 A 不管 B 不管 C 这道题到快结束了才调出来 大概就是\(n^2\)枚举不 ...

  2. Educational Codeforces Round 61 (Rated for Div. 2)-C. Painting the Fence 前缀和优化

    题意就是给出多个区间,要求去掉两个区间,使得剩下的区间覆盖范围最大. 当然比赛的时候还是没能做出来,不得不佩服大佬的各种姿势. 当时我想的是用线段树维护区间和,然后用单点判0,维护区间间断个数.然后打 ...

  3. Educational Codeforces Round 61 (Rated for Div. 2)F(区间DP,思维,枚举)

    #include<bits/stdc++.h>typedef long long ll;const int inf=0x3f3f3f3f;using namespace std;char ...

  4. Educational Codeforces Round 11 C. Hard Process 前缀和+二分

    题目链接: http://codeforces.com/contest/660/problem/C 题意: 将最多k个0变成1,使得连续的1的个数最大 题解: 二分连续的1的个数x.用前缀和判断区间[ ...

  5. Educational Codeforces Round 61 (Rated for Div. 2)

    A. Regular Bracket Sequence 题意:给出四种括号的数量 ((  )) ()  )( 问是否可以组成合法的序列(只能排序不能插在另外一个的中间) 思路: 条件一:一个或 n个) ...

  6. CF1132.Educational Codeforces Round 61(简单题解)

    A .Regular Bracket Sequence 题意:给定“((” , “()” ,  “)(”,  “))”四种,问是否可以组成合法括号匹配 思路:设四种是ABCD,B可以不用管,而C在A或 ...

  7. Educational Codeforces Round 61 D 二分 + 线段树

    https://codeforces.com/contest/1132/problem/D 二分 + 线段树(弃用结构体型线段树) 题意 有n台电脑,只有一个充电器,每台电脑一开始有a[i]电量,每秒 ...

  8. Educational Codeforces Round 61 (Rated for Div. 2) D,F题解

    D. Stressful Training 题目链接:https://codeforces.com/contest/1132/problem/D 题意: 有n台电脑,每台电脑都有初始电量ai,也有一个 ...

  9. Educational Codeforces Round 61 (Rated for Div. 2) E 多重背包优化

    https://codeforces.com/contest/1132/problem/E 题意 有8种物品,重量是1~8,每种数量是\(cnt[i]\)(1e16),问容量为W(1e18)的背包最多 ...

随机推荐

  1. 前端框架(kraken、Express、Node、MVC)

    You know my loneliness is only kept for you, my sweet songs are only sang for you. 前端框架相关知识记录. krake ...

  2. Delphi:基于jcl的Bugsplat Crash收集单元

    //BugSplat Crash模拟.net数据封装 unit uBugSplat; interface uses Windows, SysUtils, Classes, StrUtils, Shel ...

  3. swift - VC添加手势返回

    1.需要添加手势的界面 (1)addBackGesture() (2) 设置手势返回代理 // MARK: - 添加返回手势 extension JYRTSShopDetialConteoller:U ...

  4. spring boot项目打包成war并在tomcat上运行的步骤

    把spring-boot项目按照平常的web项目一样发布到tomcat容器下 一.修改打包形式 在pom.xml里设置 <packaging>war</packaging> 二 ...

  5. 实现Hibernate框架的CRUD

    1.创建Web项目HS_test如图所示: 2.创建数据库DBHSTest,在数据库中创建表Teacher,并插入数据 3.在Myeclipse中调出DB Brower视图 右键->New: 连 ...

  6. Ansible Playbook 详解

    一.playbook 的简单使用 1.创建文件实例 (1)编辑配置文件 [root@tiejiangSRC1 ~]# cd /etc/ansible/ [root@tiejiangSRC1 ansib ...

  7. SqlServer中的数据库分类

    1.系统数据库(中央管理机构):用来管理用户创建用户数据的数据库. 系统数据库中包含如下数据库: (1)master:记录了sqlserver中所有系统级别的信息,包括所有的登录账户.系统配置,还有其 ...

  8. 函数的动态参数与命名空间 day10

    一.动态参数(不定长参数)def func(*args): 形参: 3种 动态参数 args元组,他包含了你所有的位置参数. *args 动态参数,不定长参数 **kwargs 他包含了关键字动态参数 ...

  9. opencv 形态学操作应用-提取水平与垂直线

    adaptiveThreshold(~gray_src, binImg, , ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, , -); #include <ope ...

  10. (转)在WCF服务的ServiceReferences.ClientConfig中使用相对路径

    问题: Silverlight项目中添加服务引用后会在Silverlight项目中生成一个ServiceReferences.ClientConfig文件,这个文件中包含了引用服务的绑定(bindin ...