这题用尺取法是怼不出来的。。。

一开始看到区间和等于k的幂,并且有负数,首先想到将前缀和排序后用尺取法,但因为排序后的前缀和次序是乱的,只适用带绝对值的情况(poj2566),所以无法做。

看了题解后发现其实是个简单的dp

  1. //sum[r]=sum[l]+kk;
  2. //ans+=mp[sum[i]-kk];其实是个dp
  3. #include<bits/stdc++.h>
  4. using namespace std;
  5. #define ll long long
  6. #define maxn 100005
  7.  
  8. int n,a[maxn];
  9. ll ans,kk,k,sum[maxn];
  10.  
  11. void solve(ll kk){
  12. map<ll,int>mp;
  13. for(int i=;i<=n;i++){
  14. mp[sum[i]]++;
  15. ans+=mp[sum[i]-kk];
  16. }
  17. }
  18.  
  19. int main(){
  20. scanf("%d%lld",&n,&k);
  21. sum[]=ans=;
  22. for(int i=;i<=n;i++){
  23. scanf("%d",&a[i]);
  24. sum[i]=sum[i-]+a[i];
  25. }
  26. if(k==){
  27. solve();
  28. printf("%lld\n",ans);
  29. return ;
  30. }
  31. if(k==-){
  32. solve();solve(-);
  33. printf("%lld\n",ans);
  34. return ;
  35. }
  36.  
  37. kk=;
  38. while(kk<=(ll)*n){
  39. solve(kk);
  40. kk*=k;
  41. }
  42. printf("%lld\n",ans);
  43. return ;
  44. }

cf776c的更多相关文章

随机推荐

  1. java代码示例(6-3)

    创建AdministratorTest.java /** * 需求分析:创建管理员对象 * @author chenyanlong * 日期:2017/10/15 */ package com.hp. ...

  2. 8、Python-函数

    定义 def printInfo(): print("人生苦短,我用Python") 调用 def printInfo(): print("人生苦短,我用Python&q ...

  3. Node remains in conflict,svn冲突解决办法

    修改问价svn 提交后其他客户端svn update更新时出现以下问题 Updating '.':Skipped 'Hi3559_Stream' -- Node remains in conflict ...

  4. Linux记录-普通用户下执行sudo xxx 找不到命令解决方案

    chmod 777 /etc/sudoers vim /etc/sudoers 1.可以使用 secure_path 指令修改 sudoers 中默认的 PATH为你想要的路径.这个指令指定当用户执行 ...

  5. MySQL邮件使用情况统计方法

    邮件使用情况统计方法如下: ) AS domain, COUNT(DISTINCT [column_name]) AS mail_count, COUNT([column_name]) AS mail ...

  6. 转--python之正则入门

    原文地址 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法 ...

  7. 〖C语言学习笔记 〗(一) HelloWorld

    前言 本文为c基础入门学习笔记 正文 HelloWorld #include <stdio.h> //标准输出流 int main() //每种语言都有一个执行入口,main方法就是其一 ...

  8. dragula 一个 JavaScript 库,实现了网页上的拖放位置

    如图,把上面红蓝色拖放到下面 使用方法比较简单,如下代码: <link href='dist/dragula.css' rel='stylesheet' type='text/css' /> ...

  9. springboot(八)自定义Filter、自定义Property

    自定义Filter 我们常常在项目中会使用filters用于录调用日志.排除有XSS威胁的字符.执行权限验证等等. Spring Boot自动添加了OrderedCharacterEncodingFi ...

  10. 关于Mac OS虚拟机下共享文件夹的方法

    1.确保左上角苹果标志的旁边是“Finder”: 2.点击"Finder": 3.选择“偏好设置设置”: 4.然后在“通用”标签下勾选“已连接服务器”: OK,搞定!   完成以上 ...