题解 P2879 【[USACO07JAN]区间统计Tallest Cow】
思路:
先不管最大高度,我们读入一对x,y.说明,x+1~y-1之间牛的身高都小于x,y。
然后不妨将这个区间打个标记-1。所有操作后,可知最高的那个牛它的标记一定是0,并且标记数量与身高排名正相关,于是再将所有奶牛的标记数加上最高身高h就是可能的最大身高。
因为之前的操作保证标记的数量是按着身高排名来的,加上最大身高当然是最大可能身高。
然后我们是要将x+1~y-1打标记,根据差分数组的思维,就要让x+1处-1,y处+1。
注意:
- 判重,用map,pair或hash。
- 可能读入x,y大小关系符的需要swap
代码:
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn=10005;
int n,m,h,i;
int f[maxn],tp[maxn];
bool h_[19260817]; //暴力Hash需谨慎 逃)
bool m_hash(int x,int y)
{
int t=(x*y+x/y+x+y+(x>>1)-(y>>1))%19260817; +1s
if(h_[t])return 0;
else h_[t]=1;
return 1;
}
int main()
{
cin>>n>>i>>h>>m;
for(register int i=1;i<=m;i++)
{
register int a,b;
scanf("%d %d",&a,&b);
if(a>b)swap(a,b);
if(m_hash(a,b)){
tp[a+1]--,tp[b]++;
}
}
for(register int i=1;i<=n;i++)
{
f[i]=f[i-1]+tp[i];
cout<<f[i]+h<<endl;
}
return 0;
}
题解 P2879 【[USACO07JAN]区间统计Tallest Cow】的更多相关文章
- bzoj1635 / P2879 [USACO07JAN]区间统计Tallest Cow
P2879 [USACO07JAN]区间统计Tallest Cow 差分 对于每个限制$(l,r)$,我们建立一个差分数组$a[i]$ 使$a[l+1]--,a[r]++$,表示$(l,r)$区间内的 ...
- 洛谷P2879 [USACO07JAN]区间统计Tallest Cow
To 洛谷.2879 区间统计 题目描述 FJ's N (1 ≤ N ≤ 10,000) cows conveniently indexed 1..N are standing in a line. ...
- 洛谷 P2879 [USACO07JAN]区间统计Tallest Cow
传送门 题目大意: n头牛,其中最高身高为h,给出r对关系(x,y) 表示x能看到y,当且仅当y>=x并且x和y中间的牛都比 他们矮的时候,求每头牛的最高身高. 题解:贪心+差分 将每头牛一开始 ...
- [Luogu2879][USACO07JAN]区间统计Tallest Cow
题目描述 FJ's N (1 ≤ N ≤ 10,000) cows conveniently indexed 1..N are standing in a line. Each cow has a p ...
- [USACO07JAN]区间统计Tallest Cow
前缀和 sum[i]表示前i个数的和 每次读入a[i]的时候 sum[i] = sum[i - 1] + a[i]; 查询l ~ r区间的和: sum[r] - sum[l - 1] 差分 即前缀和的 ...
- [Luogu] 区间统计Tallest Cow
https://www.luogu.org/problemnew/show/P2879 差分 | 线段树 #include <iostream> #include <cstdio&g ...
- POJ 3263 Tallest Cow 题解
题目 FJ's \(N (1 ≤ N ≤ 10,000)\) cows conveniently indexed 1..N are standing in a line. Each cow has a ...
- Tallest Cow POJ - 3263 (区间点修改)
FJ's N (1 ≤ N ≤ 10,000) cows conveniently indexed 1..N are standing in a line. Each cow has a positi ...
- BZOJ1635: [Usaco2007 Jan]Tallest Cow 最高的牛
1635: [Usaco2007 Jan]Tallest Cow 最高的牛 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 346 Solved: 184 ...
随机推荐
- python —— 文本特征提取 CountVectorize
CountVectorize 来自:python学习 文本特征提取(二) CountVectorizer TfidfVectorizer 中文处理 - CSDN博客 https://blog.csdn ...
- 1.ibatis核心类
- ios-动态添加方法,交换方法,重定向方法
新建一个类Person,Person.h 不写代码,Person.m 有如下两个方法: - (void)eat { NSLog(@"xxx eat===="); } [动态添加方法 ...
- 怎么让C#项目自动复制NuGet中的dll引用到输出目录?
1.从vs中关闭项目 2.用记事本打开csproj文件 3. 在<PropertyGroup> 和 </PropertyGroup>之间添加一行: <CopyLocal ...
- JavaScript中原型链存在的问题解析
我们知道使用原型链实现继承是一个goodway:)看个原型链继承的例子. function A () { this.abc = 44; } A.prototype.getAbc = function ...
- jeecg中列表点击单号跳入链接
效果如图:点击单号,跳到一个新的页面 1.首先列表给一个自定义的js: <t:dgCol title="业务编号" field="orderCode" ...
- jQuery常用Event-API
目的:对web页面(HTML/JSP)进行事件触发,完成特殊效果的处理 window.onload:在浏览器加载web页面时触发,可以写多次onload事件,但后者覆盖前者 ready:在浏览器加载w ...
- CreationPolicy 枚举的值
根据[CreationPolicy]枚举的值,我们很容易就能看出其代表的意义,[Shared]代表共享部件,即单例,所有的导入都使用一个实例,如果组合引擎中没有该实例,则会创建,一旦有了,就不会再创建 ...
- c语言实行泛型hashmap
代码出处:A simple string hashmap in C https://github.com/petewarden/c_hashmap main.c (main2是官方源代码,main是 ...
- 《A Survey on Transfer Learning》迁移学习研究综述 翻译
迁移学习研究综述 Sinno Jialin Pan and Qiang Yang,Fellow, IEEE 摘要: 在许多机器学习和数据挖掘算法中,一个重要的假设就是目前的训练数据和将来的训练数据 ...