t
a
g
:
tag :
tag: 数学
传送门 :
题意 : 寻找满足 a i a j a_ia_j aiaj能被 k k k整除的数对数量
思路 :
我们可得公式 :
( a i ∗ T + a j ) % k = 0 (a_i*T + a_j)\%k=0 (ai∗T+aj)%k=0
a [ i ] ∗ T % k = x 1 a[i]*T\%k =x_1 a[i]∗T%k=x1 a [ j ] % k = x 2 a[j]\%k =x_2 a[j]%k=x2 x 1 + x 2 = k x_1+x_2=k x1+x2=k
形如 x 1 + x 2 = k x_1+x_2 =k x1+x2=k我们都可以用 m a p map map解决
不过这次带有一个 T T T
我们可以枚举 a i a_i ai当作尾数,因此我们需要预处理 a i a_i ai的位数
因为 a i < = 1 0 9 a_in>>k; Fup(i,1,n){ cin>>a[i]; ll temp = a[i]; if(temp == 0) cnt[i] = 1; else{ while(temp){ ++cnt[i]; temp/=10; } } mp[cnt[i]][a[i]%k]++; } Fup(i,1,n){ ll x = a[i]; Fup(j,1,10){ x = x*10%k; if(mp[j].find((k-x)%k)!= mp[j].end()){ ans += mp[j][(k-x)%k]; if(cnt[i] == j && a[i]%k == (k-x)%k) --ans; } } } cout
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?