链接:

https://www.acwing.com/problem/content/103/

题意:

有 N 头牛站成一行,被编队为1、2、3…N,每头牛的身高都为整数。

当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方。

现在,我们只知道其中最高的牛是第 P 头,它的身高是 H ,剩余牛的身高未知。

但是,我们还知道这群牛之中存在着 M 对关系,每对关系都指明了某两头牛 A 和 B 可以相互看见。

求每头牛的身高的最大可能值是多少。

思路:

维护差分数组,对于a,b,Sub[a+1]-1, Sub[b]+1.即可.表示了a到b之间的值起码要少1.

处理重复,和相邻.

代码:

#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e4+10; map<pair<int, int>, bool> mp;
int Sub[MAXN], Ori[MAXN];
int n, p, h, m; int main()
{
scanf("%d%d%d%d", &n, &p, &h, &m);
int a, b;
for (int i = 1;i <= m;i++)
{
scanf("%d%d", &a, &b);
if (a > b)
swap(a, b);
if (a+1 == b)
continue;
if (mp[make_pair(a, b)])
continue;
mp[make_pair(a, b)] = true;
Sub[a+1] -= 1;
Sub[b] += 1;
}
Ori[p] = h;
for (int i = p;i >= 1;i--)
Ori[i-1] = Ori[i]-Sub[i];
for (int i = p;i <= n;i++)
Ori[i+1] = Ori[i]+Sub[i+1];
for (int i = 1;i <= n;i++)
printf("%d\n", Ori[i]); return 0;
}

最新文章

  1. Transaction Save Point (SET XACT_ABORT { ON | OFF })
  2. RichEdit
  3. HttpContext为null new HttpContextWrapper(System.Web.HttpContext.Current)
  4. gerrit docker运行失败 chown: /var/gerrit/review_site: Permission denied 【已解决】
  5. 函数(def)
  6. 设置trace SQL
  7. Piggy-Bank(完全背包)
  8. 驴吃胡萝卜问题——牛客/FEI
  9. 00.pt-toolkit 目录
  10. Oracle数据库---用户与角色
  11. windows下如何通过git bash获取gitlab ssh公钥
  12. 利用NPOI导出数据到Execl
  13. [ASE][Daily Scrum]11.11
  14. 【Devops】【docker】【CI/CD】1.docker搭建Gitlab环境
  15. 构建高性能web之路------mysql读写分离实战(转)
  16. win32程序应用mfc库
  17. 单线程的redis为什么吞吐量可以这么大
  18. vue 一开始
  19. Canvas组件:画布,可以实现动画操作
  20. BZOJ 2073 [POI2004]PRZ(状压DP)

热门文章

  1. NOIp2018D1T2 货币系统【分析&amp;完全背包】
  2. icon.css
  3. [转帖]$PWD 和 $(pwd)
  4. Spark中分布式使用HanLP(1.7.0)分词示例
  5. SQLite基础-2.PyCharm+Database_Navigator
  6. Websocket 突破最大长连接
  7. 平衡树(Splay、fhq Treap)
  8. springboot2.X版本得@Transactional注解事务不回滚不起作用
  9. Collection接口的子接口——List接口
  10. C# 面向对象5 this关键字和析构函数