正解:数论

解题报告:

行吧那就让我一点点推出来趴QAQ

先放张图quq这是我唯一一个找到了的有靠谱讲解的题解了QAQ(虽然我太弱了还是没看懂QAQ

首先最前面还是,能理解的

就是你考虑k进制的进位,因为进位之后我们会把所有再加起来,就相当于把一个k变成了一个1 这里是可以理解的

然后继续,尝试理解?

umm首先,如果B=0,显然的一点就是只有组成它的数都是0才行(因为相当于是所有数位之和=0那只能是全0咯.特判一波先特殊处理掉

然后,然后实在理解不了了太蠢了,,,,不行我决定再去找一波博客QAQ

因为每个x的最终价值都是1<=val<k的.

那么 知道[i,j-1]的价值x,可以容易知道[i+1,j]的价值y.

val=x+a[j] val最大为2*k-2 若val>=k 则进位,十位为1,个位为val-k.最后结果:1+val-k<=k-1.

首先想到 直接枚举计算O(n2) TLE.

(a[L]+a[L+1]+..a[R]) 每次若有两个数相加超过k,则会用一个1和余k部分来代替.

就是说 x→x%k+1 就可以转化成,x%(k-1) 唯一就是如果余数是0其实要变成k-1嘛

那么d[L,R]等价于(a[L]+a[L+1]+...+a[R]) %(k-1) 的值.

现在求出前缀p[i]%(k-1)的值.

枚举右端点r,要想知道有多少个左端点L,满足d[L,R]==b.

那么 b ≡d[r]-d[L-1] (mod k-1) .

变形得 d[L-1] ≡ d[r]-b (mod k-1)

然后我就开个数组 下标表示mod k-1的余数 数值表示有几个,每扫一个加一下然后把我扫到的这个也放进数组,over

哇这么整理一下还是感觉,勉强能理解的欸!

放,代码

#include <bits/stdc++.h>
using namespace std;
#define ll long long

;
ll k,b,n,pre[N],res=,z=,tt=;
map<ll,ll> cnt;

inline ll read()
{
    ;;
    '))ch=getchar();
    ;
    )+(x<<)+(ch^'),ch=getchar();
    return y?x:-x;
}

int main()
{
    k=read();b=read();n=read();
    ;i<=n;i++)
    {
        ll t=read();
        pre[i]=(pre[i-]+t)%(k-);
        t?tt=:z+=++tt;
    }
    );
    cnt[]++;
    ;i<=n;i++)
    {
        ll val=(pre[i]-b+k-)%(k-);
        res+=cnt[val];
        cnt[pre[i]]++;
    }
    ) res-=z;
    ;
}

我真的觉得,这题好难啊,,,真的只是进阶嘛,,,哭了TT

牛客练习赛16D K进制 数论(待理解QAQ)的更多相关文章

  1. 陕西师范大学第七届程序设计竞赛网络同步赛 F WWX的礼物【数学/k进制下x^n的位数/log】

    链接:https://www.nowcoder.com/acm/contest/121/F来源:牛客网 题目描述 WWX的女朋友送给了他一个礼物,可是礼物却被一把K进制密码锁锁住了.在礼物盒上还有一张 ...

  2. K进制数

    题目描述 考虑包含N位数字的K-进制数. 定义一个数有效, 如果其K-进制表示不包含两连续的0. 考虑包含N位数字的K-进制数. 定义一个数有效, 如果其K-进制表示不包含两连续的0. 例: 1010 ...

  3. 牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 逻辑,博弈 B

    牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 https://ac.nowcoder.com/acm/contest/218/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 2621 ...

  4. 最小生成树--牛客练习赛43-C

    牛客练习赛43-C 链接: https://ac.nowcoder.com/acm/contest/548/C 来源:牛客网 题目描述 ​ 立华奏是一个刚刚开始学习 OI 的萌新. 最近,实力强大的 ...

  5. [堆+贪心]牛客练习赛40-B

    传送门:牛客练习赛40 题面: 小A手头有 n 份任务,他可以以任意顺序完成这些任务,只有完成当前的任务后,他才能做下一个任务 第 i 个任务需要花费  x_i 的时间,同时完成第 i 个任务的时间不 ...

  6. 牛客练习赛50 D tokitsukaze and Event (最短路,思维)

    牛客练习赛50 D tokitsukaze and Event 链接:https://ac.nowcoder.com/acm/contest/1080/D来源:牛客网 时间限制:C/C++ 1秒,其他 ...

  7. 牛客练习赛48 C 小w的糖果 (数学,多项式,差分)

    牛客练习赛48 C 小w的糖果 (数学,多项式) 链接:https://ac.nowcoder.com/acm/contest/923/C来源:牛客网 题目描述 小w和他的两位队友teito.toki ...

  8. 求x!在k进制下后缀零的个数(洛谷月赛T1)

    求x!在k进制下后缀和的个数 20分:     求十进制下的x!后缀和的个数 40分: 高精求阶乘,直接模拟过程 (我不管反正我不打,本蒟蒻最讨厌高精了) 60分     利用一个定理(网上有求x!在 ...

  9. 牛客练习赛64 D【容斥+背包】

    牛客练习赛64 D.宝石装箱 Description \(n\)颗宝石装进\(n\)个箱子使得每个箱子中都有一颗宝石.第\(i\)颗宝石不能装入第\(a_i\)个箱子.求合法的装箱方案对\(99824 ...

随机推荐

  1. unity2017.4.0f1使用AS3.0的AndroidSDK遇到的问题

    原因: Unity 在编译时会调用 Android SDK tools 中的 android 命令,而在新版本的 Android SDK tools 中,android这个命令已经废弃了,导致 Uni ...

  2. 顶点纹理shader

    Shader "Custom/VertDisplace" { Properties { _MainTex ("Base (RGB)", 2D) = " ...

  3. Excel 导入遍历

    package com.founder.ec.cms.service.impl; import com.founder.ec.cms.service.ProductListImportService; ...

  4. 在MVC中实现和网站不同服务器的批量文件下载以及NPOI下载数据到Excel的简单学习

    嘿嘿,我来啦,最近忙啦几天,使用MVC把应该实现的一些功能实现了,说起来做项目,实属感觉蛮好的,即可以学习新的东西,又可以增加自己之前知道的知识的巩固,不得不说是双丰收啊,其实这周来就开始面对下载在挣 ...

  5. C++ template —— 深入模板基础(二)

    上一篇C++ template —— 模板基础(一)讲解了有关C++模板的大多数概念,日常C++程序设计中所遇到的很多问题,都可以从这部分教程得到解答.本篇中我们深入语言特性.------------ ...

  6. PON系统基础知识简介

    一  PON基础知识 1.1 PON技术概念 PON(Passive Optical Network)即无源光网络,一种基于点到多点(P2MP)拓朴的技术.“无源”指ODN(光分配网络)不含有任何电子 ...

  7. hdu_1086 You can Solve a Geometry Problem too(计算几何)

    http://acm.hdu.edu.cn/showproblem.php?pid=1086 分析:简单计算几何题,相交判断直接用模板即可. 思路:将第k条直线与前面k-1条直线进行相交判断,因为题目 ...

  8. Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版开源

    时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了.这次真的打死也不再改版了.旧版本1:http://www.qtcn.org/bbs/ ...

  9. 【Spring Boot&& Spring Cloud系列】单点登录SSO之OAuth2官方开发文档翻译

    Introduction:介绍 This is the user guide for the support for OAuth 2.0. For OAuth 1.0, everything is d ...

  10. React组件设计(转)

    React组件设计 组件分类 展示组件和容器组件 展示组件 容器组件 关注事物的展示 关注事物如何工作 可能包含展示和容器组件,并且一般会有DOM标签和css样式 可能包含展示和容器组件,并且不会有D ...