Problem

ZeroJudge

Solution

考慮到\(\lfloor \frac {km}n\rfloor\)等同於\(km\)整除\(n\),換種表示方法就是\(km\)減去\(km\)模\(n\)的餘數,再除以\(n\)

那麼原式等價於:

\[\sum_{k=1}^n\frac {km-(km \bmod n)}n\]

這時那根分數線代表的除法是沒有餘數的除法,不受到餘數的幹擾,所以我們將其提出來:

\[\frac {\sum_{k=1}^nkm-(km\bmod n)}n\]

我們再將sigma裏面的東西拆開,得到:

\[\frac {m\sum_{k=1}^nk}n-\frac {\sum_{k=1}^n(km\bmod n)}n\]

左邊的式子我們可以用等比數列求和公式求得\(\frac {m\sum_{k=1}^nk}n=\frac {m(n+1)}2\)

接下來我們考慮右邊的式子,由於求餘操作在求和的裏面,所以不能先求和再整體取餘(前者結果可能大於等於n,後者結果嚴格小於n)

但是我們發現\(k\)的上線是\(n\),正好是我們的模數,即當\(k=n\)時,\(km\bmod n=0\);再考慮到當\(k=0\)時,\(km\bmod n=0\);即\(km\bmod n\)的循環節一定是\(n\)的約數,再根據裴蜀定理,\(km\)在模\(n\)意義下關於\(k\)的循環節爲\(n\)和\(m\)的最大公約數,我們設爲\(d\)(即\(k\)加上\(d\)的倍數,相應的\(km\bmod n\)的值仍然相等)

在上面的條件下,我們發現\(km\bmod n\)的取值集合爲\(\{td|t\in [0,\frac nd)\}\),而且在一個循環節下集合內的每個數都會取到一次

考慮到循環節長度爲\(\frac nd\),而且\(d\)一定爲\(n\)的約數,所以\(k\)取\(1\)到\(n\),可以得到\(d\)個循環節

所以我們只要將一個循環節內的所有數加起來,乘以\(d\)即爲右邊式子的答案,集合內元素和用求和公式,爲\(\frac {(0+n-d)\frac nd}2\),再乘以循環節數量\(d\),除以原來就要除的\(n\),得到\(\frac {n-d}2\)

結合左邊和右邊的式子,最終答案爲\(\frac {m(n+1)}2-\frac {n-d}2=\frac {nm+m-n+d}2\)

式子都這麼短了,代碼就不貼了啦

转载于:https://www.cnblogs.com/penth/p/9568420.html

题解-ZeroJudge-c686 高斯符號相关推荐

  1. android 兼容ios emoji,Emoji表情符號兼容方案(適用ios,android,wp等平台)

    emoji就是表情符號:詞義來自日語(えもじ,e-moji,moji在日語中的含義是字符) 表情符號現已普遍應用於手機短信和網絡聊天軟件. emoji表情符號,在外國的手機短信里面已經是很流行使用的一 ...

  2. identified by 符號

    identified by "符號" 来自 " ITPUB博客 " ,链接:http://blog.itpub.net/11366721/viewspace-6 ...

  3. mysql不能存字母,使用不常見的字母/符號時,MySql數據庫不能正確存儲數據

    I have a simple form that sends (via php) some variables to a mySql database. 我有一個簡單的表單,通過PHP發送一些變量到 ...

  4. PAT甲级1104 Sum of Number Segments:[C++题解]数段之和,测试点2爆double,请用long double!!!

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:本题题意比较简单,但是不能仅仅根据定义来算. 本题思路:统计每个数在多少个区间出现过,也就是这个数需要加多少次.共有n个数,其中第i个 ...

  5. Windows 2000/Xp 錯誤編號詳解

    2000/Xp 顯示藍色當機之STOP詳解 Windows 2000/Xp 顯示藍色當機之STOP詳解 1.停止錯誤編號:0x0000000A 說明文字:IRQL-NOT-LESS-OR-EQUA ...

  6. HDU4870_Rating_双号从零单排_高斯消元求期望

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4870 原题: Rating Time Limit: 10000/5000 MS (Java/Other ...

  7. javaScript 美元符號$

    剛開始接觸jsp,看到jsp文件裏面的javaScript有$這個符號,腦袋大,頭暈!網上一搜,很多說的很籠統,還是不明白!隨著學習的深入,漸漸懂了$的意思! 美元符號$就是普通的一個函數名,只不過因 ...

  8. 【bzoj4184】shallot 线段树+高斯消元动态维护线性基

    题目描述 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏. 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且 让小葱从自己手中的小 ...

  9. rdlc报表显示条码 .

    1.条码的生成: private Bitmap GetCode39(string strSource)         {             int x = 5; //左邊界           ...

最新文章

  1. linux 进程内存分布及 堆分配和栈分配的特点
  2. 字典 update()
  3. oracle sql练习_SQL入门学习
  4. Python笔记——基本数据结构:列表、元组及字典
  5. python实例化类执行顺序_Python实例化class的执行顺序
  6. Xmanager远程桌面教程
  7. [WCF安全系列]绑定、安全模式与客户端凭证类型:NetNamedPipeBinding、NetTcpBinding与NetMsmqBinding...
  8. 面向对象初调用:foolish 电梯
  9. 这首致喷子杠精的“键盘侠之歌” 唱出了多少人的心声
  10. 操作系统知识回顾(5)-内存管理
  11. LINUX下,ffmpeg增加NVIDIA硬件编解码的步骤及解决办法
  12. solrCloud相关的管理命令
  13. VS2015安装教程
  14. 详解数据库锁机制和原理
  15. python 离线安装paramiko_离线安装 Python 2.7, paramiko 和 tornado
  16. 知名学者,全职加盟C9高校!
  17. VMware虚拟网络编辑器用法
  18. js日历多选(在表单中显示)
  19. IDEA报错 Cannot resolve method ‘xxx‘ in ‘xxx‘
  20. 现在还有人说Python 爬虫没用吗?股票数据定向爬虫让你轻松了解股势

热门文章

  1. Eclipse 常用快捷键收集
  2. Opencv--图像颠倒的问题
  3. B+Tree及其创建过程
  4. CV之Harris特征点检测器-兴趣点检测(详解)
  5. python静默打印pdf_前端静默打印实现 html pdf集合
  6. 单频和混频是什么意思_科研| 谐波混频器常见电路小结
  7. php jumppage加载网址,php 分页类 扩展代码
  8. 编辑php程序推荐的软件,PHP程序员都爱用的开发工具推荐
  9. linux内核的裁剪和移植实验,实验5 linux内核的裁剪移植.doc
  10. linux 强制结束p进程的命令,Linux常用命令之性能命令