Codeforces-776C-Molly's Chemicals(前缀和)
来源:互联网 发布:读取股票数据 编辑:程序博客网 时间:2024/04/30 02:32
题目链接:Codeforces-776C-Molly's Chemicals
首先考虑到任意一个区间和都等于两个前缀和之差。
区间和为sum。sum=pre[r]-pre[l] 。
要求sum是k的幂次。我们可以枚举sum。最多有log_2(10^14)中可能的sum。
然后找满足r>l&&sum=pre[r]-pre[l]的个数即可。
#include<bits/stdc++.h>#define mp make_pair#define pr pair<ll,int>#define fi first#define se secondusing namespace std;typedef long long ll;const int maxn=1e5+7;const ll INF=1e14;map<ll,int> p;vector<int> a[maxn];ll pre[maxn];int cnt(ll k,int i){int t=p[k];if(!t)return 0;const vector<int> &v=a[t];return v.end()-upper_bound(v.begin(),v.end(),i);}int main(){int n,m=0;ll k,t;cin>>n>>k;pre[0]=0;for(int i=1;i<=n;i++){cin>>t;pre[i]=pre[i-1]+t;if(!p[pre[i]])p[pre[i]]=++m;a[p[pre[i]]].push_back(i);}ll ans=0;for(int i=0;i<=n;i++){t=1;ans+=cnt(pre[i]+t,i);if(k==1)continue;t*=k;while(abs(t+pre[i])<=INF){ans+=cnt(pre[i]+t,i);if(t==-1)break;t*=k;}}cout<<ans<<endl;return 0;}
0 0
- Codeforces-776C-Molly's Chemicals(前缀和)
- codeforces 776C Molly's Chemicals(前缀和 二分搜索)
- Codeforces 776C Molly's Chemicals 前缀和
- 【Codeforces 776 C Molly's Chemicals】+ 前缀和 + map
- 【Codeforces 776 C. Molly's Chemicals】+ map + 前缀和
- CodeForces 776C Molly's Chemicals (思维+前缀)
- Codeforces Round #400 C. Molly's Chemicals(前缀和)
- CF 776C Molly's Chemicals 前缀和,STL
- 【codeforces 776C】Molly's Chemicals
- 【codeforces 776C】Molly's Chemicals 题解
- codeforces 776c Molly's Chemicals 【思维】
- Codeforces 776C-Molly's Chemicals
- CodeForces 776C Molly's Chemicals
- Codeforces 776C Molly's Chemicals 【数论】
- codeforces 776C Molly's Chemicals (数学+二分法)
- Codeforces Round #400 Molly's Chemicals 前缀和
- Codeforces Round #400 (Div. 1 + Div. 2, combined) C:Molly's Chemicals(前缀+思维)
- Molly's Chemicals 776C
- 数码管飞行模式
- LeetCode 4. Median of Two Sorted Arrays
- leetcode-236-Lowest Common Ancestor of a Binary Tree
- Java复习之二叉树
- 第一周作业:11 container with most water
- Codeforces-776C-Molly's Chemicals(前缀和)
- eclipse部署web项目至本地的tomcat但在webapps中找不到
- 一,Angular自定义指令
- 在linux服务器上面部署java web项目jar包
- PHP学习笔记【三】之《数据库抽象层PDO---PDOStatement对象的使用》
- 关于变量的声明和定义
- PAT甲级1006. Sign In and Sign Out (25)
- 根据数组里面数据的日期进行排序
- centos7 L2TP/ipsec vpn搭建