cf776c
这题用尺取法是怼不出来的。。。
一开始看到区间和等于k的幂,并且有负数,首先想到将前缀和排序后用尺取法,但因为排序后的前缀和次序是乱的,只适用带绝对值的情况(poj2566),所以无法做。
看了题解后发现其实是个简单的dp
- //sum[r]=sum[l]+kk;
- //ans+=mp[sum[i]-kk];其实是个dp
- #include<bits/stdc++.h>
- using namespace std;
- #define ll long long
- #define maxn 100005
- int n,a[maxn];
- ll ans,kk,k,sum[maxn];
- void solve(ll kk){
- map<ll,int>mp;
- for(int i=;i<=n;i++){
- mp[sum[i]]++;
- ans+=mp[sum[i]-kk];
- }
- }
- int main(){
- scanf("%d%lld",&n,&k);
- sum[]=ans=;
- for(int i=;i<=n;i++){
- scanf("%d",&a[i]);
- sum[i]=sum[i-]+a[i];
- }
- if(k==){
- solve();
- printf("%lld\n",ans);
- return ;
- }
- if(k==-){
- solve();solve(-);
- printf("%lld\n",ans);
- return ;
- }
- kk=;
- while(kk<=(ll)*n){
- solve(kk);
- kk*=k;
- }
- printf("%lld\n",ans);
- return ;
- }
cf776c的更多相关文章
随机推荐
- java代码示例(6-3)
创建AdministratorTest.java /** * 需求分析:创建管理员对象 * @author chenyanlong * 日期:2017/10/15 */ package com.hp. ...
- 8、Python-函数
定义 def printInfo(): print("人生苦短,我用Python") 调用 def printInfo(): print("人生苦短,我用Python&q ...
- Node remains in conflict,svn冲突解决办法
修改问价svn 提交后其他客户端svn update更新时出现以下问题 Updating '.':Skipped 'Hi3559_Stream' -- Node remains in conflict ...
- Linux记录-普通用户下执行sudo xxx 找不到命令解决方案
chmod 777 /etc/sudoers vim /etc/sudoers 1.可以使用 secure_path 指令修改 sudoers 中默认的 PATH为你想要的路径.这个指令指定当用户执行 ...
- MySQL邮件使用情况统计方法
邮件使用情况统计方法如下: ) AS domain, COUNT(DISTINCT [column_name]) AS mail_count, COUNT([column_name]) AS mail ...
- 转--python之正则入门
原文地址 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法 ...
- 〖C语言学习笔记 〗(一) HelloWorld
前言 本文为c基础入门学习笔记 正文 HelloWorld #include <stdio.h> //标准输出流 int main() //每种语言都有一个执行入口,main方法就是其一 ...
- dragula 一个 JavaScript 库,实现了网页上的拖放位置
如图,把上面红蓝色拖放到下面 使用方法比较简单,如下代码: <link href='dist/dragula.css' rel='stylesheet' type='text/css' /> ...
- springboot(八)自定义Filter、自定义Property
自定义Filter 我们常常在项目中会使用filters用于录调用日志.排除有XSS威胁的字符.执行权限验证等等. Spring Boot自动添加了OrderedCharacterEncodingFi ...
- 关于Mac OS虚拟机下共享文件夹的方法
1.确保左上角苹果标志的旁边是“Finder”: 2.点击"Finder": 3.选择“偏好设置设置”: 4.然后在“通用”标签下勾选“已连接服务器”: OK,搞定! 完成以上 ...