题解-ZeroJudge-c686 高斯符號
Problem
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\)
式子都這麼短了,代碼就不貼了啦
题解-ZeroJudge-c686 高斯符號的更多相关文章
- MOSFET 符號解說
符號 上面這個是 空乏型 的 MOSFET 符號 (有做過修改), 一個是 P channel, 一個是 N channel, 空乏型本身就有通道,所以中間是沒有斷掉的直線, P 代表 + , 有外放 ...
- [面試題]C符號的優先順序
int x = 0; if (x = 0 || x == 0) printf("%dn", x); printf("%dn", x); 參考C的優先表, 其實就 ...
- HDU4870_Rating_双号从零单排_高斯消元求期望
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4870 原题: Rating Time Limit: 10000/5000 MS (Java/Other ...
- js-字符串函数
js字符串函数 JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";v ...
- 【bzoj3601】一个人的数论 莫比乌斯反演+高斯消元
题目描述 题解 莫比乌斯反演+高斯消元 (前方高能:所有题目中给出的幂次d,公式里为了防止混淆,均使用了k代替) #include <cstdio> #include <cstrin ...
- 【bzoj2115】[Wc2011] Xor DFS树+高斯消元求线性基
题目描述 输入 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 Di的无向边. 图 ...
- 【bzoj4184】shallot 线段树+高斯消元动态维护线性基
题目描述 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏. 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且 让小葱从自己手中的小 ...
- 同时在windows和linux环境开发时换行符的处理
Git 的 core.autocrlf 參數默认为true,即每次 checkin 時,Git 會將純文字類型的檔案中的所有 CRLF 字元轉換為 LF,也就是版本庫中的換行符號一律存成 LF:在 c ...
- Euler's totient function
https://en.wikipedia.org/wiki/Euler's_totient_function counts the positive integers up to a given in ...
随机推荐
- MyBatis-Cache
一.一级缓存 /** * 一级缓存(本地缓存):SqlSession 级别.一级缓存是默认开启的,为 SqlSession 级别的一个Map * 与数据库同一次会话期间查询到的数据会放在本地缓存中,以 ...
- laravel 5.4 fopen(): Filename cannot be empty
1.出错的报错信息(我在用laravel5.4文件上传时候出错的) laravel 5.4 fopen(): Filename cannot be empty 2.解决的方法 在php.ini中修改临 ...
- C# 一个特别不错的http请求类
using System; using System.Collections; using System.Collections.Generic; using System.Collections.S ...
- Golang入门教程(十六)Goridge -高性能的 PHP-to-Golang RPC编解码器库
什么是 RPC 框架? RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些传输协议的存在 ...
- 服务器部署全程记录(centos6.5)
1.安装nginx 上传安装包:put E:\yz_index\installPackage\nginx-1.14.0.tar.gz 解压:tar zxvf nginx-1.14.0.tar.gz 切 ...
- Javaweb学习笔记——(十一)——————JSP、会话跟踪、Cookie、HttpSession
JSP1.什么是JSP jsp即java server pages,它是Javaweb的动态资源. jsp = html + java脚本 + jsp动态标签(包含EL表达式)2.JSP中java脚本 ...
- VM4061 layui.js:2 Layui hint: form is not a valid module
报错:VM4061 layui.js:2 Layui hint: form is not a valid module 解决办法:当你遇到类似这样报错,说某某某不是一个有效的模块时,不防在layui. ...
- 调用kaldi的模型进行解码
At the moment Kaldi is targeted more at people who are building ASR systems than those who just want ...
- flask处理cookie
一 什么是cookie 什么是cookie?如果单单从数据结构的角度来说,它可以被理解成用来保存数据的一个dictionary,由一组组键值对组成.如果从作用上来说,我们知道Http协议是一种无状态的 ...
- git修改历史记录
1.git stash2.git rebase 45c2d5c --interactive 3.git stash pop4.git add5.git commit --amend 确认编 ...