Molly's Chemicals CodeForces
来源:互联网 发布:辣鸭头淘宝配方 编辑:程序博客网 时间:2024/06/05 22:14
传送门:CodeForces - 776C
题意:给定n个数,问和等于k的次方的连续区间有多少个。
思路:思维题,假设前缀和数组为sum[],则有sum[i]-sum[j]==power(k)(j<i),power(k)带表k的某个次方数,如果枚举i和j的话复杂度是n^2,这个题肯定是过不了的,我们可以把式子变变形,sum[j]==sum[i]-power(k),可以先把所有的power(k)预处理出来,然后对每个sum[i]扫一遍power(k),判断有几个sum[j]满足上式,ans加上对应的数量就行了。注意这里j要小于i,因此要动态往map里加入sum[i],而不能一次性添加完再遍历。
代码:
#include<bits/stdc++.h>#define ll long long#define pi acos(-1)#define inf 0x3f3f3f3f#define lson l,mid,rt<<1#define rson mid+1,r,rt<<1|1#define rep(i,x,n) for(int i=x;i<n;i++)#define per(i,n,x) for(int i=n;i>=x;i--)using namespace std;typedef pair<int,int>P;const int MAXN=100010;int gcd(int a,int b){return b?gcd(b,a%b):a;}ll power[1010];int cnt=0;void init(ll k){ll t=k;power[cnt++]=1;while(k<1e15){power[cnt++]=k;k*=t;}}map<ll,int>num;int main(){std::ios::sync_with_stdio(0);int n;ll k;cin>>n>>k;if(k!=1&&k!=-1)init(k);else{if(k==1)power[cnt++]=1;elsepower[cnt++]=1,power[cnt++]=-1;}ll ans=0,sum=0,t;num[0]=1;for(int i=0;i<n;i++){cin>>t;sum+=t;num[sum]++;for(int j=0;j<cnt;j++)ans+=num[sum-power[j]];}cout<<ans; return 0;}
0 0
- Molly's Chemicals CodeForces
- Molly's Chemicals CodeForces
- 【codeforces 776C】Molly's Chemicals
- Codeforces Round #400 C. 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 C. Molly's Chemicals (二分)
- Codeforces 776C Molly's Chemicals 前缀和
- codeforces 776C Molly's Chemicals (数学+二分法)
- 【Codeforces 776 C Molly's Chemicals】+ 前缀和 + map
- Codeforces-776C-Molly's Chemicals(前缀和)
- Codeforces Round #400 C. Molly's Chemicals [二分]
- CodeForces 776C Molly's Chemicals (思维+前缀)
- Codeforces Round #400 Molly's Chemicals 前缀和
- 找对象 ssl2637 费用流
- Splay 模版
- C#读取EXCEL 文件同时向文件中写入数据和Excel的Range对象
- 计算机视觉SIFT算法详解
- 组件方式开发 Web App全站-5-开发基本图文组件H5ComponentBase
- Molly's Chemicals CodeForces
- 【HTML+javaScript】滚动-跑马灯
- 关于float
- 爬虫学习记录一
- 攻略-联想 Yoga 900 安装 Arch Linux 系统
- UVa 523
- 十大未来互联网趋势
- 矩形的个数
- 三维模型的normal map