题解:

E-trips

哎哎哎好傻逼啊

没有想到算不能的一直在想怎么算能的

太傻逼了

其实很简单

我们只需要对好友<=k的首先dfs一下给他连接着的朋友-1

然后如果小于了就递归下去

这个正确性是比较好想的

最后剩下的每个都是好友>=k个的并且都是这之间的

我们把他们都选了就可以了

这样不支持连边但是可以删边,所以倒着做就可以了

F - Maximum Reduction

大水题

会发现要求的长度为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的更多相关文章

  1. Codeforces 1037 H. Security

    \(>Codeforces \space 1037\ H. Security<\) 题目大意 : 有一个串 \(S\) ,\(q\) 组询问,每一次给出一个询问串 \(T\) 和一个区间 ...

  2. 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 比赛链 ...

  3. CF 1037 D. Valid BFS?

    D. Valid BFS? http://codeforces.com/contest/1037/problem/D 题意: 给一个序列,一棵树,判断能否bfs这棵树,得到这个序列. 分析: 将每个点 ...

  4. [Codeforces 1037E] Trip

    [题目链接] http://codeforces.com/problemset/problem/1037/E [算法] 首先离线 , 将问题倒过来考虑 , 转化为 : 每次删除一条边 , 此时最多有多 ...

  5. [Codeforces 1037D] Valid BFS?

    [题目链接] http://codeforces.com/problemset/problem/1037/D [算法] 首先求出每个点的父节点 , 每棵子树的大小 然后判断BFS序是否合法即可 时间复 ...

  6. [codeforces 1037D] Valid BFS? 解题报告(验证bfs序,思维题)

    题目链接:http://codeforces.com/problemset/problem/1037/D 题目大意: 给出一棵树,询问一个序列是否可能为这棵树从节点1开始遍历的bfs序 题解: 对于每 ...

  7. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  8. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  9. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

随机推荐

  1. 修改主机IP地址

    IP:由192.168.1.1~192.168.1.254. 先使用电脑以动态IP的方式自动获取ip地址联网,然后通过以下方法查询子网掩码和默认网关地址:

  2. 微信小程序-输入框输入文字后,将光标移到文字中间,接着输入文字后光标又自动跳到最后

    问题描述: input输入框输入一段文字后,将光标移到文字中间,接着输入文字后光标又自动跳到最后去了. 原因: input事件中,给input框绑定任何事件后,在处理事件时 setData之后就会让光 ...

  3. Laravel 5.2控制器--为什么命令行创建控制器的时候会报错?

    今天我遇到过一种情况:就是之前创建的控制器名称想更改(仅仅只是大小写问题而已),然后用命令行重新创建新的名称的控制器. 结果就报错了? [ReflectionException] Class App\ ...

  4. 【原创】大叔经验分享(35)lzo格式支持

    建表语句 CREATE EXTERNAL TABLE `my_lzo_table`(`something` string)ROW FORMAT DELIMITED FIELDS TERMINATED ...

  5. python元组,集合类型,及字典补充

    一.元组 元组与列表基本相同,不同之处在于元组只能存不能取,当多个值没有改的需求时,用元组更合适 元组的基本操作 1.创建元组: t = (1, 2, 3, 4, 2,4,) t = (1,) #单个 ...

  6. ajax控件无法使用 iis配置及web修改(转载)

    1.Web.config配置问题:将Web.config中的相关节配置成如下,然后重新编译你的程序:<httpHandlers><remove verb="*" ...

  7. login_code

    #! -*- coding:utf-8 -*-"""http://www.cnblogs.com/weke/articles/6271206.html前置和后置1.set ...

  8. iOS 去除百度地图下方的 logo

    UIView *mView = _mapView.subviews.firstObject; for (id logoView in mView.subviews)  { if ([logoView  ...

  9. Confluence 6 选择一个外部数据库

    注意: 选择一个合适的数据库通常需要花费很多时间.同时 Confluence 自带的 XML 数据备份和恢复功能通常也不适合合并和备份有大量数据的数据库.如果你想在系统运行后进行数据合并,你通常需要使 ...

  10. Confluence 6 基于 Confluence 数据中心的 SAML 单点登录

    安全申明标记语言(Security Assertion Markup Language (SAML))是一个基于 XML 的数据格式,允许各个软件平台通过identity provider (IdP) ...