最少多少人说谎(dp)
2024-10-07 07:13:11
https://ac.nowcoder.com/acm/contest/1168/H
题意:n个学生,邓志聪想知道这些学生的考试情况,于是一个一个叫这些学生叫去办公室问他们,但是有些学生并没有讲真话,第i个学生说:“有ai个人分数比我高,bi个人分数比我低。”邓志聪想知道最少有几个学生没有说真话,你能帮助他吗?(可能有相同的分数)
解法:逆向思维求最多有多少人没说谎,用区间代表该名同学所处的位置,区间值代表该区间人数。
dp求解不重叠区间值之和最大即可。
//#include <bits/stdc++.h>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <string>
#include <stdio.h>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <string.h>
#include <vector>
#define ME(x , y) memset(x , y , sizeof(x))
#define SF(n) scanf("%d" , &n)
#define rep(i , n) for(int i = 0 ; i < n ; i ++)
#define INF 0x3f3f3f3f
#define mod 20191117
#define PI acos(-1)
using namespace std;
typedef long long ll ; map<pair<int , int > , int>m;
vector<int>ans[100100];
int dp[100100]; int main()
{
int n ;
scanf("%d" , &n);
for(int i = 0 ; i < n ; i++)
{
int x , y ;
scanf("%d%d" , &x , &y);
int l = x + 1 ;//高的在左
int r = n - y ;//低的在右
if(l > r) continue;
if(m[make_pair(l , r)] < r - l + 1)
m[make_pair(l , r)]++;//区间值代表人数
if(m[make_pair(l , r)] == 1) ans[r].push_back(l);
}
for(int i = 1 ; i <= n ; i++)
{
dp[i] = dp[i -1];//i为右边界。
for(auto j : ans[i])//ans[i]中第二维中的元素的左边界
{
dp[i] = max(dp[i] , dp[j-1] + m[make_pair(j , i)]);
}
}
cout << n - dp[n] << endl ;
return 0;
}
最新文章
- linux rpm安装apache php mysql
- 数据库连接池的选择 Druid
- Effective Objective-C 2.0 — 第一条:了解Objective-C语言的起源
- [IIS]IIS扫盲(七)
- SQL1159 Initialization error with DB2 .NET Data Provider, reason code 7(问题补充)
- phpwind8.7升级9.0.1过程(一)本地和服务器数据同步的部署
- try catch 怎么写?
- Unified Emoji表情for Android
- perl 调用方法 子例程说明
- Linux下获取硬盘使用情况
- lesson - 15 Linux系统日常管理4
- Java与算法之(3) - 斐波那契数列
- DUBBO报错分析—1(连接zookeeper成功,调用方法无反应,不报错)
- 如何利用GitHub设计一个炫酷的个人网站(含代码)
- node.js学习4--------------------- 根据不同路径来响应内容,以及中文乱码的解决
- 深入理解C++11【5】
- 前端入门4-CSS属性样式表
- centos 安装 python36
- 关于java中的一些循环
- ubuntu12.04+cuda6.0+caffe(新版)的安装
热门文章
- 如何导出不带.svn的文件夹
- 阿里云移动研发平台 EMAS 助力银行业打造测试中台,提升发版效能
- maven项目解决pom.xml头部 http://maven.apache.org/xsd/maven-4.0.0.xsd报错的问题
- Swagger+SpringBoot整理
- DevExpress.XtraGrid.Views.Grid.GridView
- ZOJ 2301 离散化
- C++二维数组(指针)做参数
- 大哥带的Orchel数据库的盲注入bool型
- LeetCode_70.爬楼梯
- webpack插件之htmlWebpackPlugin