首页 > 其他分享 >POJ-3263 Tallest Cow

POJ-3263 Tallest Cow

时间:2022-11-29 21:37:50浏览次数:68  
标签:题目 int 差分 3263 POJ mp 区间 include Tallest

思路分析

(摘自这篇博客)

这道题目一个核心要点,就是如何处理这些特殊的关系,也就是两头牛互相看见。
其实题目中已经告诉我们如何处理,因为我们发现,题目中要求牛的身高最高,那么既然如此,我们完全可以将每一组关系(A,B),看作[A+1,B−1]这组牛身高只比A,B这两头牛矮1.
因此我们可以可以利用区间处理小操作,也就是前缀和加差分。设一个数组D,D[i]为比最高牛矮多少,则D[P]=0,那么对于一组关系,我们可以这样操作,D[A+1]–,D[B]++;然后从左到右前缀和,就可以求出矮多少。
image

参考代码

#include <iostream>
#include <utility>
#include <map>
using namespace std;

const int N = 1e4 + 10;
int d[N];
map<pair<int, int>, bool> mp;	// 用于去除重复区间,存在重复区间会导致多减1

int main()
{
	int n, I, h, r;
	cin >> n >> I >> h >> r;

	while (r -- )
	{
		int a, b;
		cin >> a >> b;
		if (a > b) swap(a, b);	// 确保a小于等于b,方便之后差分
		
		if (mp[pair<int, int>(a, b)]) continue;	// 去除重复区间
		mp[pair<int, int>(a, b)] = true;
		d[a + 1] --, d[b] ++;	// 差分
	}
	
	for (int i = 1; i <= n; i ++ )
	{
		d[i] += d[i - 1];
		cout << h + d[i] << endl;	// 别忘记加上h
	}
	
	return 0;
}

标签:题目,int,差分,3263,POJ,mp,区间,include,Tallest
From: https://www.cnblogs.com/Panmaru/p/16936737.html

相关文章

  • SPOJLCMSUM - LCM Sum
    简要题意\(T\)组数据,每组数据给出一个\(n\),计算:\[\sum_{i=1}^{n}{\operatorname{lcm}(i,n)}\]\(1\leqT\leq3\times10^5,1\leqn\leq10^{6}\)思路比较快乐的......
  • POJ3252 Round Numbers
    终于一遍就写对了.第一次没有注意读题导致了一个没有注意到什时候要开始统计.Code#include<iostream>#include<string>#defineintlonglongusingnamespacestd;......
  • POJ2406-Power Strings
    PowerStringsTimeLimit: 3000MS MemoryLimit: 65536KTotalSubmissions: 55320 Accepted: 22983DescriptionGiventwostringsaandbwedefinea*b......
  • POJ2104-K-th Number(浅析主席树)
    K-thNumberTimeLimit: 20000MS MemoryLimit: 65536KTotalSubmissions: 65162 Accepted: 22979CaseTimeLimit: 2000MSDescriptionYouareworkingforMac......
  • BZOJ1036-[ZJOI2008]树的统计Count&&POJ3237-Tree
    为什么把这两题放在一起呢,因为这两题其实是一道题,只是输入顺序不一样。这里主要以BZOJ1036为例。1036:[ZJOI2008]树的统计CountTimeLimit: 10Sec  MemoryLimit: ......
  • POJ2001-Shortest Prefixes
    ShortestPrefixesAprefixofastringisasubstringstartingatthebeginningofthegivenstring.Theprefixesof"carbon"are:"c","ca","car","carb",......
  • POJ2299-Ultra-QuickSort
    Ultra-QuickSortInthisproblem,youhavetoanalyzeaparticularsortingalgorithm.Thealgorithmprocessesasequenceofndistinctintegersbyswappingtwo......
  • poj 1423 Big Number<<求N!位数>>
    BigNumberTimeLimit:1000MSMemoryLimit:65536KTotalSubmissions:27542Accepted:8789DescriptionInmanyapplicationsverylarg......
  • poj 2506 Tiling 《大数加法+递推》
    TilingTimeLimit:1000MS MemoryLimit:65536K TotalSubmissions:8689 Accepted:4183 DescriptionInhowmanywayscanyoutile......
  • hdoj 1285 2647 4857 poj 2367 2585 《《拓(tuo)扑》》
    其他题目在下面---题目链接:hdoj12852647:很久以前写的了---越想越难这星期要ac  (这里还有一个可爱的故事---嘿嘿)额,先放两个wrong代码,,希望给你们启发,,,第三个ac........