ACM_模板
ITAK
这个作者很懒,什么都没留下…
展开
-
求 [1,n-1]中 与 n 的 GCD 值的和
如何求 ∑n−1i=1gcd(i,n)——(1)\sum_{i=1}^{n-1}gcd(i, n)——(1) 因为 gcd(i,n)gcd(i,n) 的值一定是 nn 的因子,然后我们通过观察发现 (1)(1) 式可以写成如下形式: ∑d∗phi(nd),d∈{n的因子},去掉d是n的情况\sum d*phi(\frac n d),d\in \{n的因子\},去掉d是n的情况,其中phi(i):原创 2017-06-27 18:14:31 · 778 阅读 · 0 评论 -
HiHoCoder [Offer收割]编程练习赛6 C. 图像算子(高斯消元小数版)
传送门时间限制:10000ms 单点时限:1000ms 内存限制:256MB描述在图像处理的技术中,经常会用到算子与图像进行卷积运算,从而达到平滑图像或是查找边界的效果。假设原图为 H×WH × W 的矩阵 AA,算子矩阵为 D×DD × D 的矩阵 OpOp ,则处理后的矩阵 BB 大小为 (H−D+1)×(W−D+1)(H-D+1) × (W-D+1)。其中:B[i][j]=∑(A[i−1+原创 2016-08-21 16:19:13 · 1098 阅读 · 0 评论 -
伯努利数应用
组合数学、 伯努利数、 自然数幂和原创 2016-08-07 18:13:40 · 3051 阅读 · 4 评论 -
自然数幂和
首先我来介绍一下什么是自然数幂和:1+2+3+...+i+...+n=?1+2+3+...+i+...+n=?12+22+32+...+i2+...+n21^2 +2^2+3^2+...+i^2+...+n^21k+2k+3k+...+ik+...+nk1^k +2^k+3^k+...+i^k+...+n^k类似上述式子的就是自然数幂和了,那么具体怎么求呢,这就是今天的重点了:1+2+3+...+i原创 2016-08-06 11:08:22 · 1768 阅读 · 0 评论 -
51NOD 1120 机器人走方格 V3(卢卡斯定理 + 非降路径)
传送门N * N的方格,从左上到右下画一条线。一个机器人从左上走到右下,只能向右或向下走。并要求只能在这条线的上面或下面走,不能穿越这条线,有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10007的结果。 Input 输入一个数N(2 <= N <= 10^9)。 Output 输出走法的数量 Mod 10007。 Input示例 4 Output示例 10 解题思路原创 2016-08-05 17:59:12 · 1429 阅读 · 0 评论 -
51NOD 1016 水仙花数 V2(打表)
传送门 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153,1634 = 1^4 + 6^4 + 3^4 + 4^4)。 给出一个整数M,求 >= M的最小的水仙花数。 Input 一个整数M(10 <= M <= 10^60) Output 输出>= M的最小的水仙花数,如果没有符合条件的水仙花数原创 2016-08-04 19:36:18 · 1455 阅读 · 0 评论 -
卢卡斯定理的模板以及应用
定义: Lucas定理是用来求 C(n,m)C(n,m) MODMOD pp,p为素数的值。Lucas定理:我们令n=sp+q,m=tp+r.(q,r≤p)n=sp+q , m=tp+r .(q ,r ≤p) 那么:(在编程时你只要继续对 调用 LucasLucas 定理即可。代码可以递归的去完成这个过程,其中递归终点为 t=0t = 0 ;时间复杂度 O(logp(n)∗p):)O(lo原创 2016-08-04 19:17:16 · 1506 阅读 · 0 评论 -
51NOD 1265 四点共面(计算几何)
传送门 给出三维空间上的四个点(点与点的位置均不相同),判断这4个点是否在同一个平面内(4点共线也算共面)。如果共面,输出”Yes”,否则输出”No”。 Input 第1行:一个数T,表示输入的测试数量(1 <= T <= 1000) 第2 - 4T + 1行:每行4行表示一组数据,每行3个数,x, y, z, 表示该点的位置坐标(-1000 <= x, y, z <= 1000)。 Ou原创 2016-07-31 18:56:45 · 1306 阅读 · 0 评论 -
HDU 5733 tetrahedron (2016 Multi-University Training Contest 1 计算几何)
传送门 Problem Description Given four points ABCD, if ABCD is a tetrahedron, calculate the inscribed sphere of ABCD.Input Multiple test cases (test cases ≤100).Each test cases contains a line of 12 int原创 2016-07-19 20:47:08 · 2107 阅读 · 2 评论 -
BZOJ 2186: [Sdoi2008]沙拉公主的困惑 (逆元的应用)
传送门 Problem 2186. – [Sdoi2008]沙拉公主的困惑2186: [Sdoi2008]沙拉公主的困惑Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 3058 Solved: 1040[Submit][Status][Discuss]Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现原创 2016-08-10 11:06:47 · 809 阅读 · 0 评论 -
51NOD 1161 Partial Sums(数论)
传送门 给出一个数组A,经过一次处理,生成一个数组S,数组S中的每个值相当于数组A的累加,比如:A = {1 3 5 6} => S = {1 4 9 15}。如果对生成的数组S再进行一次累加操作,{1 4 9 15} => {1 5 14 29},现在给出数组A,问进行K次操作后的结果。(每次累加后的结果 mod 10^9 + 7) Input 第1行,2个数N和K,中间用空格分隔,N表示数原创 2016-08-11 11:19:24 · 1325 阅读 · 9 评论 -
高斯消元整数消元模板
高斯消元就是来接方程组的。(可以跟矩阵联系在一起)#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>using namespace std;const int MAXN = 1e2+5;int equ, var;///equ个方程 var个变量int a[MA原创 2016-06-17 10:52:06 · 2361 阅读 · 0 评论 -
NTT(快速数论变换)模板
例题: HDU 1402#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <cmath>using namespace std;const double PI = acos(-1.0);typedef long long LL;const LL MAXN = (1LL<<1原创 2017-06-14 12:53:39 · 914 阅读 · 0 评论 -
HDU 1402 A * B Problem Plus(FFT加速优化乘法)
传送门 A * B Problem PlusTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18312 Accepted Submission(s): 4106Problem Description Calculate A * B.原创 2016-10-08 16:50:23 · 1822 阅读 · 0 评论 -
HDU - 5120 Intersection(简单几何)——2014ACM/ICPC亚洲区北京站
传送门 Matt is a big fan of logo design. Recently he falls in love with logo made up by rings. The following figures are some famous examples you may know. A ring is a 2-D figure bounded by two circl原创 2017-06-25 20:53:50 · 891 阅读 · 0 评论 -
HDU 5572 An Easy Physics Problem(计算几何)——2015ACM/ICPC亚洲区上海站-重现赛
传送门 An Easy Physics ProblemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2322 Accepted Submission(s): 469Problem Description On an infinite原创 2017-06-18 20:01:46 · 1272 阅读 · 0 评论 -
HDU 4794 Arnold (Fib数模 n 的应用)——2013 Asia Changsha Regional Contest
传送门 ArnoldTime Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 391 Accepted Submission(s): 100Problem Description Do you know Vladimir Arnold? H原创 2016-10-06 18:36:35 · 1751 阅读 · 0 评论 -
ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛 F. Periodic Signal(FFT 优化乘法)
传送门 时间限制:5000ms 单点时限:5000ms 内存限制:256MB 描述 Profess X is an expert in signal processing. He has a device which can send a particular 1 second signal repeatedly. The signal is A0 … An-1 under n Hz sa原创 2016-10-01 10:32:00 · 1540 阅读 · 0 评论 -
高斯消元异或版模板
/**2016 - 09 - 08 晚上Author: ITAKMotto:今日的我要超越昨日的我,明日的我要胜过今日的我,以创作出更好的代码为目标,不断地超越自己。**/#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <vector>原创 2016-09-08 19:30:15 · 1007 阅读 · 0 评论 -
HDU 5901 Count Primes (模板 + 数论知识)——2016 ACM/ICPC Asia Regional Shenyang Online
传送门 Count primesTime Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 635 Accepted Submission(s): 299Problem Description Easy question! Calculate原创 2016-09-19 19:24:25 · 2298 阅读 · 0 评论 -
hiho一下 第九十七周 题目1 : 数论六·模线性方程组
模线性方程组+扩展欧几里得原创 2016-05-08 20:30:21 · 1169 阅读 · 0 评论 -
Acdream 1210 Chinese Girls' Amusement(大数模板运算 + 找规律)
传送门 Chinese Girls’ Amusement Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Statistic Next Problem Problem Description You must have heard that the Chinese原创 2016-06-11 20:34:22 · 2500 阅读 · 0 评论 -
数论之 素因子分解,素数筛选法,欧拉函数和扩展欧几里得算法 (整理)
素因子分解,素数筛选法,欧拉函数和扩展欧几里得算法原创 2015-10-09 20:26:07 · 1129 阅读 · 0 评论 -
BFS 模板 【迷宫的最短路径】
#include #include #include #include #include #include #include #include #include #include using namespace std;#define MM(a) memset(a,0,sizeof(a))typedef long long LL;typedef unsigned lo原创 2015-11-08 12:06:30 · 819 阅读 · 0 评论 -
hdu 1213 How Many Tables ([kuangbin带你飞]专题五 并查集)
点击打开链接C - How Many TablesTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit Status Practice HDU 1213DescriptionToday is Ignatius' birthday原创 2015-09-18 21:05:17 · 572 阅读 · 0 评论 -
费用流模板
我借鉴了一些大神的代码也就是他们经常用的模板。。。 费用流模板#include<cstdio>#include<iostream>using namespace std;const int oo=1e9;const int mm=11111;const int mn=888;int node,src,dest,edge;int ver[mm],flow[mm],cost[mm],ne原创 2015-08-22 20:20:13 · 801 阅读 · 0 评论 -
关于Trie树的模板
Trie树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。 ——-百度百科 具体给出代码,这也是根据大牛们的一些代码整的,,还是太渣了。。。。。#include <iostrea原创 2015-08-11 17:50:27 · 787 阅读 · 0 评论 -
拓扑排序模板
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <queue>using namespace std;const int maxn = 20010;//ip表示第几条边//indeg表示入度int head[maxn], ip, indeg[maxn];int原创 2015-08-18 10:49:39 · 1228 阅读 · 0 评论 -
Foj 1075 分解素因子
题目链接:http://acm.fzu.edu.cn/problem.php?pid=1075 思路:分解素因子#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int maxn=65535+5;typedef long long LL;bool prime[maxn];in原创 2015-08-01 14:46:57 · 1361 阅读 · 0 评论 -
二分图最大匹配值的模板
/* **************************************************************************//二分图匹配(匈牙利算法的DFS实现)//初始化:g[][]两边顶点的划分情况//建立g[i][j]表示i->j的有向边就可以了,是左边向右边的匹配//g没有边相连则初始化为0//uN是匹配左边的顶点数,vN是匹配右边的顶点数//调用原创 2015-08-23 16:17:39 · 741 阅读 · 0 评论 -
欧拉函数
欧拉函数原创 2015-10-09 19:54:08 · 901 阅读 · 0 评论 -
高精度加法和乘法
今天偶然看了一下某大神的模板,不经意翻到这个就顺便“借”了一下 上代码吧:/*Date : 2015-8-21 晚上Author : ITAKMotto :今日的我要超越昨日的我,明日的我要胜过今日的我;以创作出更好的代码为目标,不断地超越自己。*/#include <iostream>#include <cstdio>#include <cstring>using namespa原创 2015-08-22 20:39:46 · 1244 阅读 · 7 评论 -
最大流:Dinic模板
/*Date : 2015-8-21 晚上Author : ITAKMotto :今日的我要超越昨日的我,明日的我要胜过今日的我;以创作出更好的代码为目标,不断地超越自己。*/#include <iostream>#include <cstdio>using namespace std;///oo表示无穷大const int oo = 1e9+5;///mm表示边的最大数量,因为要双原创 2015-08-21 19:38:20 · 624 阅读 · 0 评论 -
UVALive 7461 - Separating Pebbles
传送门 题目大意: 给一个数N,然后每行3个数,前两个数十坐标,后面的一个数区分是 ‘+’ 还是’o’,0代表的是’o’,1代表的是’+’.然后判断是不是能够有一条线把这两部分分开也就是线的两边都是一样的标识符。如果能输出1, 否则输出 0.解题思路: 其实,我们可以将’o’代表的所有的点构成一个凸包,将’+’代表的所有的点构成一个凸包,判断这两个凸包是不是有相交就行了。My Code:#原创 2016-07-10 20:11:09 · 1588 阅读 · 0 评论 -
51NOD 1070 Bash游戏 V4(斐波那契博弈)
传送门 有一堆石子共有N个。A B两个人轮流拿,A先拿。每次拿的数量最少1个,最多不超过对手上一次拿的数量的2倍(A第1次拿时要求不能全拿走)。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。 例如N = 3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。 Input 第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T原创 2016-07-09 19:38:50 · 1760 阅读 · 0 评论 -
Acdream 1234 Two Cylinders(自适应辛普森积分法)
传送门 Two Cylinders Special Judge Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Statistic Next Problem Problem Description In this problem your task is very原创 2016-06-26 19:11:41 · 2069 阅读 · 0 评论 -
判断一个比较大的数是不是素数的方式(最简单的)
我今天在51NOD上做了一个题,就是问你一个大的数是不是素数,范围是(2-10^30),然后我一看这么大,立刻想到用java,但是让我更没想到的是JAVA的功能这么强大,直接有判断是不是素数的方法,isProbablePrime(args),在这里面让args这个参数是1,然后直接判断就行了,我又学了一招呀。。。 代码:import java.math.*;import java.util.Sc原创 2016-05-19 20:50:37 · 6731 阅读 · 0 评论 -
POJ 2187 Beauty Contest(旋转卡壳模板题)
传送门 Beauty Contest Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 33435 Accepted: 10361 DescriptionBessie, Farmer John’s prize cow, has just won first place in a bovine beau原创 2016-05-19 20:13:50 · 4655 阅读 · 0 评论 -
高精度求N!
#include <iostream>#include <cstdio>#include <cmath>#include <cstring>using namespace std;typedef long long LL;const LL MOD = 100000000000000;const int MAXN = 40000;LL a[MAXN];int main(){原创 2016-05-06 21:07:05 · 1414 阅读 · 0 评论 -
归并排序求逆序数(排序算法)
归并排序:归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。——(摘自百度百科) 具体操作: 比较a[i]和a[j]的大小,若a[i]≤a[j],则将第一个有序表中的元素a[i]复制到r[k原创 2016-05-06 10:54:45 · 2289 阅读 · 0 评论