又联考了一场,感觉自己好菜啊,T1没写出来,后来花了一个早上调试。QAQ。最后发现是个-1还有取模没打。。。TAT。。。难受极了!!!
简单的区间(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) , l)].push_back(val);
down[max((ll) , r)].push_back(val);
} void find(ll l,ll r)
{
if(l >= r) return;
ll ma = ,pos;
for(ll i=l;i<=r;i++)
{
if(a[i] > ma)
{
ma = a[i];
pos = i;
}
} find(l,pos - );
find(pos + ,r);
if(pos - l <= r - pos)//求右边
{
update(pos + ,r,(s[pos - ] + ma) % k);
for(ll i=l;i<pos;i++)
{
ll val = (s[i - ] + ma) % k;
update(pos,r,val);
}
}
else//求左边
{
update(l-,pos - ,(s[pos] - ma % k + k) % k);
for(ll i=pos + ;i<=r;i++)
{
ll val = (s[i] - ma % k + k) % k;
update(l-,pos-,val);
}
}
} void query()
{
for(ll i=;i<=n;i++)
{
for(ll j=;j<up[i].size();j++)
cun[up[i][j]]++;
ans += cun[s[i]];
for(ll j=;j<down[i].size();j++)
cun[down[i][j]]--;
}
} int main(){
scanf("%lld%lld",&n,&k);
for(ll i=;i<=n;i++)
{
scanf("%lld",&a[i]);
s[i] = (s[i - ] + a[i]) % k;
}
find(,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) , l)].push_back(val);
down[r].push_back(val);
} inline void find(ll l,ll r)
{
if(l >= r) return;
ll ma = ,pos;
for(R ll i=l;i<=r;++i)
{
if(a[i] > ma)
{
ma = a[i];
pos = i;
}
}
find(l,pos - );
find(pos + ,r);
if(pos - l <= r - pos)//求右边
{
update(pos + ,r,(s[pos - ] + ma) % k);
for(R ll i=l;i<pos;++i)
{
ll val = (s[i - ] + ma) % k;
update(pos,r,val);
}
}
else//求左边
{
update(l-,pos - ,(s[pos] - ma % k + k) % k);//就是这里,TM%没有打!!! TM-1没有打!!!
for(R ll i=pos + ;i<=r;++i)
{
ll val = (s[i] - ma % k + k) % k;//同上
update(l-,pos-,val);//同上
}
}
} inline void query()
{
for(R ll i=;i<=n;++i)
{
for(R ll j=;j<up[i].size();++j)
++cun[up[i][j]];
ans += cun[s[i]];
for(R ll j=;j<down[i].size();++j)
--cun[down[i][j]];
}
} int main(){
scanf("%lld%lld",&n,&k);
for(R ll i=;i<=n;++i)
{
scanf("%lld",&a[i]);
s[i] = (s[i - ] + a[i]) % k;
}
find(,n);
query();
printf("%lld",ans);
}
还是跑过了。。。但是难受啊,一个早上啊!!!QAQ!!!

又联考了一场,感觉自己好菜啊,T1没写出来,后来花了一个早上调试。QAQ。最后发现是个-1还有取模没打。。。TAT。。。难受极了!!!的更多相关文章
- 又联考了一场,感觉自己好菜啊,T2推出了公式但是不会逆元QAQ,难受啊!!!不过都确实是一道逆元的好题撒!
简单的玄学(random) 题目描述: 样例输入: 样例1: 3 2 样例2: 1 3 样例3: 4 3 样例输出: 样例1: 1 8 样例2: 1 1 样例3: 23 128 提示: 时间限制:10 ...
- [jzoj]3875.【NOIP2014八校联考第4场第2试10.20】星球联盟(alliance)
Link https://jzoj.net/senior/#main/show/3875 Problem 在遥远的S星系中一共有N个星球,编号为1…N.其中的一些星球决定组成联盟,以方便相互间的交流. ...
- 【JZOJ3875】【NOIP2014八校联考第4场第2试10.20】星球联盟(alliance)
fg 在遥远的S星系中一共有N个星球,编号为1-N.其中的一些星球决定组成联盟,以方便相互间的交流. 但是,组成联盟的首要条件就是交通条件.初始时,在这N个星球间有M条太空隧道.每条太空隧道连接两个星 ...
- 【JZOJ3873】【NOIP2014八校联考第4场第2试10.20】乐曲创作(music)
ujfuiaty 小可可是音乐学院的一名学生,他需要经常创作乐曲完成老师布置的作业. 可是,小可可是一个懒惰的学生.所以,每次完成作业时,他不会重新创作一首新的乐曲,而是去修改上一次创作过的乐曲作为作 ...
- 【JZOJ3852】【NOIP2014八校联考第2场第2试9.28】单词接龙(words)
DDD Bsny从字典挑出N个单词,并设计了接龙游戏,只要一个单词的最后两个字母和另一个单词的前两个字母相同,那么这两个单词就可以有序的连接起来. Bsny想要知道在所给的所有单词中能否按照上述方式接 ...
- 【JZOJ3853】【NOIP2014八校联考第2场第2试9.28】帮助Bsny(help)
EVRT Bsny的书架乱成一团了,帮他一下吧! 他的书架上一共有n本书,我们定义混乱值是连续相同高度书本的段数.例如,如果书的高度是30,30,31,31,32,那么混乱值为3:30,32,32,3 ...
- 【JZOJ3854】【NOIP2014八校联考第2场第2试9.28】分组(group)
MEi Bsny所在的精灵社区有n个居民,每个居民有一定的地位和年龄,ri表示第i个人的地位,ai表示第i个人的年龄. 最近社区里要举行活动,要求几个人分成一个小组,小组中必须要有一个队长,要成为队长 ...
- @游记@ CQOI2019(十二省联考)
目录 @day - 0@ @day - 1@ @day - 2@ @后记@ 我只是来打酱油哒-- 顶多能进个 E 类继续打酱油. 原本还在互奶 A 队,结果现在--铁定进不了队啦. 对初中生的歧视啊 ...
- 2019十二省联考 Round 1 && 济南市市中心游记
在这样一场毒瘤的省选中 这道题目无疑是命题人无私的馈赠 大量精心构造的部分分,涵盖了题目中所有涉及的算法 你可以利用这道题目,对你是否能够进入省队进行初步检查 经典的模型.较低的难度和不大的代码量,能 ...
随机推荐
- 机器学习【一】K最近邻算法
K最近邻算法 KNN 基本原理 离哪个类近,就属于该类 [例如:与下方新元素距离最近的三个点中,2个深色,所以新元素分类为深色] K的含义就是最近邻的个数.在sklearn中,KNN的K值是通过n ...
- springBoot(2) HelloWorld
首先 下载一个 Spring Boot环境. 下载地址:https://spring.io/tools3/sts/all 打开STS.exe 一,新建项目 然后在空白处新建: 1.New→Other→ ...
- 【Linux开发】Linux V4L2驱动架构解析与开发导引
Linux V4L2驱动架构解析与开发导引 Andrew按:众所周知,linux中可以采用灵活的多层次的驱动架构来对接口进行统一与抽象,最低层次的驱动总是直接面向硬件的,而最高层次的驱动在linux中 ...
- 【Linux开发】如何查看Linux kernel的内置模块驱动列表和进程ID
[Linux开发]如何查看Linux kernel的内置模块驱动列表和进程ID 标签:[Linux开发] 命令: cat /lib/modules/$(uname -r)/modules.builti ...
- Mysql-问题解决记录
1.查看当前默认的配置文件位置 # mysqld --verbose --help | 'Default options' Default options are read from the foll ...
- 秒懂Vuejs、Angular、React原理和前端发展历史
「前端程序发展的历史」 「 不学自知,不问自晓,古今行事,未之有也 」 我们都知道现在流行的框架:Vue.Js.AngularJs.ReactJs,已经逐渐应用到各个项目和实际应用中,它们都是MVVM ...
- 编写Servlet步骤以及Servlet生命周期是怎样的
一.编写Servlet步骤 1.继承HttpServlet,HttpServlet在javax-servlet-api依赖下 2.重写doGet()或者doPost()方法 3.在web.xml中注册 ...
- faker数据填充详解
安装 在laravel中已经自动集成,无需手动安装.如需在其他地方使用,可使用以下命令进行安装. composer require fzaninotto/faker 为Faker指定中文支持 可通过在 ...
- git Permanently added the RSA host key for IP address '13.250.177.223' to the list of known hosts.
只要把那个ip地址添加进hosts列表中就可解决. 参见:https://blog.csdn.net/hunhun1122/article/details/79752125
- java中关键字final,finally,finalize的区别
-final:作为修饰符关键字,有三种用法: 1,如果一个类被声明为final,则意味着它不能被继承. 2,将变量声明为final,则表示它是一个常量,也就是保证它在使用过程中不被修改,被final修 ...