[USACO07JAN]区间统计Tallest Cow
2024-10-08 02:10:07
前缀和
sum[i]表示前i个数的和
每次读入a[i]的时候
sum[i] = sum[i - 1] + a[i];
查询l ~ r区间的和: sum[r] - sum[l - 1]
差分
即前缀和的修改操作
我们定义pre[i]表示前i个数需要改变的值
则对一个区间l ~ r + k的操作是
pre[r] + k; pre[l - 1] - k;
则多算的1 ~ l - 1部分就抵消,等价与l ~ r + k;
本题中同一关系可能给出多次,需用map或hash判重
#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
using namespace std;
map<pair<int,int>,bool> vis;
int a[],b[];
int n,p,h,m;
int main()
{
scanf("%d%d%d%d",&n,&p,&h,&m);//本题中给出的p(最高牛的位置)没有用处
for(int i=,x,y;i<=m;i++)
{
scanf("%d%d",&x,&y);
if(x>y) swap(x,y);// x < y
if(vis[make_pair(x,y)]) continue;//map判重
a[x+]--,a[y]++;//差分 影响从a[x+1]开始 持续到a[y-1]
vis[make_pair(x,y)]=true;
}
for(int i=;i<=n;i++)
{
b[i]=b[i-]+a[i];
printf("%d\n",h+b[i]);
}
return ;
}
最新文章
- Animator Controller 继承关系
- c#_图表之zeGraph
- spring mvc生成注册验证码
- cocos2d 3.X Shader 变暗和变灰
- Visual Studio图片注释image-comments扩展
- js中event.target和event.srcElement的区别
- Windows统一平台: 开发小技巧
- POJ 2065 SETI (高斯消元 取模)
- 新建数据库,然后使用SQL语句创建表、存储过程、用户说明
- 数据结构典型算法的VC实现(袁辉勇)
- HTML资源(推荐)
- Java 之 HTML
- 最新的css3动画按钮效果
- chrome的断点调试
- 重温CSS3
- Linux(CentOS7)压缩和解压缩war包、tar包、tar.gz包命令
- C#如何拦截 Webbrowser Control的响应内容
- 【原创】大数据基础之ORC(1)简介
- python基础学习10----集合
- MVC的Filter应用小结