cf-213-div1-A. Matrix
2013-11-20 16:27
330 查看
当时比赛的时候弱爆了,当时只往求数组和上想了,没有想到这个问题的本质。
做法:
题目相当于就是取两节子字符串,然后把这两节子字符串的和相乘等于a。
ns[i]: 子字符串的和等于i的子字符串的个数。
做法:
题目相当于就是取两节子字符串,然后把这两节子字符串的和相乘等于a。
ns[i]: 子字符串的和等于i的子字符串的个数。
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; #define ll __int64 ll num[4040]; ll add[4040]; ll ns[40400]; int main() { ll a; char str[4040]; ll i,j; while(~scanf("%I64d",&a)) { ll sum; sum=0; memset(ns,0,sizeof(ns)); scanf("%s",str); ll len=strlen(str); for(i=0;i<len;i++) { num[i+1]=str[i]-'0'; } for(i=1;i<=len;i++) { add[i]=add[i-1]+num[i]; } ll as; as=0; for(i=1;i<=len;i++) { for(j=0;j<i;j++) { ll nn=add[i]-add[j]; ns[nn]++; as++; } } if(a==0) { ll bs=ns[0]; as=as-bs; sum=as*bs*2+bs*bs; } else { sum=0; for(i=1;i<=40000;i++) { if(a/i>40000)continue; if(a%i==0) { sum+=ns[i]*ns[a/i]; } } } cout<<sum<<endl; } return 0; }
相关文章推荐
- Matrix (round 213 div1)
- cf 236 div2 E Strictly Positive Matrix 矩阵阶乘和图上路径(计数)(可达)(最优值)问题
- [CF #236 (Div. 2) E] Strictly Positive Matrix(强联通分量)
- CF 230 div2
- CF 168(div2)
- CF-Codeforces Round #420 (Div. 2)-E-Okabe and El Psy Kongroo
- CF 297 div2 E. Anya and Cubes (hash+dfs)
- CF-Codeforces Round #392 (Div. 2)-A-Holiday Of Equality
- CF 题目集锦 PART 4 #258 div 2 E
- codeforces#234_div2_B Inna and New Matrix of Candies
- codeforces round #234B(DIV2) B Inna and New Matrix of Candies
- [Codeforces Round #373 DIV1E (CF718E)] Matvey's Birthday
- CF 400B - Inna and New Matrix of Candies
- Codeforces Round #236 (Div. 2) E. Strictly Positive Matrix 强连通
- CF 143 div2 C
- Codeforces Round #234 (Div. 2) B. Inna and New Matrix of Candies
- CF 181 div2 C. Beautiful Numbers
- CF-div2-192-C
- CF AIM Tech Round 3 (Div. 2) D - Recover the String
- 【CF】Codeforces Round #301 (Div. 2) ABCDE