简单的区间(interval)

题目描述:

样例输入:

样例1:
4 3
1 2 3 4样例2:
4 2
4 4 7 4

样例输出:

样例1:
3样例2:
6

提示:

时间限制:1000ms
空间限制:512MByte

之前写了一个的代码

#include<bits/stdc++.h>
#define maxn 1001000
#define ll long long
using namespace std;ll n,k,a[maxn],s[maxn],cun[maxn],ans;
vector <ll> up[maxn],down[maxn];void update(ll l,ll r,ll val)
{if(!r) return; up[max((ll)0 , l)].push_back(val);down[max((ll)0 , r)].push_back(val);
}void find(ll l,ll r)
{if(l >= r) return;ll ma = 0,pos;for(ll i=l;i<=r;i++){if(a[i] > ma){ma = a[i];pos = i;}}find(l,pos - 1);find(pos + 1,r);if(pos - l <= r - pos)//求右边
    {update(pos + 1,r,(s[pos - 1] + ma) % k);for(ll i=l;i<pos;i++){ll val = (s[i - 1] + ma) % k;update(pos,r,val);}}else//求左边
    {update(l-1,pos - 2,(s[pos] - ma % k + k) % k);for(ll i=pos + 1;i<=r;i++){ll val = (s[i] - ma % k + k) % k;update(l-1,pos-1,val);}}
}void query()
{for(ll i=0;i<=n;i++){    for(ll j=0;j<up[i].size();j++)cun[up[i][j]]++;ans += cun[s[i]];for(ll j=0;j<down[i].size();j++)cun[down[i][j]]--;}
}int main(){scanf("%lld%lld",&n,&k);for(ll i=1;i<=n;i++){scanf("%lld",&a[i]);s[i] = (s[i - 1] + a[i]) % k;}    find(1,n);query();printf("%lld",ans);
}

结果惨遭卡常!!!

TAT____

然后卡卡常数就过了。。。

//#pragma GCC optimize(2)
#include<bits/stdc++.h>
#define maxn 1001000
#define ll long long
#define R register
using namespace std;ll n,k,a[maxn],s[maxn],cun[maxn],ans;
vector <ll> up[maxn],down[maxn];inline void update(ll l,ll r,ll val)
{if(!r) return; up[max((ll)0 , l)].push_back(val);down[r].push_back(val);
}inline void find(ll l,ll r)
{if(l >= r) return;ll ma = 0,pos;for(R ll i=l;i<=r;++i){if(a[i] > ma){ma = a[i];pos = i;}}find(l,pos - 1);find(pos + 1,r);if(pos - l <= r - pos)//求右边
    {update(pos + 1,r,(s[pos - 1] + ma) % k);for(R ll i=l;i<pos;++i){ll val = (s[i - 1] + ma) % k;update(pos,r,val);}}else//求左边
    {update(l-1,pos - 2,(s[pos] - ma % k + k) % k);//就是这里,TM%没有打!!! TM-1没有打!!! for(R ll i=pos + 1;i<=r;++i){ll val = (s[i] - ma % k + k) % k;//同上 update(l-1,pos-1,val);//同上
        }}
}inline void query()
{for(R ll i=0;i<=n;++i){    for(R ll j=0;j<up[i].size();++j)++cun[up[i][j]];ans += cun[s[i]];for(R ll j=0;j<down[i].size();++j)--cun[down[i][j]];}
}int main(){scanf("%lld%lld",&n,&k);for(R ll i=1;i<=n;++i){scanf("%lld",&a[i]);s[i] = (s[i - 1] + a[i]) % k;}    find(1,n);query();printf("%lld",ans);
}

还是跑过了。。。但是难受啊,一个早上啊!!!QAQ!!!

转载于:https://www.cnblogs.com/kczno1fans/p/7715682.html

又联考了一场,感觉自己好菜啊,T1没写出来,后来花了一个早上调试。QAQ。最后发现是个-1还有取模没打。。。TAT。。。难受极了!!!...相关推荐

  1. 反抗希碧拉系统续(NOIP2014八校联考第3场第1试10.4)

    看了题解才会做的题..感觉有点思想有点妙就来写一发吧... 题意简版 给出一个特殊的正则表达式,有如下递归定义: 元素:="["+字符集+"]",表示匹配字符集 ...

  2. JZOJ 3875. 【NOIP2014八校联考第4场第2试10.20】星球联盟(alliance)

    Description 在遥远的S星系中一共有N个星球,编号为1-N.其中的一些星球决定组成联盟,以方便相互间的交流. 但是,组成联盟的首要条件就是交通条件.初始时,在这N个星球间有M条太空隧道.每条 ...

  3. JZOJ 3871. 【NOIP2014八校联考第4场第1试10.19】无聊的游戏(game)

    Description 学校的运动会开始了,体能很菜的小可可没报任何比赛项目,于是和同学们玩一个十分无聊的游戏. 游戏在一个由 n∗nn*n 个方格组成的正方形棋盘上进行,首先在每个方格上均匀随机地填 ...

  4. JZOJ 3870. 【NOIP2014八校联考第4场第1试10.19】单词检索(search)

    Description 小可可是学校图书馆的管理员,现在他接手了一个十分棘手的任务. 由于学校需要一些材料,校长需要在文章中检索一些信息.校长一共给了小可可N篇文章,每篇文章为一个字符串.现在,校长需 ...

  5. JZOJ 3853. 【NOIP2014八校联考第2场第2试9.28】帮助Bsny(help)

    Description Bsny的书架乱成一团了,帮他一下吧! 他的书架上一共有n本书,我们定义混乱值是连续相同高度书本的段数.例如,如果书的高度是30,30,31,31,32,那么混乱值为3:30, ...

  6. JZOJ 3852. 【NOIP2014八校联考第2场第2试9.28】单词接龙(words)

    Description Bsny从字典挑出N个单词,并设计了接龙游戏,只要一个单词的最后两个字母和另一个单词的前两个字母相同,那么这两个单词就可以有序的连接起来. Bsny想要知道在所给的所有单词中能 ...

  7. 2017.08.20【NOIP提高组】模拟赛B组 【NOIP2014八校联考第4场第2试10.20】星球联盟(alliance)

    ####Description 在遥远的S星系中一共有N个星球,编号为1-N.其中的一些星球决定组成联盟,以方便相互间的交流. 但是,组成联盟的首要条件就是交通条件.初始时,在这N个星球间有M条太空隧 ...

  8. 2017.08.20【NOIP提高组】模拟赛B组 【NOIP2014八校联考第4场第2试10.20】星球联盟(alliance)...

    ####Description 在遥远的S星系中一共有N个星球,编号为1-N.其中的一些星球决定组成联盟,以方便相互间的交流. 但是,组成联盟的首要条件就是交通条件.初始时,在这N个星球间有M条太空隧 ...

  9. 九省联考2018总结

    前言 我作为一名ZJOI2018day1凉凉选手,为获得更多的省选体验,去上海参加了九省联考2018,当然,是属于外省选手参加的(所以实际并测的时候出现了一些问题也得不到解决),做完两天的题,深有感触 ...

最新文章

  1. 闭包的介绍、构成条件、作用及示例代码
  2. php--理解PHP的依赖注入和laravel的服务容器
  3. 实验二matlab数值,实验二MATLAB数值计算
  4. 初等数论--整除--公因数一定是最大公因数的因数
  5. swin_transformer用于做图像分类(已跑通)
  6. 对文本的内容进行排序
  7. [react] 请说下react组件更新的机制是什么
  8. 开源应用诊断利器 Arthas GitHub Star 突破两万
  9. 华为鸿蒙系统可能,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  10. Prototype库终于有了文档了
  11. 关于 Web3.0前端工程师需要具备哪些技术?
  12. Transact-SQL基础语言(数据检索)
  13. php 搜索关键字,PHP获取搜索关键字有关问题_PHP教程
  14. Android2.1源码目录结构
  15. 视频太大不能上传如何缩小?
  16. Tita 绩效宝:绩效面谈的8个流程
  17. 小白读《HTML5权威指南》第三部分 CSS
  18. 洛谷 10月 csp-s 模拟赛 T1,T2解析及代码
  19. 湖南大学 实验八 青蛙与蚊子
  20. 微信小程序自定义图片上传组件

热门文章

  1. 中断linux命令快捷键_基于Linux终端命令行的快捷键的详细解析
  2. 使用 Navicat Premium12 创建报表
  3. 键、索引、约束及其区别
  4. Java 多线程详解(二)------如何创建进程和线程
  5. 中南大学 科学计算与MATLAB语言 矩阵的特征值与特征向量
  6. 运筹优化(十二)--带约束非线性规划(NLP)
  7. 三百行python代码的项目_300行Python代码打造实用接口测试框架
  8. Better-scroll的安装及使用
  9. 如何在内存中存储有序数据?
  10. Ubnutu20.04安装Tensorflow