problem a

Description

一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低。”问最少有几个人没有说真话(可能有相同的分数)

Input

第一行一个整数n,接下来n行每行两个整数,第i+1行的两个整数分别代表ai、bi

Output

一个整数,表示最少有几个人说谎

Sample Input 1

3

2 0

0 2

2 2

Sample Output 1

1

Hint

100%的数据满足: 1≤n≤100000 0≤ai、bi≤n

Source

BZOJ-2298

思路:https://blog.csdn.net/niiick/article/details/82857386

https://blog.csdn.net/z_mendez/article/details/46991699

dp[i]=max{dp[j-1]+sum[j][i]} j < i

其中sum[x][y] 表示(x~y)名次中有多少人。

dp做法代码已AC

#include<bits/stdc++.h>
using namespace std; const int maxn = 1e6+10;
int n;
map<pair<int,int>,int > mp;
vector<vector<int> > v;
int dp[maxn]; int main(){
scanf("%d",&n);
v.resize(n+1);
for(int i=1;i<=n;i++){
int a,b;
scanf("%d%d",&a,&b);
int l = a+1;
int r = n-b;
if(l > r) continue;
mp[make_pair(l,r)]++;
if(mp[make_pair(l,r)] == 1){
v[r].push_back(l);
}
}
for(int i=1;i<=n;i++){
dp[i] = dp[i-1];
for(int j=0;j<v[i].size();j++){
dp[i] = max(dp[i], dp[v[i][j]-1] + min(i-v[i][j]+1, mp[make_pair(v[i][j],i)]));
}
}
printf("%d\n",n-dp[n]);
return 0;
}

线段树做法过几天补:https://www.cnblogs.com/Slrslr/p/10032172.html

BZOJ-2298|区间dp|线段树的更多相关文章

  1. Wannafly Winter Camp 2020 Day 5C Self-Adjusting Segment Tree - 区间dp,线段树

    给定 \(m\) 个询问,每个询问是一个区间 \([l,r]\),你需要通过自由地设定每个节点的 \(mid\),设计一种"自适应线段树",使得在这个线段树上跑这 \(m\) 个区 ...

  2. cf834D(dp+线段树区间最值,区间更新)

    题目链接: http://codeforces.com/contest/834/problem/D 题意: 每个数字代表一种颜色, 一个区间的美丽度为其中颜色的种数, 给出一个有 n 个元素的数组, ...

  3. ZOJ 3349 Special Subsequence 简单DP + 线段树

    同 HDU 2836 只不过改成了求最长子串. DP+线段树单点修改+区间查最值. #include <cstdio> #include <cstring> #include ...

  4. 【BZOJ4653】【NOI2016】区间(线段树)

    [BZOJ4653][NOI2016]区间(线段树) 题面 BZOJ 题解 \(NOI\)良心送分题?? 既然是最大长度减去最小长度 莫名想到那道反复减边求最小生成树 从而求出最小的比值 所以这题的套 ...

  5. xdoj-1324 (区间离散化-线段树求区间最值)

    思想 : 1 优化:题意是覆盖点,将区间看成 (l,r)转化为( l-1,r) 覆盖区间 2 核心:dp[i]  覆盖从1到i区间的最小花费 dp[a[i].r]=min (dp[k])+a[i]s; ...

  6. Bzoj 2752 高速公路 (期望,线段树)

    Bzoj 2752 高速公路 (期望,线段树) 题目链接 这道题显然求边,因为题目是一条链,所以直接采用把边编上号.看成序列即可 \(1\)与\(2\)号点的边连得是. 编号为\(1\)的点.查询的时 ...

  7. Codeforces Round #620 F2. Animal Observation (hard version) (dp + 线段树)

    Codeforces Round #620 F2. Animal Observation (hard version) (dp + 线段树) 题目链接 题意 给定一个nm的矩阵,每行取2k的矩阵,求总 ...

  8. hdu 5700区间交(线段树)

    区间交 Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submiss ...

  9. hdu 3016 dp+线段树

    Man Down Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

随机推荐

  1. RESTful levels 和 HATEOAS

    RESTful REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序.它首次出现在 2000 年 Roy ...

  2. iOS 字体下载

    iOS可以动态的为系统下载字体,这些字体都下载到了系统的目录下,并且可以被其他应用公用 来看下如何实现动态下载: // 创建下载字体请求描述的准备 NSMutableDictionary *attrs ...

  3. 安卓系统广播暴露设备信息-Android System Broadcasts Expose Device Information

    Android device details are being exposed to running applications via Wi-Fi broadcasts in the mobile ...

  4. vue axios中文文档详解

    英文文档:https://github.com/axios/axios 参考:https://www.jb51.net/article/123485.htm

  5. sort();对结构体数组的排序

    sort(); 位于C++ 头文件 #include<algorithm>中 数组排序(从小到大,从大到小) 结构体排序(数字参数从大到小...字符串为参数 字典序....) 代码示例:( ...

  6. windows server 2008 R2服务器无法通过ShellClass获取mp3音乐时长

    我们先看一段代码,获取mp3播放时长: #region GetMediaDetailInfo 获取媒体文件属性信息 /// <summary> /// 获取媒体文件属性信息 /// < ...

  7. 1. centos下安装docker

    CentOS Docker 安装 Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发 ...

  8. supervisor 从安装到使用

    (转)https://www.jianshu.com/p/3658c963d28b 一.安装 源码安装 先下载最新的supervisor安装包:https://pypi.python.org/pypi ...

  9. 【错误总结1:unity StartCoroutine 报 NullReferenceException 错误】

    今天在一个项目中,写了一个单例的全局类,该类的作用是使用协程加载场景.但在StartCoroutine 这一步报了NullReferenceException 的错.仔细分析和搜索之后,得到错误原因. ...

  10. ubuntu16.04+ROS安装kinectV1

    1.安装驱动 安装ROS软件包以下2种方式,任选一种即可,当然全部安装也没有问题 1)使用openni_launch sudo apt-get install ros-kinetic-openni-c ...