codeforces 1037
题解:
E-trips
哎哎哎好傻逼啊
没有想到算不能的一直在想怎么算能的
太傻逼了
其实很简单
我们只需要对好友<=k的首先dfs一下给他连接着的朋友-1
然后如果小于了就递归下去
这个正确性是比较好想的
最后剩下的每个都是好友>=k个的并且都是这之间的
我们把他们都选了就可以了
这样不支持连边但是可以删边,所以倒着做就可以了
大水题
会发现要求的长度为k,2k-1,3k-2,4k-3的最大值
单调栈维护前驱后继
然后前缀和优化一下求答案就完了
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define rint register int
#define IL inline
#define rep(i,h,t) for (rint i=h;i<=t;i++)
#define dep(i,t,h) for (rint i=t;i>=h;i--)
#define mid ((h+t)>>1)
const int mo=1e9+;
const int N=2e6;
ll a[N],sum[N],ans;
int nxt[N],pre[N];
struct re{
int a,b;
}ve[N];
int main()
{
freopen("1.in","r",stdin);
freopen("1.out","w",stdout);
ios::sync_with_stdio(false);
int n,m;
cin>>n>>m;
rep(i,,n) cin>>a[i];
int k=;
rep(i,,n)
{
while (m*k-k+<=i) k++;
sum[i]=(sum[i-]+k-)%mo;
}
int t=;
rep(i,,n)
{
while (t&&ve[t].a<a[i])
{
nxt[ve[t].b]=i-;
t--;
}
t++; ve[t].a=a[i]; ve[t].b=i;
}
while (t)
{
nxt[ve[t].b]=n;
t--;
}
dep(i,n,)
{
while (t&&ve[t].a<=a[i])
{
pre[ve[t].b]=i+;
t--;
}
t++; ve[t].a=a[i]; ve[t].b=i;
}
while (t)
{
pre[ve[t].b]=;
t--;
}
rep(i,,n)
{
ans+=(sum[nxt[i]-pre[i]+]-sum[nxt[i]-i+-]-sum[i-pre[i]+-])*a[i];
ans%=mo;
}
cout<<(ans+mo)%mo<<endl;
return ;
}
codeforces 1037的更多相关文章
- Codeforces  1037 H. Security
		
\(>Codeforces \space 1037\ H. Security<\) 题目大意 : 有一个串 \(S\) ,\(q\) 组询问,每一次给出一个询问串 \(T\) 和一个区间 ...
 - Manthan, Codefest 18 (Div 1 + Div 2) (A~E)
		
目录 Codeforces 1037 A.Packets B.Reach Median C.Equalize D.Valid BFS E.Trips(正难则反) Codeforces 1037 比赛链 ...
 - CF 1037 D. Valid BFS?
		
D. Valid BFS? http://codeforces.com/contest/1037/problem/D 题意: 给一个序列,一棵树,判断能否bfs这棵树,得到这个序列. 分析: 将每个点 ...
 - [Codeforces 1037E] Trip
		
[题目链接] http://codeforces.com/problemset/problem/1037/E [算法] 首先离线 , 将问题倒过来考虑 , 转化为 : 每次删除一条边 , 此时最多有多 ...
 - [Codeforces 1037D] Valid BFS?
		
[题目链接] http://codeforces.com/problemset/problem/1037/D [算法] 首先求出每个点的父节点 , 每棵子树的大小 然后判断BFS序是否合法即可 时间复 ...
 - [codeforces 1037D] Valid BFS? 解题报告(验证bfs序,思维题)
		
题目链接:http://codeforces.com/problemset/problem/1037/D 题目大意: 给出一棵树,询问一个序列是否可能为这棵树从节点1开始遍历的bfs序 题解: 对于每 ...
 - python爬虫学习(5) —— 扒一下codeforces题面
		
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...
 - 【Codeforces 738D】Sea Battle(贪心)
		
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
 - 【Codeforces 738C】Road to Cinema
		
http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...
 
随机推荐
- aix安装nmon
			
aix5310以上都系统自带了nmon,其他低版本需要手动安装 软件包下载地址https://www.ibm.com/developerworks/community/wikis/home?lang= ...
 - thinkphp提示不支持mysqli或者mysql
			
确认php是否安装了php-mysql组件,nginx或apache的php服务进程
 - 空串、null串和isEmpty方法
			
空串 空串""是长度为0的字符串.可以调用以下代码检查字符串是否为空: if(str.length() == 0) 或 if(str.equals("")) 空 ...
 - Uncaught RangeError: Maximum call stack size exceeded
			
环境: jquery+bootstrap+bootstrapValidator 问题描述:有个form表单,一点击按钮提交,就会报如题错误.正常应该是去校验表单输入. 解决: 从日志分析来看,报错的起 ...
 - Android App增量升级
			
移动互联网主打的就是用户体验和产品的快速迭代,通过用户反馈和用户行为跟踪及时调整产品方向,这样才能持续保持生命力和创造力.说的接地气点就是,你频繁的升级更新,有时只是修复了几个bug或者微调了下界面, ...
 - java后台发送请求并获取返回值
			
项目中需要前端发送请求给后端,而后端需要从另一个平台中取数据然后再透传给前端,通过下述代码将其实现.在此记录一下. package com.autotest.utils; import java.io ...
 - Linux学习之CentOS(一)--CentOS6.4环境搭建
			
Linux学习之CentOS(一)--CentOS6.4环境搭建http://www.cnblogs.com/xiaoluo501395377/archive/2013/03/31/CentOs.ht ...
 - Protobuf3 语法指南
			
目录 [−] 定义一个消息类型 指定字段类型 分配标识号 指定字段规则 添加更多消息类型 添加注释 保留标识符(Reserved) 从.proto文件生成了什么? 标量数值类型 默认值 枚举 使用其他 ...
 - LuoGu P1541 乌龟棋
			
题目传送门 乌龟棋我并不知道他为啥是个绿题0.0 总之感觉思维含量确实不太高(虽然我弱DP)(毛多弱火,体大弱门,肥胖弱菊,骑士弱梯,入侵弱智,沙华弱Dp) 总之,设计出来状态这题就很简单了 设 f[ ...
 - tensorflow中文教程
			
飞机票--->走你~~~ 飞机票 http://blog.csdn.net/lenbow/article/details/52152766