Problem a

题目背景:

bzoj2298

分析:DP

额,属于我是真的没有想到这样的状态转移啊······一脸懵逼·····显然一个人在自己前面的有a个,后面有b个,那么这个人的排名区间为[a + 1, n - b]并且,这个区间中所有人的成绩应该相同,定义f[i]表示,排名第i的人的分数不等于第i + 1的分数,那么转移就是f[i] = max(f[i - 1], f[j] + min(i - j, num)) (num表示排名区间为[j + 1, i]的人数)

Source:

/*created by scarlyw
*/
#include <cstdio>
#include <string>
#include <algorithm>
#include <cstring>
#include <iostream>
#include <cmath>
#include <cctype>
#include <vector>
#include <set>
#include <queue>const int MAXN = 100000 + 10;struct data {int l, r;data(int l = 0, int r = 0) : l(l), r(r) {}inline bool operator < (const data &a) const {return (r == a.r) ? (l < a.l) : (r < a.r);}
} p[MAXN];int n, x, y, cnt;
int f[MAXN];
inline void solve() {scanf("%d", &n);for (int i = 1; i <= n; ++i) {scanf("%d%d", &x, &y);if (x + y < n) p[++cnt] = data(x + 1, n - y);}std::sort(p + 1, p + cnt + 1);for (int i = 1, head = 1; i <= n; ++i) {f[i] = f[i - 1];int temp = 0;while (head <= n && p[head].r == i) { if (p[head].l == p[head - 1].l) temp++;else temp = 1;f[i] = std::max(f[i], f[p[head].l - 1] + std::min(temp, i - p[head].l + 1)), head++;} }printf("%d", n - f[n]);
}int main() {solve();return 0;
}

bzoj2298 Problem a相关推荐

  1. [BZOJ2298]problem a

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

  2. [LG P2519][BZOJ2298][HAOI2011]problem a

    [LG P2519][BZOJ2298][HAOI2011]problem a 题目描述 一次考试共有n个人参加 第i个人说:"有ai个人分数比我高,bi个人分数比我低." 问最少 ...

  3. BZOJ2298 [HAOI2011]problem a

    先把所有人从小到大排序,则 如果一个人说a个人比他大,b个人比他小,等价于他声称[b + 1, n - a]的值是相等的 问题转化为给一些线段,找出一些不重叠的线段,价值最大 (注意:线段可以重合!! ...

  4. BZOJ2298 [HAOI2011]problem a 【dp】

    题目 一次考试共有n个人参加,第i个人说:"有ai个人分数比我高,bi个人分数比我低."问最少有几个人没有说真话(可能有相同的分数) 输入格式 第一行一个整数n,接下来n行每行两个 ...

  5. BZOJ2298: [HAOI2011]problem a(带权区间覆盖DP)

    Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 1747  Solved: 876 [Submit][Status][Discuss] Descrip ...

  6. BZOJ-2298|区间dp|线段树

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

  7. linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.

    所有的base 都要取消注释 mirrorlist 加上注释 另外所有的enable都要设为零 目录 今天是要yum命令安装EPEL仓库后 yum install epel-release 突然发现y ...

  8. A + B Problem

    1001: A + B Problem Description 计算 A + B. Input 多组测试数据,每组测试数据占一行,包括2个整数. Output 在一行中输出结果. Sample Inp ...

  9. Error:(49, 1) A problem occurred evaluating project ':guideview'. Could not read script 'https://r

    出现问题如下: Error:(49, 1) A problem occurred evaluating project ':guideview'. > Could not read script ...

最新文章

  1. python类中方法的执行顺序-python 函数或者类 代码的执行顺序
  2. Quartz集群部署
  3. c++11或c++14或c++17参数包的使用
  4. ios keychain 不被清理_苹果手机卸载软件会不会有残留?带你认识iOS沙盒机制!...
  5. 易语言mysql表新增防止重复_sqlite数据库 大量插入数据时如何避免重复插入(易语言,做好用sql语句写下)...
  6. 哈工大c语言作业系统,2015秋C语言程序设计
  7. 计算机大学等级评估,“计算机专业”学科评估,四所高校获A+评级
  8. Windows2000系统下载安装,怀念一下
  9. TCP中 滑动窗口RWND 和 拥塞窗口 CWND的区别
  10. 树莓派(Raspberry Pi) 命令行下如何配置wifi(wlan)
  11. 工资详情计算器-适用于2022年新税法累计扣税规则
  12. 目的路径太长如哈删除_文件名超长导致文件无法删除怎么办?
  13. xgboost缺失值处理
  14. like查询索引失效问题与解决办法
  15. 如果心酸就会心动也应行动
  16. 大数据的淘金之旅,数据治理之数据资产管理
  17. 如何修改计算机系统的网络最大连接数?
  18. 一边攒大米,一边做公益
  19. git报错:LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443 解决方法
  20. 联想卡在logo界面_[联想电脑卡在载入界面有什么解决方法]联想电脑卡在logo界面...

热门文章

  1. 一个工厂有m条流水线
  2. MacOS git配置本地ssh
  3. Semantic Web 语义化web
  4. html 的页眉页脚,html – 带滚动条的页眉,页脚和内容的CSS布局
  5. JS-事件-写一个通用的事件监听函数
  6. java——char类型以及Character
  7. 科技的成就(三十六)
  8. 微信小程序开发之——用户登录-搭建开发者服务器(2)
  9. 《海上钢琴师》斗琴部分的曲子
  10. 使用ffmpeg合成哔哩哔哩m4s格式的音视频流为mp4