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. SQL两表之间:根据一个表的字段更新另一个表的字段

    update table1 set field1=table2.field1,field2=table2.field2from table2where table1.id=table2.id

  2. setup FTP server on CentOS 7

    Setup FTP Server on CentOS 7 Install vsftpd vsftpd (Very Secure File Transport Protocol Daemon) is a ...

  3. jmeter压测mysql报can not be represented as java.sql.Timestame错误解决方法

    JDBC Request  测试mysql时报以下问题? jmeter报错信息: 解决方法: 在数据库url后拼接上字符串?characterEncoding=utf8&zeroDateTim ...

  4. .NET[C#]中NullReferenceException(未将对象引用到实例)是什么问题?如何修复处理?(转)

    .NET[C#]中NullReferenceException(未将对象引用到实例)是什么问题?如何修复处理?  后端开发  作者: Rector  1973 阅读  0 评论  0 收藏  收藏本文 ...

  5. Hadoop多租户架构配置

    cloudera manager 进到cluster里面,点击Dynamic Resource Pools,没做任何配置默认情况下,资源池里有个default资源组 hadoop jar /usr/l ...

  6. React-typescript-antd 常见问题

    一.The key 'Accept' is not sorted alphabetically //tslint.json { "extends": ["tslint:r ...

  7. .net连接数据库递归

    private void Form1_Load(object sender, EventArgs e) { List<Regions> regions = GetRegions().Whe ...

  8. go basic

    go time and rand: package main import ( "fmt" "math/rand" "time" ) fun ...

  9. 在sql中case子句的两种形式

    case子句,在select后面可以进行逻辑判断. 两种形式:判断相等.判断不等 一.判断相等的语法: case 列名 when ...  then ... when ...  then ... el ...

  10. 煎蛋ooxx

    pipeline.py class Jiandanline(FilesPipeline): def get_media_requests(self, item, info): for file_url ...