博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
776C Molly's Chemicals --- 前缀和
阅读量:5008 次
发布时间:2019-06-12

本文共 1107 字,大约阅读时间需要 3 分钟。

今天又写了一遍,才差不多看懂这道题,不过stl的选择真的好难,靠经验么?

的核心就是 sum[r]-sum[l] = pow; 因为r在l的后面 所以要先由r来找l,在放入l,即转化为sum[l]=sum[r]-pow;

1 #include
2 #include
3 #include
4 #define mem(a) memset(a,0,sizeof(a)) 5 #define ll long long 6 #define inf 0x3f3f3f3f 7 const int N=1e5+5; 8 const ll MAX=1e14+5; 9 const int mod=1e9+7;10 using namespace std;11 int p,q,y[N],tx,ty;12 ll a[N];13 int n,k,mx;14 set
s;15 int main()16 {17 cin>>n>>k;18 for(int i=1;i<=n;i++)19 {20 cin>>a[i];21 a[i]=a[i]+a[i-1];22 }23 ll num=1,ans=0;24 for(int i=1;i<=60;i++)25 {26 s.insert(num);27 num*=k;28 if(num>MAX) break;29 }30 set
::iterator it;31 map
mp;32 mp[0]=1; //要考虑从第一个数字开始到某一位的和正好是k的次方的可能33 for(int i=1;i<=n;i++)34 {35 for(it=s.begin();it!=s.end();it++)36 {37 ans+=mp[a[i]-*it]; //这里的a[i]-*it就表示r-pow 即为l38 }39 mp[a[i]]++; //a[i]先要作为r来跟pow来判断之前是否存在l,后来才能作为l40 }41 cout<
<
fall in love

 

转载于:https://www.cnblogs.com/XXrll/p/11158600.html

你可能感兴趣的文章
二分查找法(递归和非递归算法)
查看>>
C# DevExpress TreeList指定KeyFieldName后无法显示该列的问题
查看>>
多条记录的同一字段组合成一个字符串 FOR XML PATH
查看>>
APUE学习笔记——10.9 信号发送函数kill、 raise、alarm、pause
查看>>
剑指Offer面试题33(java版):把数组排成最小的数
查看>>
jquery中的 $(function(){ .. }) 函数
查看>>
奇怪的国家
查看>>
Linux nohup命令详解
查看>>
[MSDN] Using the Windows Azure Storage Services
查看>>
计算回文数
查看>>
MVC中如何选取后台数据展示下拉列表项
查看>>
java 代理的概念与作用
查看>>
get_free_page 和其友
查看>>
REVOKE - 删除访问权限
查看>>
解决UICollectionView的Cell复用引起的布局混乱问题
查看>>
校外实习报告(九)
查看>>
android之android.intent.category.DEFAULT的用途和使用
查看>>
CAGradientLayer 透明渐变注意地方(原创)
查看>>
【OpenSource】--Web Bench 1.5
查看>>
python-1:工欲善其事,必先利其器 安装配置Anaconda x32位 更新后,启动不了,解决方案(亲测)...
查看>>