哈尔滨理工大学第七届程序设计竞赛决赛(现场赛-高年级组)E-求最大值
2018-03-07 23:04
274 查看
链接:https://www.nowcoder.com/acm/contest/50/E
来源:牛客网
最大值一定是相邻的两个数相减得到的。
注:map中默认按key的值排序。
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn=200007;
int a[maxn];
map<int,int>mp;
int main()
{
int n,Q;
while(~scanf("%d",&n))
{
int i,j;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(i!=1)
{
int t=a[i]-a[i-1];
if(!mp[t])mp[t]=1;
else mp[t]++;
}
}
scanf("%d",&Q);
while(Q--)
{
int x,y;scanf("%d%d",&x,&y);
int t1,t2;
if(x!=1)
{
t1=a[x]-a[x-1];
mp[t1]--;
if(mp[t1]==0)mp.erase(t1);
t1=y-a[x-1];
if(!mp[t1])mp[t1]=1;
else mp[t1]++;
}
if(x!=n)
{
t2=a[x+1]-a[x];
mp[t2]--;
if(mp[t2]==0)mp.erase(t2);
t2=a[x+1]-y;
if(!mp[t2])mp[t2]=1;
else mp[t2]++;
}
a[x]=y;
map<int,int>::iterator it=mp.end();
it--;//it指向最后一个元素
pair<int,int>item=*it;
printf("%d",item.first);
printf(".00\n");
}
mp.clear();
}
return 0;
}
来源:牛客网
题目描述
给出一个序列,你的任务是求每次操作之后序列中 (a[j]-a[i])/(j-i)【1<=i<j<=n】的最大值。 操作次数有Q次,每次操作需要将位子p处的数字变成y.输入描述:
本题包含多组输入,每组输入第一行一个数字n,表示序列的长度。 然后接下来一行输入n个数,表示原先序列的样子。 再接下来一行一个数 d38d 字Q,表示需要进行的操作的次数。 最后Q行每行两个元素p,y,表示本操作需要将位子p处的数字变成y. 数据范围: 3<=n<=200000 1<=Q<=200000 -1000000000<=a[i]<=1000000000题解:
最大值一定是相邻的两个数相减得到的。
注:map中默认按key的值排序。
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn=200007;
int a[maxn];
map<int,int>mp;
int main()
{
int n,Q;
while(~scanf("%d",&n))
{
int i,j;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(i!=1)
{
int t=a[i]-a[i-1];
if(!mp[t])mp[t]=1;
else mp[t]++;
}
}
scanf("%d",&Q);
while(Q--)
{
int x,y;scanf("%d%d",&x,&y);
int t1,t2;
if(x!=1)
{
t1=a[x]-a[x-1];
mp[t1]--;
if(mp[t1]==0)mp.erase(t1);
t1=y-a[x-1];
if(!mp[t1])mp[t1]=1;
else mp[t1]++;
}
if(x!=n)
{
t2=a[x+1]-a[x];
mp[t2]--;
if(mp[t2]==0)mp.erase(t2);
t2=a[x+1]-y;
if(!mp[t2])mp[t2]=1;
else mp[t2]++;
}
a[x]=y;
map<int,int>::iterator it=mp.end();
it--;//it指向最后一个元素
pair<int,int>item=*it;
printf("%d",item.first);
printf(".00\n");
}
mp.clear();
}
return 0;
}
相关文章推荐
- 哈尔滨理工大学第七届程序设计竞赛决赛(现场赛-高年级组)B-幸运大奖
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)-E:求最大值(思维)
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)E - 求最大值
- 【哈尔滨理工大学第七届程序设计竞赛决赛(高年级组)】E 求最大值 【线段树+思维】
- 哈尔滨理工大学第七届程序设计竞赛决赛(现场赛-高年级组)A-所有情况的和
- 哈尔滨理工大学第七届程序设计竞赛决赛(现场赛-高年级组)B-幸运大奖
- 哈尔滨理工大学第七届程序设计竞赛决赛(现场赛-高年级组) A-所有情况的和
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)B - 幸运大奖
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)A - 所有情况的和
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)- (A,B)
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)-D:数圈圈(数位DP)
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)D - 数圈圈
- 【哈尔滨理工大学第七届程序设计竞赛决赛(高年级组)】 A B C D E G
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)C - 小明打联盟
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)-C:小明打联盟(DP+思维)
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)G - 幼儿园战争
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)A 所有情况的和(思维题)
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)H - 字典序最小的中序遍历
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)A 所有情况的和【期望】