您当前的位置: 首页 > 

先求一个导

暂无认证

  • 5浏览

    0关注

    290博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

abc238 C(偷偷用__int128做题是吧)

先求一个导 发布时间:2022-02-06 21:11:55 ,浏览量:5

题目 题意: 求Sigma f(i) , f(x): >T; // read(T); while(T--) { solve(); } return 0; } // 100000000000000000 // 900000000000000000 // 999999999999999999

// Problem: C - digitnum
// Contest: AtCoder - Monoxer Programming Contest 2022(AtCoder Beginner Contest 238)
// URL: https://atcoder.jp/contests/abc238/tasks/abc238_c
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define OldTomato ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr)
#define fir(i,a,b) for(int i=a;i= 1;
	}
	return res;
}
int ni(int x)
{
	return qpow(x,mod-2);
}
int count(int x)
{
	int res = 0;
	while(x)
	{
		res ++ ;
		x /= 10;
	}
	return res;
}
int cal(int x)
{
	return (x - pow(10,count(x)-1) + 1);
}
int fun(int x)
{
	int cnt = count(x) - 1;
	int res = 0;
	for(int i = 9;cnt--;i = i * 10)
	{
		res = (res + (i % mod) * ((i+1)%mod ) % mod * ni(2) %mod )%mod;
	}
	return res;
}
void solve()
{
   ll x; read(x);
   ll ans = fun(x);
   ll le = pow(10,count(x)-1);
   x = x - le + 1;
   ans = (ans + (x % mod) * ((x+1)%mod) % mod * ni(2) %mod ) % mod;
   ans = (ans + mod) % mod;
   write(ans);
}
signed main(void)
{  
   T = 1;
   // OldTomato; cin>>T;
   // read(T);
   while(T--)
   {
   	 solve();
   }
   return 0;
}
// 100000000000000000
// 900000000000000000
// 999999999999999999

关注
打赏
1662037414
查看更多评论
立即登录/注册

微信扫码登录

0.0508s