#计数#CF10C Digital Root
题目
定义\(d(x)\)为\(x\)的数位和嵌套,直至\(0\leq d(x)<10\)
询问在\([1\sim n]\)中有多少个三元组\((a,b,c)\)满足
\]
分析
\(d(x)=x \bmod 9\),那么\(d(d(a)\cdot d(b))=a*b\bmod 9=c\bmod 9\)
首先\(ab\neq c\)不容易处理,考虑容斥
也就是用\(a*b\bmod 9=c\bmod 9\)的方案数减去\(a*b=c\)的方案数
首先第一部分可以统计\([1\sim n]\)中余数为\([0\sim 8]\)的个数,那么两重循环就能解决
后面这坨就是相当于对于每个\(c\)求\(c\)的约数个数,因为确定\(a,c\),那么\(b\)也是可以确定的,那也就是求\([1\sim n]\)的约数个数和,也就是$$\sum_{i=1}^n\lfloor\frac{n}{i}\rfloor$$
所以\(O(n)\)解决
代码
#include <cstdio>
#define rr register
using namespace std;
typedef long long lll;
lll n,ans,d[9];
signed main(){
scanf("%lld",&n);
for (rr int i=1;i<=n;++i) ans-=n/i,++d[i%9];
for (rr int i=0;i<9;++i)
for (rr int j=0;j<9;++j)
ans+=d[i]*d[j]*d[i*j%9];
return !printf("%lld",ans);
}
#计数#CF10C Digital Root的更多相关文章
- Digital root(数根)
关于digital root可以参考维基百科,这里给出基本定义和性质. 一.定义 数字根(Digital Root)就是把一个数的各位数字相加,再将所得数的各位数字相加,直到所得数为一位数字为止.而这 ...
- 数字根(digital root)
来源:LeetCode 258 Add Dights Question:Given a non-negative integer num , repeatedly add all its digi ...
- 【HDOJ】4351 Digital root
digital root = n==0 ? 0 : n%9==0 ? 9:n%9;可以简单证明一下n = a0*n^0 + a1*n^1 + ... + ak * n^kn%9 = a0+a1+..+ ...
- Sum of Digits / Digital Root
Sum of Digits / Digital Root In this kata, you must create a digital root function. A digital root i ...
- digital root问题
问题阐述会是这样的: Given a non-negative integer num, repeatedly add all its digits until the result has only ...
- 1. 数字根(Digital Root)
数字根(Digital Root)就是把一个自然数的各位数字相加,再将所得数的各位数字相加,直到所得数为一位数字为止.而这个一位数便是原来数字的数字根.例如: 198的数字根为9(1+9+8=18,1 ...
- 快速切题 sgu118. Digital Root 秦九韶公式
118. Digital Root time limit per test: 0.25 sec. memory limit per test: 4096 KB Let f(n) be a sum of ...
- Codeforces Beta Round #10 C. Digital Root 数学
C. Digital Root 题目连接: http://www.codeforces.com/contest/10/problem/C Description Not long ago Billy ...
- 数学 - SGU 118. Digital Root
Digital Root Problem's Link Mean: 定义f(n)为n各位数字之和,如果n是各位数,则n个数根是f(n),否则为f(n)的数根. 现在给出n个Ai,求出A1*A2*…*A ...
- 构造水题 Codeforces Round #206 (Div. 2) A. Vasya and Digital Root
题目传送门 /* 构造水题:对于0的多个位数的NO,对于位数太大的在后面补0,在9×k的范围内的平均的原则 */ #include <cstdio> #include <algori ...
随机推荐
- 彻底搞懂Java中的Runnable和Thread
写在前面 今天在阅读ThreadPoolExecutor源码的时候觉得有些地方理解起来似是而非,很别扭!最后才猛然发现,原来是我自己的问题:没有真正理解Runnable和Thread的含义! 我之前对 ...
- Celey异步发送邮件时报django.core.exceptions.ImproperlyConfigured的解决办法
原main.py入口文件 #Celery的入口 from celery import Celery #创建Celery实例 生产者 celery_app = Celery('meiduo') #加载配 ...
- portainer docker可视化工具
下载可视化工具 docker pull portainer/portainer 启动portainer --restart=always 只要挂掉了 就自动重启 docker run -d -p 80 ...
- Redisson 框架中的分布式锁
实现分布式锁通常有三种方式:数据库.Redis 和 Zookeeper.我们比较常用的是通过 Redis 和 Zookeeper 实现分布式锁.Redisson 框架中封装了通过 Redis 实现的分 ...
- 代码随想录算法训练营第十三天| 239. 滑动窗口最大值 347.前 K 个高频元素 总结
239. 滑动窗口最大值 (一刷至少需要理解思路) 卡哥建议:之前讲的都是栈的应用,这次该是队列的应用了.本题算比较有难度的,需要自己去构造单调队列,建议先看视频来理解. 题目链接/文章讲解/视频讲解 ...
- Java 演示线程的死锁问题
1 package bytezero.deadlock; 2 3 /** 4 * 演示线程的死锁问题: 5 * 6 * 1.死锁的理解:不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃 7 ...
- 俄罗斯套娃 (Matryoshka) 嵌入模型概述
在这篇博客中,我们将向你介绍俄罗斯套娃嵌入的概念,并解释为什么它们很有用.我们将讨论这些模型在理论上是如何训练的,以及你如何使用 Sentence Transformers 来训练它们. 除此之外,我 ...
- redis同步锁的真实应用场景
一.问题由来 现在正在做的小程序后台中,有一个功能叫做高光时刻,在操作高光时刻的时候,可能会有多个用户来同时想操作这个功能,可是在同一时间只能 有一个用户能够操作.刚开始做的时候,自己的做法是在red ...
- WPF之控件布局
目录 控件概述 WPF的内容模型 各类内容模型详解 ContentControl族 HeaderedContentControl族 ItemsControl族 ListBox:在XAML中添加数据 L ...
- Python 的结构体函数 struct pack, unpack 用法详解
一 python 结构体 * python struct 模块可以用来在存储二进制文件,广泛用在文件系统,网络连接领域. * 它可以用在c语言和python语言之间的数据的格式转换. 二 Pyth ...