阿尔法在玩一个游戏,阿尔法给出了一个长度为n的序列,他认为,一段好的区间,它的长度是>=k的,且该区间的第k大的那个数,一定大于等于T。那么问题来了,阿尔法想知道有多少好的区间。

由于阿尔法的序列长度实在是太大了,无法在规定时间内读入。

他想了一个绝妙的方法。

读入a[0],b,c,p,则a[i]=(a[i-1]*b+c)mod p。

样例解释:

a1~a5分别为47,135,247,35,147

对应的7个区间分别为[1,3],[2,3],[1,4],[2,4],[1,5],[2,5],[3,5]

 
对于重复的数字1,2,2 第一大是2,第二大也是2,第三大是1。
Input
读入一行,7个数字,表示n(n<=10000000),k(k<=n),T,a[0],b,c,p。
所有数字均为正整数且小于等于10^9。
Output
输出一行表示好区间的个数。
Input示例
5 2 100 10 124 7 300
Output示例
7

尺取法。
代码:
#include <iostream>
#include <cstdio>
#include <algorithm>
#define MAX 10000001
using namespace std; long long n,k,t,a0,b,c,p,ans;
int sum[MAX];
int main() {
while(~scanf("%lld%lld%lld%lld%lld%lld%lld",&n,&k,&t,&a0,&b,&c,&p)) {
long long d = a0;
for(int i = ;i <= n;i ++) {
d = (d * b + c) % p;
sum[i] = sum[i - ];
if(d >= t) sum[i] ++;
}
int head = ,tail = ;
ans = ;
while(tail <= n) {
if(tail - head < k || sum[tail] - sum[head] < k) tail ++;
else {
ans += n - tail + ;///区间满足,加上后边的数一定也满足,只要区间内比它不小的数不少于k即可
head ++;
}
}
printf("%lld\n",ans);
}
}

51nod 1495 中国好区间的更多相关文章

  1. 51 nod 1495 中国好区间

    1495 中国好区间 基准时间限制:0.7 秒 空间限制:131072 KB 分值: 80 难度:5级算法题   阿尔法在玩一个游戏,阿尔法给出了一个长度为n的序列,他认为,一段好的区间,它的长度是& ...

  2. 51 nod 1495 中国好区间 奇葩卡时间题 700ms 卡O(n*log(n)), 思路:O(n)尺取法

    题目: 这个题目竟然叫中国好区间,要不要脸.欸,不得不说还蛮顺口的,哈哈哈. 首先我们有一个数组a.可以递推得来,O(n)时间复杂度. 定义left(有效区间的左端点),bigger(有效区间中大于等 ...

  3. 51nod1495 中国好区间

    双指针扫一遍 #include<cstdio> #include<cstring> #include<cctype> #include<algorithm&g ...

  4. 51nod 1021 石子归并 - 区间dp(经典)

    题目地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1021 经典区间dp,dp[i][j] 表示将从 i 到 j 堆 ...

  5. 51Nod 1522 上下序列 —— 区间DP

    题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1522 区间DP,从大往小加: 新加入一种数有3种加法:全加左边,全 ...

  6. 51nod 第K大区间2(二分+树状数组)

    题目链接: 第K大区间2 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 160 定义一个长度为奇数的区间的值为其所包含的的元素的中位数.中位数_百度百科 现给出n个数,求将所有长度为 ...

  7. 51NOD 1810 连续区间 分治 区间计数

    1810 连续区间 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 80     区间内所有元素排序后,任意相邻两个元素值差为1的区间称为“连续区间” 如:3,1,2是连续区间,但3, ...

  8. 51nod 1021 石子归并 区间DP

    1021 石子归并  基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  取消关注 N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆 ...

  9. (数论)51NOD 1079 中国剩余定理

    一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K.例如,K % 2 = 1, K % 3 = 2, K % 5 = 3.符合条件的最小的K = 23.   Input 第1行:1个数 ...

随机推荐

  1. Oracle数据类型(4)

    字符类型: CHAR(size):固定长度字符串,最大长度2000 bytes VARCHAR2(size):可变长度的字符串,最大长度4000 bytes,可做索引的最大长度749 NCHAR(si ...

  2. Spring_通过工厂方法配置 Bean

    beans-factory.xml <?xml version="1.0" encoding="UTF-8"?><beans xmlns=&q ...

  3. 获取微信公众号用户的基本信息(UnionID机制)

    获取用户基本信息(UnionID机制) 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的open ...

  4. mysql DATE_FORMAT 年月日时分秒格式化

    SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')

  5. DATASTAGE中ODBC连接的配置

    修改2个配置文件: cat /mistel/IBM/InformationServer/Server/DSEngine/.odbc.ini cat /mistel/IBM/InformationSer ...

  6. 关于阿里云Symantec免费DV证书部署HTTPS

    获取阿里云Symantec免费DV证书: 官方文件说明: 证书文件214188487290026.pem,包含两段内容,请不要删除任何一段内容. 如果是证书系统创建的CSR,还包含:证书私钥文件214 ...

  7. RabbitMQ初体验

    这里官方使用的Pom是4.0.2版本 <dependencies> <dependency> <groupId>com.rabbitmq</groupId&g ...

  8. 关于分析web.xml的一篇博客,写的很详细

    http://blog.csdn.net/believejava/article/details/43229361

  9. VUE 结合 vue-resource 进行ajax操作

    有意思的! 初始化需要ajax获取数据! 搜索商品需要ajax获取数据! 提交数据需要ajax传递数据! 有了 vue-resource ,操作挺方便的. 这是html <form class= ...

  10. MySQL配置管理与安装方法

    数据库的安装: 版本:SQL2008 R2(下载地址为:http://www.accessoft.com/article-show.asp?id=11192) 这里说明一下: NT Authority ...