ACM数论模板
- 格式:doc
- 大小:145.00 KB
- 文档页数:14
吉林大学ACM国际大学生程序设计竞赛简介竞赛宗旨ACM国际大学生程序设计竞赛是由位于美国的计算机协会组织的年度性竞赛,是全球大学生计算机程序能力竞赛活动中最有影响的一项赛事,它已成为国内外各高校展示实力、加强交流、相互促进、共同发展的广阔舞台。
ACM/ICPC作为具有国际权威性和影响力的国际大学生程序设计竞赛,已成为衡量大学生程序设计能力和学校计算机学科水平的重要标准之一。
我校于2002、2003、2004、2005年参加亚洲预赛,分别在这八个赛区中取得学校排名第16、第17、第12、第9,第7、第18,第21,第17,共获得银奖2块、铜奖6块,竞赛成绩在不断稳步提高。
竞赛支持网站:(校外)(校内)竞赛联系地点:前卫南校区萃文楼501竞赛交流平台:吉林大学BBS 牡丹园-电脑技术-算法版/cgi-bin/bbsdoc?board=Algorithm参赛对象1、凡吉林大学在校本专科生均可报名参加。
年级、专业不限。
鼓励低年级同学参加。
2、比赛学生以个人身份参加,每人独立参赛。
3、参赛同学应在竞赛网站上注册参加热身赛,在报名时提供个人资料。
4、参赛同学应保证自己身份等资料的真实性。
5、以往学校代表队同学成绩不影响其他同学排名及奖励。
竞赛细则1、选手在参赛时携带个人证件。
2、竞赛以上机为比赛方式。
3、竞赛中至少命题6题,至多命题10题,上机比赛时间为5个小时,中间不休息。
4、参赛选手可以携带诸如书籍、字典、手册、程序清单等文字性参考资料。
5、参赛选手不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的磁盘或计算器)。
6、参赛选手不能携带任何类型的通讯工具,包括无线电接收器、移动电话等。
7、选手未解决全部题目不得提前离场8、竞赛的预定时间为5小时,但当竞赛进行一定时间后,竞赛裁判可以因为出现不可预见的事件而调整比赛时间长度,一旦比赛时间长度发生改变,将会以及时并且统一的方式通告所有参赛选手。
9、当参赛选手出现妨碍比赛正常进行的行为时,诸如擅自移动赛场中的设备,未经授权修改比赛软硬件,干扰他人比赛等,都将会被竞赛裁判取消参赛资格。
ACM竞赛简介:ACM国际大学生程序设计竞赛是由国际计算机界历史悠久、颇具权威性的组织ACM学会(美国计算机协会)主办,是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛,其目的旨在使大学生运用计算机来充分展示自已分析问题和解决问题的能力。
(网上有更详细的介绍,这里只做个简介)ACM竞赛特点:竞赛中一般有10道题,比赛时间为5个小时,每支参赛队伍由3名选手组成,可以携带诸如书、手册、程序清单等参考资料,对每一道题编完代码后,将代码提交裁判,每一次提交会被判为正确或者错误,判决结果会及时通知参赛队伍。
在规定时间内提交并通过题目数越多排名越靠前。
(时间5小时,题目8~12题,同题目数按所用时间多少排名)ACM题目限制:●时间限制(即程序运行所用的时间)●空间限制(即程序运行时所开内存的多少)ACM基本要求⏹英语⏹分析理解能力⏹算法⏹编码⏹合作ACM竞赛意义学习编程,并不是为了参加竞赛,ACM竞赛对于我们的意义更多的还是专业能力的提高。
在备战过程中,无论是对自己的编程能力,还是团队合作解决问题的能力,都是一种很好的锻炼机会。
一般而言,每个在做ACM竞赛的学生,他们的编程能力会比较出色。
与数学建模相比,由于ACM 竞赛针对的是我们学计算机的同学,所以没有数学建模的比赛规模,但是依旧是国际上最有影响力的大学生竞赛之一。
ACM竞赛入门现在有很多大学有专门为ACM 竞赛开设自己的测评网站,上面有很多贴近竞赛的题目。
比如说北大poj,浙大zoj等等。
所以选择一个自己专门练习的网站,开始自己在上面做题,和同学交流经验。
等到回到本部,要是有了一定的实力和基础。
⏹在poj上做20左右道简单的题目,熟悉ACM题目的基本特点。
(这里列出几道相对较简单的题目的题号:1000,1003,1004,1046,1207,1226,1504,1552)⏹熟悉了poj之后,按照poj的题目分类,买一本或借一本算法的书(暨大ACM校队的基本都用机械工程出版社的《算法导论》)开始学习,然后做算法的专题,一般每个专题做10~30道。
算法竞赛入门经典训练指南题单全文共四篇示例,供读者参考第一篇示例:算法竞赛作为计算机科学领域中的重要领域之一,一直备受关注和推崇。
参加算法竞赛可以帮助我们提高编程能力、思维灵活性和解决问题的能力。
而且,通过算法竞赛,我们还可以结识来自各个国家的优秀程序员,开阔自己的视野,提高自己的竞争力。
而要在算法竞赛中取得好成绩,就需要有一定的训练和积累。
本文将为大家推荐一些经典的算法竞赛训练题单,希望能帮助大家快速入门和提升自己的算法竞赛水平。
1. ACM-ICPC题单ACM国际大学生程序设计竞赛(ACM-ICPC)是全球规模最大、最具影响的大学生程序设计竞赛,被誉为程序设计界的“奥林匹克”。
ACM-ICPC赛题难度较高,对参赛者的编程能力、算法设计能力和团队协作能力等方面都有严格的要求。
参加ACM-ICPC的同学们需要有一定的训练和备战。
以下是一些经典的ACM-ICPC训练题单,推荐给大家:1、CodeforcesCodeforces是一个国际知名的在线编程比赛和训练平台,其比赛难度较高,同时也有很大的影响力。
在Codeforces上,你可以找到各种难度的题目,从入门级到专家级都有覆盖。
推荐大家在Codeforces 上刷题,提高自己的编程能力和解题能力。
3、洛谷洛谷是国内著名的在线题库和训练平台,里面汇集了大量的ACM 竞赛题目和OJ题目,适合广大程序员练习和提升编程能力。
洛谷上的题目分类清晰,难度适中,非常适合新手入门和提高。
2. Google Code Jam题单Google Code Jam是由谷歌主办的一项全球性的编程大赛,是程序员们展示自己编程才华的绝佳舞台。
Google Code Jam的题目设计独特,难度适中,涵盖了很多经典的算法问题,非常适合有一定编程基础的程序员练习和挑战。
以下是一些推荐的Google Code Jam题单:LeetCode是一个在线的编程练习平台,里面包含了大量的算法和数据结构问题,适合练习和提升自己的编程能力。
杭电ACM试题分类枚举1002 10041013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 10391042 10471048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 10841088 11061107 1113 1117 1119 1128 1129 1144 1148 1157 1161 1170 1172 117711971200 1201 1202 1205 1209 1212(大数取模)1216 (链表)1218 1219 12251228 12291230 1234 1235 1236 1237 1239 1250 1256 1259 1262 1263 1265 12661276 1279 1282 1283 1287 1296 1302 1303 1304 1305 1306 1309 1311 1314搜索,递归求解1010 1016 1026 1043(双广)1044 (BFS+DFS) 1045 1067 1072 1104 1175 1180 11951208 1226 1238 1240 1241 1242 1258 1271 1312 1317动态规划1003 1024 1025 1028 1051 1058 1059 1069 1074 1078 1080 1081 1085 1087 1114 1158 1159 1160 1171 1176 1181 1203 1224 1227 1231 1244 1248 1253 1254 1283 1300数学,递推,规律1005 1006 1012 1014 1018 1019 1021 1023 1027 1030 1032 1038 1041 1046 1059 1060 1061 1065 1066 1071(微积分)1097 1098 1099 1100 1108 1110 1112 1124 1130 1131 1132 1134 1141 1143 1152 1155(物理题)1163 1165 1178 1194 1196(lowbit) 1210 1214 1200 1221 1223 1249 1261 1267 1273 1290 1291 1292 1294 1297 1313 1316数论1164 1211 1215 1222 1286 1299计算几何1086 1115 1147贪心1009 1052 1055 1257 并查集11981213 1232 1272线段树,离散化11991255图论最短路相关的问题1142 1162 1217 1301二分图问题1054 1068 1150 1151 1281其他1053 (huffman) 1102(MST) 1116 (欧拉回路)1233(MST) 1269 (强连通)数据结构1103 (堆+模拟)1166 (数状树组)1247 1251 1285 (Topol) 1298以下是详细介绍1002简单的大数1003 DP经典问题,最大连续子段和1004简单题1005找规律(循环点)1007经典问题,最近点对问题,用分治1008简单题1010搜索题,剪枝很关1009贪心1012简单题1013简单题(有个小陷阱)1014简单题1015可以看作搜索题吧1016经典的搜索1017简单数学题1018简单数学题1019简单数学题1020简单的字符串处理找规律的数学题数据结构的题(栈的应用)特殊的数(Catalan Number)经典DP,最大M 子段和经典DP,最长递增子序列(要用NLogN的方法过)搜索数学题(或用STL)经典问题,整数拆分,用母函数做简单题(一般方法容易超时)简单题,可用模拟过简单题简单题模拟题Candy Sharing Game模拟题简单题简单题,不是一般的简单简单题字符串处理简单题,排序简单题,用大数大数经典搜索题,八数码问题稍微有点麻烦的搜索题搜索题,可用匹配做简单题简单的大数简单字符串处理简单题贪心经典贪心,也可以用DP贪心贪心,关于Huffman编码二分匹配二分匹配简单题模拟题经典问题,丑数,DP经典问题,可以用母函数或DP (不针对题目优化都会超时)数学题数学题简单字符串处理模拟大数简单题1065简单题1066数学题,找规律1068经典二分匹配1069经典DP1070简单题1071简单数学题1072搜索1073字符串处理1074 DP1075字典树1076简单题1078DP1079博弈(DP)1080DP 1081经典DP1082简单题1083二分匹配1084简单题1085母函数1086简单几何题1087简单DP1088字符串处理1089~1096 (练习输入输出的8个题目)1097简单数学题1098数学题,注意找规律1099数学HrH1500DP1501DP1502DP or记忆化1503DP1504模拟1505DP1506DP15072分匹配1508记忆化容易点1509模拟1510 DP1511搜索可以过1512左偏树1513DP1514DP1515DFS1516DP1517博奕搜索DP (不确定)树状DP 数学题稳定婚姻DP 博弈博弈Maxflow博弈2分匹配简单题最大团差分约束Maxflow入门题KM Or > 小费用流差分约束差分约束博弈模拟加置换群的理论CODE可以短些,其实没必要。
ACM竞赛知识点简介ACM竞赛是指由国际大学生程序设计竞赛(ACM-ICPC)组织的一系列编程比赛。
ACM竞赛旨在培养学生的计算机科学和编程能力,提高解决实际问题的能力和团队合作精神。
本文将介绍ACM竞赛的基本知识点和技巧,帮助读者更好地了解和参与这一竞赛。
知识点1. 数据结构在ACM竞赛中,数据结构是解决问题的关键。
以下是一些常用的数据结构:•数组:用于存储一组相同类型的数据。
•链表:用于存储和操作具有相同数据类型的元素。
•栈:一种后进先出(LIFO)的数据结构。
•队列:一种先进先出(FIFO)的数据结构。
•树:一种非线性的数据结构,由节点和边组成。
•图:一种由节点和边组成的数据结构,用于表示各种关系。
2. 算法ACM竞赛中常用的算法包括:•排序算法:如快速排序、归并排序、堆排序等,用于将数据按照一定的规则进行排序。
•查找算法:如二分查找、哈希表等,用于在数据中查找指定的元素。
•图算法:如深度优先搜索(DFS)、广度优先搜索(BFS)、最短路径算法等,用于解决图相关的问题。
•动态规划:一种将复杂问题分解为简单子问题的方法,用于解决多阶段决策问题。
•贪心算法:一种每一步都选择当前最优解的方法,用于解决优化问题。
3. 数学数学在ACM竞赛中扮演着重要的角色。
以下是一些常用的数学知识点:•组合数学:包括排列组合、二项式定理、卡特兰数等,用于计算对象的排列和组合方式。
•数论:包括素数、最大公约数、最小公倍数等,用于解决与整数相关的问题。
•概率与统计:包括概率分布、统计推断等,用于分析和预测事件发生的概率。
•矩阵与线性代数:用于解决与矩阵和线性方程组相关的问题。
4. 字符串处理在ACM竞赛中,字符串处理是常见的问题之一。
以下是一些常用的字符串处理技巧:•字符串匹配:如KMP算法、Boyer-Moore算法等,用于在一个字符串中查找另一个字符串。
•字符串排序:如字典序排序、后缀数组等,用于对字符串进行排序。
ACM题分类汇总2009年05月11日星期一 13:40原帖:一些图论、网络流入门题总结、汇总/zfy0701/blog/item/b8332b5c7b2dd545fbf2c052.html搜索题目推荐及解题报告/zfy0701/blog/item/c6e216ed18a9d24a78f05589.html字符串题目推荐及解题报告/zfy0701/blog/item/440e923e1bc4183870cf6c89.html ------------------------最短路问题此类问题类型不多,变形较少POJ 2449 Remmarguts' Date(中等)/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:/JudgeOnline/showcontest?contest_id=1144该题亦放在搜索推荐题中POJ 3013 - Big Christmas Tree(基础)/JudgeOnline/problem?id=3013题意:最简单最短路,但此题要过,需要较好的程序速度和,还要注意精度解法:DijkstraPOJ 3463 - Sightseeing(中等)/JudgeOnline/problem?id=3463题意:最短路和比最短路大1的路的数量解法:需要真正理解dijkstraPOJ 3613 - Cow Relays(较难)/JudgeOnline/problem?id=3613题意:求经过N条边的最短路解法:floyd + 倍增,贪心POJ 3621 - Sightseeing Cows(中等)/JudgeOnline/problem?id=3621题意:求一个环路,欢乐值 / 总路径最大解法:参数搜索 + 最短路(ms 原始的bellman tle, 用spfa才过)POJ 3635 - full tank?(中等)/JudgeOnline/problem?id=3635题意:最短路变形解法:广搜相关:/hnu_reason/blog/item/086e3dccfc8cb21600e9286b.htm l生成树问题基本的生成树就不放上来了POJ 1639 - Picnic Planning(较难)/JudgeOnline/problem?id=1639题意:顶点度数有限制的最小生成树解法:贪心 + prim/kruskalPOJ 1679 - The Unique MST(基础)/JudgeOnline/problem?id=1679题意:判断MST是否唯一解法:prim就行,不过还是易错的题POJ 2728 - Desert King(中等)/JudgeOnline/problem?id=2728题意:所谓最优比率生成树解法:参数搜索 + primPOJ 3164 - Command Network(难)/JudgeOnline/problem?id=3164题意:最小树形图解法:刘朱算法,这个考到的可能性比较小吧?POJ 3522 - Slim Span(基础)/JudgeOnline/problem?id=3522题意:求一颗生成树,让最大边最小边差值最小解法:kruskal活用连通性,度数,拓扑问题此类问题主要牵扯到DFS,缩点等技巧POJ 1236 - Network of Schools(基础)/JudgeOnline/problem?id=1236题意:问添加多少边可成为完全连通图解法:缩点,看度数POJ 1659 - Frogs' Neighborhood(基础)/JudgeOnline/problem?id=1659题意:根据度序列构造图解法:贪心,详细证明参见havel定理POJ 2553 - The Bottom of a Graph(基础)/JudgeOnline/problem?id=2553POJ 2186 - Popular Cows(基础)/JudgeOnline/problem?id=2186题意:强连通分量缩点图出度为0的点POJ 2762 - Going from u to v or from v to u?(中等)/JudgeOnline/problem?id=2762题意:单向连通图判定解法:缩点 + dp找最长链POJ 2914 - Minimum Cut(难)/JudgeOnline/problem?id=2914题意:无向图最小割解法:Stoer-Wagner算法,用网络流加枚举判定会挂POJ 2942 - Knights of the Round Table(难)/JudgeOnline/problem?id=2942题意:求双联通分量(或称块)中是否含奇圈解法:求出双连通分量后做黑白染色进行二分图图判定相关:/zfy0701/blog/item/57ada7ed104ce9d2b31cb104.htmlPOJ 3177 - Redundant Paths(中等)/JudgeOnline/problem?id=3177POJ 3352 - Road Construction(中等)/JudgeOnline/problem?id=3352题意:添加多少条边可成为双向连通图解法:把割边分开的不同分量缩点构树,看入度建议对比下1236,有向图添加多少条边变成强连通图POJ 3249 - Test for Job(基础)/JudgeOnline/problem?id=3249解法:bfs / dfs + dpPOJ 3592 - Instantaneous Transference(基础)/JudgeOnline/problem?id=3592解法:缩点,最长路,少人做的水题,注意细节POJ 3687 - Labeling Balls(中等)/JudgeOnline/problem?id=3687解法:拓扑排序POJ 3694 - Network(中等)/JudgeOnline/problem?id=3694解法:双连通分量+并查集2-SAT问题此类问题理解合取式的含义就不难POJ 2723 - Get Luffy Out(中等)/JudgeOnline/problem?id=2723 POJ 2749 - Building roads(较难)/JudgeOnline/problem?id=2749解法:二分 + 2-SAT判定POJ 3207 - Ikki's Story IV - Panda's Trick(基础) /JudgeOnline/problem?id=3207 解法:简单的2-sat,不过其他方法更快POJ 3648- Wedding(中等)/JudgeOnline/problem?id=3648解法:用2-sat做会比较有意思,但是暴搜照样0msPOJ 3678 - Katu Puzzle(基础)/JudgeOnline/problem?id=3678解法:直接按合取式构图验证就行了POJ 3683 - Priest John's Busiest Day(中等)/JudgeOnline/problem?id=3683解法:n^2枚举点之间的相容性构图,求解2-SAT最大流问题变形很多,最小割最大流定理的理解是关键POJ 1149 - PIGS(较难)/JudgeOnline/problem?id=1149绝对经典的构图题POJ 1273 - Drainage Ditches(基础)/JudgeOnline/problem?id=1273最大流入门POJ 1459 - Power Network(基础)/JudgeOnline/problem?id=1459基本构图POJ 1637 - Sightseeing tour(Crazy)/JudgeOnline/problem?id=1637题意:求混合图的欧拉迹是否存在解法:无向边任意定向,构图,详建黑书P324POJ 1815 - Friendship(中等)/JudgeOnline/problem?id=1815题意:求最小点割解法:拆点转换为边割相关:/zfy0701/blog/item/a521f230b06dea9fa9018e0e.htmlPOJ 1966 - Cable TV Network(中等)/JudgeOnline/problem?id=1966题意:去掉多少点让图不连通解法:任定一源点,枚举汇点求点割集(转换到求边割),求其中最小的点割POJ 2112 - Optimal Milking(基础)/JudgeOnline/problem?id=2112二分枚举,最大流POJ 2391 - Ombrophobic Bovines(中等)/JudgeOnline/problem?id=2391题意:floyd, 拆点,二分枚举相关:/zfy0701/blog/item/3e0006c4f73f0eaf8226acff.htmlPOJ 2396 - Budget(中等)/JudgeOnline/problem?id=2396题意:有源汇的上下界可行流解法:用矩阵-网络流模型构图,然后拆边相关:/zfy0701/blog/item/6449d82a64e15e3e5343c1ba.html ,最小割模型在竞赛中的应用POJ 2455 - Secret Milking Machine(基础)/JudgeOnline/problem?id=2455二分枚举,一般来说需要写对边容量的更新操作而不是每次全部重新构图POJ 2699 - The Maximum Number of Strong Kings(较难)/JudgeOnline/problem?id=2699解法:枚举人数 + 最大流(感谢xpcnq_71大牛的建图的提示)POJ 2987 - Firing(较难)/JudgeOnline/problem?id=2987题意:最大权闭包解法:先边权放大,第一问总量-最大流,第二问求最小割相关:/blog/cns!4D861A02A3382142!1109.entry?&_ c02_owner=1Profit(中等)/Problem_Show.asp?id=1352最大权闭包图的特殊情况ZOJ 2071 - Technology Trader 也是此类型,懒了没做/show_problem.php?pid=2071POJ 3084 - Panic Room(中等,好题)/JudgeOnline/problem?id=3084题意:略解法:根据最小割建模POJ 3155 - Hard Life(很挑战一题)/JudgeOnline/problem?id=3155题意:最大密度子图解法:参数搜索 + 最大权闭合图,A.V.Goldberg的论文(nb解法)最小割模型在信息学竞赛中的应用一文中也有讲POJ 3189 - Steady Cow Assignment(中等)/JudgeOnline/problem?id=3189题意:寻找最小的区间完成匹配解法:这题充分说明SAP的强大,纯暴力可过。
1 目录 目录......................................................................................................................... 1 一. 扩展的欧几里德和不定方程的解 ..................................................................... 2 二. 中国同余定理 ..................................................................................................... 3 三. 原根 ..................................................................................................................... 5 四. 积性函数 ............................................................................................................. 6 五. 欧拉函数性质 ..................................................................................................... 7 六. 线性求1-max的欧拉函数值 ............................................................................. 9 七. 求单个欧拉函数,求最小的x(phi(n)%x==0),使得2^x =1(mod n) ..... 10 2
一. 扩展的欧几里德和不定方程的解 解不定方程ax + by = n的步骤如下: (1)计算gcd(a, b). 若gcd(a, b)不能整除n,则方程无整数解;否则,在方程的两边同除以gcd(a, b),得到新的不定方程a'x + b'y = n',此时gcd(a', b') = 1
(2)求出不定方程a'x + b'y = 1的一组整数解x0, y0,则n'x0,n'y0是方程a'x + b'y = n'的一组整数解。
(3)根据扩展欧几里德定理,可得方程a'x + b'y = n'的所有整数解为: x = n'x0 + b't y = n'y0 - a't (t为整数) 这也就是方程ax + by = n的所有整数解
利用扩展的欧几里德算法,计算(a, b)和满足gcd = (a, b) = ax0 + by0的x0和y0,也就是求出了满足a'x0 + b'y0 = 1的一组整数解。因此可得: x = n/gcd * x0 + b/gcd * t y = n/gcd * y0 - a/gcd * t (t是整数)
int extend_Euclid(int a, int b, int &x, int &y) { if (b == 0){ x = 1; y = 0; return a; } int gcd= extend_Euclid ( b, a % b, x, y ); int temp = x; x = y; y = temp - (a / b) * y; return gcd; } 3
二. 中国同余定理 Poj 2891 #include #include using namespace std; __int64 GCD(__int64 i,__int64 j) { if(j==0) return i; else return GCD(j,i%j); } __int64 extend_Euclid(__int64 a, __int64 b, __int64 &x, __int64 &y) { if (b == 0){ x = 1; y = 0; return a; } __int64 gcd= extend_Euclid ( b, a % b, x, y ); __int64 temp = x; x = y; y = temp - (a / b) * y; return gcd; } //只有两个式子的中国同余定理,return z=a*xx+x=b*yy+y; __int64 CRT_2(__int64 a,__int64 x,__int64 b,__int64 y) { __int64 xx,yy,gcd; gcd=extend_Euclid(a,b,xx,yy); __int64 c=y-x; while(c<0) c+=a; if(c%gcd!=0) return -1; xx*=c/gcd; yy*=c/gcd; __int64 t=yy/(a/gcd); while(yy-t*(a/gcd)>0) t++; while(yy-(t-1)*(a/gcd)<=0) 4
t--; return (t*(a/gcd)-yy)*b+y; } //chinese remainder theorem //crt[i][0]存的是除数,crt[i][1]存的是余数,0<=i1,返回结果,-1表示无解 __int64 CRT(__int64 crt[][2],int n) { __int64 m=crt[0][0]/GCD(crt[0][0],crt[1][0])*crt[1][0]; //最大公约数 __int64 ans=CRT_2(crt[0][0],crt[0][1],crt[1][0],crt[1][1])%m; for(int i=2;ians=CRT_2(m,ans,crt[i][0],crt[i][1]); m*=crt[i][0]/GCD(m,crt[i][0]); ans%=m; } return ans; } int main(void) { int n; __int64 a[10000][2]; while(scanf("%d",&n)==1){ for(int i=0;iscanf("%I64d%I64d",&a[i][0],&a[i][1]); if(n==1) printf("%I64d\n",a[0][1]); else printf("%I64d\n",CRT(a,n)); } return 0; } 5
三. 原根 Poj 1284 ans=φ(p-1);//p是素数 设h为一整数,n为一正整数,(h,n)=k,适合h^k=1(mod n)的最小正整数k叫做h对n的次数。如果k=φ(n),则此时h被称为模n的原根。1773年,欧拉证明了素数P有原根。1785年,勒让德证明:设k|(p-1),恰有φ(k)个模p互不同余的数对模p的次数为k。
大家可以去搜索一下“二次剩余” p是奇素数,如果{xi%p | 1 <= i <= p - 1} = {1,2,...,p-1},则称x是p的原根. 给出一个p,问它的原根有多少个. {xi%p | 1 <= i <= p - 1} = {1,2,...,p-1} 等价于 {xi%(p-1) | 1 <= i <= p - 1} = {0,1,2,...,p-2},即为(p-1)的完全剩余系
若x,x2...x(p-1)是(p-1)的完全剩余系, 根据定理,可以推出若gcd(x, p-1) = 1时, (1,x,...,x(p-2))也是(p-1)的完全剩余系 因为若xi != xj (mod p-1),那么x*xi != x*xj (mod p-1),与条件m矛盾,所以 xi = xj (mod p-1),
由此可以确定答案为EulerPhi(p-1) 有误之处请指出..
(拉格朗日四平方和定理) 每个自然数均可表示成4个平方数之和。3个平方数之和不能表示形式如4k(8n+ 7)的数。 如果在一个正整数的因数分解式中,没有一个数有形式如4k+3的质数次方,该正整数可以表示成两个平方数之和。 6
四. 积性函数 在非数论的领域,积性函数指所有对于任何a,b都有性质f(ab)=f(a)f(b)的函数。 而本条目只讨论在数论中的积性函数。对于正整数n的一个算术函数 f(n),当中f(1)=1且当a,b互质,f(ab)=f(a)f(b),在数论上就称它为积性函数。若某算术函数f(n)符合f(1)=1,且就算a,b不互质,f(ab)=f(a)f(b),则称它为完全积性的。
积性函数的值完全由质数的幂决定,这和算术基本定理有关。即是说,若将n表示成质因数分解式如 N=p1^a1*p2^a2..pk^ak 则 f(N)=f(p1^a1)*f(p2^a2)*…f(pk^ak) 若f为积性函数且f(p^n) = f(p)^n,则f为完全积性函数。
例子: φ(n) -欧拉φ函数,计算与n互质的正整数之数目 μ(n) -默比乌斯函数,关于非平方数的质因子数目 gcd(n,k) -最大公因数,当k固定的情况 d(n) -n的正因数数目 σ(n) -n的所有正因数之和 σk(n): 因数函数,n的所有正因数的k次幂之和,当中k可为任何复数。在特例中有: σ0(n) = d(n) 及 σ1(n) = σ(n) 1(n) -不变的函数,定义为 1(n)=1 (完全积性) Id(n) -单位函数,定义为 Id(n)=n (完全积性) Idk(n) -幂函数,对于任何复数、实数k,定义为Idk(n) = n^k (完全积性) Id0(n) = 1(n) 及 Id1(n) = Id(n) ε(n) -定义为:若n = 1,ε(n)=1;若n > 1,ε(n)=0。有时称为“对于狄利克雷卷积的乘法单位”(完全积性) (n/p) -勒让德符号,p是固定质数(完全积性) λ(n) -刘维尔函数,关于能整除n的质因子的数目 γ(n),定义为γ(n)=(-1)^ω(n),在此加性函数ω(n)是不同能整除n的质数的数目 所有狄利克雷特征均是完全积性的
加性函数: 在非数论的领域,加性函数指有对于任何a,b都有性质f(ab)=f(a)+f(b)的函数。 而本条目只讨论在数论中的加性函数。对于正整数n的一个算术函数f(n),当中f(1)=1且当a,b互质,f(ab)=f(a)+f(b),在数论上就称它为加性函数。若某算术函数f(n)就算a,b不互质,f(ab)=f(a)+f(b),称它为完全加性的。