标签:Chtholly int request codeforces long ++ while tle include
这是一道极其容易tle的题目
k<=10e5,p<=10e9
必须注意对时间的控制
附上自己的tle代码。。【捂脸】
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
int m,k;
while(~scanf("%d %d",&k,&m))
{
long long sum=0;
while(k)
{
for(int i=11;;i++)
{
int x=0;
int o=i;
while(o!=0)
{
o/=10;
x++;
}
int len=x;
int temp=0;
if(len%2==0)
for(int j=0;j<len/2;j++)
{
int h=pow(10,j+1);
int y=pow(10,len-1);
if(i/y==i%h)
temp=1;
else
temp=0;
}
else
for(int j=0;j<(len-1)/2;j++)
{
int h=pow(10,j+1);
int y=pow(10,len-1);
if(i/y==i%h)
temp=1;
else
temp=0;
}
if(len%2==0&&temp==1)
{
sum+=i;
k--;
if(k==0) break;
}
}
}
printf("%lld\n",sum%=m);
}
return 0;
}
算法真的不是很好,在test3就爆了qwq。
最后附上ac代码,参考自@—cyh—
#include<stdio.h>
#include<string.h>
#include<math.h>
int k,m;
long long zcy[100005];
void init()
{
int cnt=0;
for(int i=1;i<=100000;i++)
{
long long tmp=i;
int m=i;
while(m){
tmp=tmp*10+m%10;
m/=10;
}
zcy[++cnt]=tmp;
}
}
int main()
{
int m,k;
init();
while(~scanf("%d %d",&k,&m))
{
long long sum=0;
for(int i=1;i<=k;i++){
sum+=zcy[i];
sum%=m;
}
printf("%lld\n",sum%=m);
}
return 0;
}
标签:Chtholly,int,request,codeforces,long,++,while,tle,include 来源: https://blog.csdn.net/KyleChennn/article/details/88833778
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。