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\)

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

题解-ZeroJudge-c686 高斯符號的更多相关文章

  1. MOSFET 符號解說

    符號 上面這個是 空乏型 的 MOSFET 符號 (有做過修改), 一個是 P channel, 一個是 N channel, 空乏型本身就有通道,所以中間是沒有斷掉的直線, P 代表 + , 有外放 ...

  2. [面試題]C符號的優先順序

    int x = 0; if (x = 0 || x == 0) printf("%dn", x); printf("%dn", x); 參考C的優先表, 其實就 ...

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

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

  4. js-字符串函数

    js字符串函数 JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";v ...

  5. 【bzoj3601】一个人的数论 莫比乌斯反演+高斯消元

    题目描述 题解 莫比乌斯反演+高斯消元 (前方高能:所有题目中给出的幂次d,公式里为了防止混淆,均使用了k代替) #include <cstdio> #include <cstrin ...

  6. 【bzoj2115】[Wc2011] Xor DFS树+高斯消元求线性基

    题目描述 输入 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 Di的无向边. 图 ...

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

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

  8. 同时在windows和linux环境开发时换行符的处理

    Git 的 core.autocrlf 參數默认为true,即每次 checkin 時,Git 會將純文字類型的檔案中的所有 CRLF 字元轉換為 LF,也就是版本庫中的換行符號一律存成 LF:在 c ...

  9. Euler's totient function

    https://en.wikipedia.org/wiki/Euler's_totient_function counts the positive integers up to a given in ...

随机推荐

  1. Java Web之上传文件

    本篇文章你会学到 1. Apache FileUpload组件 2.上传文件保存的路径和名称问题 3.缓存大小和临时目录 4.控制文件上传的格式 先讲一个简单的例子,一个注册页面,有账号,邮箱,和头像 ...

  2. Netty中的三种Reactor(反应堆)

    目录: Reactor(反应堆)和Proactor(前摄器) <I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor> <[转]第8章 前摄器(Proa ...

  3. windows安装mysql示例

    1. 下载mysql安装包,如: mysql-5.6.34-winx64.zip2. 解压安装包到指定目录,如:D盘,即:D:\mysql-5.6.34-winx643. 配置 cd D:\mysql ...

  4. python中的深拷贝和浅拷贝

    python的复制,深拷贝和浅拷贝的区别   在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 一 ...

  5. postfix 邮箱接收限制

    Postfix 限制 QQ 邮箱发送到 我的 test.com 域下邮箱. 1.编辑 main.cf  添加限制: smtpd_sender_restrictions = check_sender_a ...

  6. Lattice

    Lattice是一个无环WFSA,结点可以是hmm状态.hmm(音素).词,每个结点是一段音频在某个时间的对齐 用训练好的声学模型.现成的语言模型和发音字典构建解码网络(wfst),最后将提取的测试集 ...

  7. js判断浏览器类型和版本

    原网址:http://www.cnblogs.com/rubylouvre/archive/2009/10/14/1583362.html 除了另无它法,肯定不使用navigator.userAgen ...

  8. ES6走一波 Generator异步应用

    Generator 函数的异步应用 JS异步编程 callback Promise(解决回调地狱) 事件 发布订阅 generator Thunk函数  屁股函数 两次高阶调用的函数 第一次调用的入参 ...

  9. jQuery动态改变input框的属性

  10. mysql 案例 ~ mysql字符集详解

    一 谈谈mysql常见的字符集问题 二 字符集统一  1 character_set_server  2 character_set_client  3 java/php等连接字符集  4 chara ...