【数学】CSU 1810 Reverse (2016湖南省第十二届大学生计算机程序设计竞赛)
2016-09-05 16:24
639 查看
题目链接:
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1810
题目大意:
一个长度为N的十进制数,R(i,j)表示将第i位到第j位翻转过来后的数字,求
View Code
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1810
题目大意:
一个长度为N的十进制数,R(i,j)表示将第i位到第j位翻转过来后的数字,求
// //by coolxxx //#include<bits/stdc++.h> #include<iostream> #include<algorithm> #include<string> #include<iomanip> #include<map> #include<stack> #include<queue> #include<set> #include<bitset> #include<memory.h> #include<time.h> #include<stdio.h> #include<stdlib.h> #include<string.h> //#include<stdbool.h> #include<math.h> #define min(a,b) ((a)<(b)?(a):(b)) #define max(a,b) ((a)>(b)?(a):(b)) #define abs(a) ((a)>0?(a):(-(a))) #define lowbit(a) (a&(-a)) #define sqr(a) ((a)*(a)) #define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b)) #define mem(a,b) memset(a,b,sizeof(a)) #define eps (1e-8) #define J 10000 #define mod 1000000007 #define MAX 0x7f7f7f7f #define PI 3.14159265358979323 #define N 100004 using namespace std; typedef long long LL; int cas,cass; int n,m,lll,ans; LL aans; LL e ,sum ,l ,r ; LL a; char s ; int main() { #ifndef ONLINE_JUDGE // freopen("1.txt","r",stdin); // freopen("2.txt","w",stdout); #endif int i,j,k; LL x,y; // for(scanf("%d",&cass);cass;cass--) // for(scanf("%d",&cas),cass=1;cass<=cas;cass++) // while(~scanf("%s",s)) while(~scanf("%d",&n)) { aans=0; scanf("%s",s); n=strlen(s); e =1;e[n+1]=0; for(i=n-1;i;i--)e[i]=(e[i+1]*10)%mod; r =1;r[n+1]=0; for(i=n-1;i+i>=n;i--)r[i]=(r[i+1]+e[i]*(n-i+1))%mod; l[1]=e[1];l[0]=0; for(i=2;i+i<=n+2;i++)l[i]=(l[i-1]+e[i]*i)%mod; sum[1]=e[1]; for(i=2;i<=n;i++)sum[i]=sum[i-1]+e[i]; for(i=1;i<=n;i++) { a=s[i-1]-'0'; if(a==0)continue; x=i;y=n-i+1; if(x>y)swap(x,y); aans=(aans+a*l[min(x,y)-1])%mod; aans=(aans+a*r[max(x,y)+1])%mod; aans=(aans+(a*x*(sum[y]-sum[x-1]))%mod)%mod; aans=(aans+(e[i]*a)%mod*(x*(x-1)/2+y*(y-1)/2)%mod)%mod; } printf("%lld\n",aans); } return 0; } /* // // */
View Code
相关文章推荐
- 【数学】CSU 1810 Reverse (2016湖南省第十二届大学生计算机程序设计竞赛)
- 【模拟】【数学】CSU 1803 2016 (2016湖南省第十二届大学生计算机程序设计竞赛)
- 【模拟】【数学】CSU 1803 2016 (2016湖南省第十二届大学生计算机程序设计竞赛)
- 【最短路】【数学】CSU 1806 Toll (2016湖南省第十二届大学生计算机程序设计竞赛)
- 【最短路】【数学】CSU 1806 Toll (2016湖南省第十二届大学生计算机程序设计竞赛)
- CSU 1803 2016 (数学)【2016年湖南省第十二届大学生计算机程序设计竞赛 - A】
- csu 2016年湖南省第十二届大学生计算机程序设计竞赛Problem A 2016
- CSU1810(2016年湖南省第十二届大学生计算机程序设计竞赛 - H)
- 【模拟】CSU 1807 最长上升子序列~ (2016湖南省第十二届大学生计算机程序设计竞赛)
- CSU1803: 2016(湖南省第十二届大学生计算机程序设计竞赛A)
- 【贪心】CSU 1809 Parenthesis (2016湖南省第十二届大学生计算机程序设计竞赛)
- 【树状数组】CSU 1811 Tree Intersection (2016湖南省第十二届大学生计算机程序设计竞赛)
- 【模拟】CSU 1807 最长上升子序列~ (2016湖南省第十二届大学生计算机程序设计竞赛)
- 【树状数组】CSU 1811 Tree Intersection (2016湖南省第十二届大学生计算机程序设计竞赛)
- 【贪心】CSU 1809 Parenthesis (2016湖南省第十二届大学生计算机程序设计竞赛)
- 2016年湖南省第十二届大学生计算机程序设计竞赛 A. 2016(数学)
- 【最短路】【STL】CSU 1808 地铁 (2016湖南省第十二届大学生计算机程序设计竞赛)
- CSU Problem 1803 2016(同余定理)——湖南省第十二届大学生计算机程序设计竞赛
- 【最短路】【STL】CSU 1808 地铁 (2016湖南省第十二届大学生计算机程序设计竞赛)
- 2016年湖南省第十二届大学生计算机程序设计竞赛 A 2016(数学)